The K3NG keyer is a popular Arduino-based CW (Morse code) keyer firmware that supports single- and double-paddle operation, memories, iambic modes, Winkeyer emulation, FSK keying, and many configuration options. This post provides a clear, complete schematic and wiring guidance for building a typical K3NG keyer using an Arduino Nano (or Uno), supporting paddle inputs, straight key input, keying output for a transceiver (transistor and opto options), sidetone speaker, and external accessories (PTT, FSK, and external paddles).
For a full-featured keyer, the schematic includes a 16x2 LCD (using I2C to save pins) or a 128x64 OLED (I2C or SPI).
The schematic must pull up the I2C lines with 4.7kΩ resistors to 5V.
Reverse Voltage Protection: Many advanced K3NG schematics include a 1N4148 diode in reverse parallel across the transistor (Cathode to +V, Anode to Collector). This protects the transistor from the "flyback voltage" created by the relay coils inside older tube radios. k3ng keyer schematic
Paddle inputs
Straight key input
Sidetone (audio)
Keying output (transmit key) Option A — Transistor (recommended simple):
Option B — Optocoupler (isolation):
PTT/FSK
Status LED
Debounce and protection