Arduino CW Keyer


Stacks Image 38

Era da tempo che seguivo l'evolversi del progetto Arduino CW Keyer di Anthony Good K3NG.
Inizialmente avevo fatto alcune prove con un Arduino Uno ma a causa delle dimensioni del software (ad oggi (Ott. 2012) e' arrivato ad oltre 7000 righe) e della mia poca dimestichezza con il linguaggio C non ero mai stato capace di ridimensionare il listato togliendo quello che non interessava e cosi' sono passato ad un Arduino Mega.
A questo indirizzo:
http://radioartisan.wordpress.com/arduino-cw-keyer/ si trova la descrizione del progetto mentre da qui: http://sourceforge.net/p/k3ngarduinocwke/code/ci/master/tree/ si può scaricare lo sketch.

Caratteristiche:
  • CW speed adjustable from 1 to 999 WPM
  • Up to six selectable transmitter keying lines
  • Programming and interfacing via USB port (“command line interface”)
  • PS2 Keyboard Interface for CW keyboard operation without a computer
  • Optional PTT outputs with configurable lead, tail, and hang times
  • Optional LCD Display – Classic 4 bit mode or Adafruit I2C RGB display (*)
  • Up to 12 memories with macros
  • Serial numbers
  • CW keyboard (via a terminal server program like Putty or the Arduino Serial program)
  • Speed potentiometer (optional – speed also adjustable with commands)
  • QRSS and HSCW
  • Beacon / Fox mode
  • Iambic A and B
  • Straight key mode
  • Ultimatic mode
  • Bug mode
  • Paddle reverse
  • Hellschreiber mode (keyboard sending, memory macro, beacon)
  • Farnsworth Timing
  • Adjustable frequency sidetone
  • Sidetone disable / sidetone high/low output for keying outboard audio oscillator
  • Command mode for using the paddle to change settings, program memories, etc.
  • Keying Compensation
  • Dah to Dit Ratio adjustment
  • Weighting
  • Callsign receive practice
  • Send practice
  • Memory stacking
  • Logging and Contest Program Interfacing via K1EL Winkey 1.0 and 2.0 interface protocol emulation
  • “Dead Operator Watchdog”
  • Autospace
  • Wordspace Adjustment
  • Pre-configured and Custom Prosigns
  • Non-volatile storage of most settings
  • Modular code design allowing selection of features and easy code modification
  • Non-English Character Support
  • CW Receive (EXPERIMENTAL / NEW! )
(*) Ho usato un LCD I2C 20 caratteri per 4 righe ed ho sostituito le librerie per l'Adafruit con la libreria LiquidCrystal_I2C

Stacks Image 39
Stacks Image 40

Per la parte hardware ho assemblato il tutto su una basetta per circuiti sperimentali (come si puo' vedere non ho usato la millefori preferendo la Millefori-Full Line con piste da interrompere usando uno dei tanti incisori).
E' progettata in maniera da venire inserita sull'Arduino Mega. Purtroppo i progettisti di Arduino non hanno rispettato il passo tra un connettore strip e l'altro e cosi' ho dovuto leggermente forzare l'inserimento.
A causa di un guasto al pin A1 (la cui natura non e' stata chiarita) sono ammattito per il mancato funzionamento del pulsante Command e delle memorie ed ho cercato risposte interpellando da prima l'autore e successivamente chiedendo aiuto sui forum di Arifidenza e di Arduino senza venirne a capo. Dopo qualche esitazione, ho deciso di sostituire il pin A1 con il pin A2 che risultava libero.
Se non ci fosse stato questo inghippo il tutto avrebbe funzionato fin dalla sua prima attivazione.
Un sentito grazie ad Anthony per la disponibilita' e cortesia (il mio inglese e' made Google... HI) nonche' a quanti sono intervenuti sui due forum.

Stacks Image 41

73 e buone costruzioni
Stacks Image 220