K3NG keyer using boards by UN7FGO and an Arduino Nano
Click any image to go SUPERSIZE
I ordered a set of boards via JLCPCB in China (5 of each board for ~£21 delivered)
Main board
https://oshwlab.com/UN7FGO/K3NG_KEYER_V2_1
Control board
https://oshwlab.com/UN7FGO/K3NG_EXT_PANEL_2
Front & back panels
https://oshwlab.com/UN7FGO/K3NG_PANELS_CHINA_PROFILE
The schematics in the above links will give you the components needed to complete the keyer.
Obviously some of the components can be omitted from the main board PCB as they are reproduced on the control board PCB.
My case came from Amazon UK but can also be found on other sites
https://www.amazon.co.uk/dp/B098TNTGFP
All other parts came from my parts stock or from Amazon/ebay etc.
https://www.amazon.co.uk/dp/B07FXXPGKM
https://www.amazon.co.uk/dp/B07SSLZX77
https://www.amazon.co.uk/dp/B008DS11IQ
https://www.ebay.co.uk/itm/125216704009
The black front & back PCB panels do need saw cutting through the middle and sanding down to finish them.
Once assembled and the code loaded, it turned out rather well.
I 3D printed the various spacers I needed (bright orange !)
The front panel buttons I had were too short really and buttons that are 12mm or longer, as listed above would have been better - mine were 8mm (3D printer to the rescue again).
The main code can be obtained from here...
The following changes need to be made to the code...
In the KEYER_PIN_SETTING.H file, specify the microcontroller contacts, as they are organized in this device:
define paddle_left 6
define paddle_right 5
define tx_key_line_1 12
define sidetone_line 4
define potentiometer A0
define ptt_tx_1 11
define analog_buttons_pin A1
define command_mode_active_led 7
define ps2_keyboard_data 2
define ps2_keyboard_clock 3
The remaining contact names must be set to "0".
In the KEYER_FEATURES_AND_OPTIONS.H file, specify the device options used by removing the "//" sign in front of them:
define FEATURE_BUTTONS
define FEATURE_COMMAND_MODE
define FEATURE_MEMORIES
define FEATURE_MEMORY_MACROS
define FEATURE_POTENTIOMETER
define FEATURE_PS2_KEYBOARD
All other options must be commented out with "//".
When choosing a set of desired functions, be careful, because not all of the desired set will fit into the memory of the Arduino Nano microcontroller.
In the KEYER_SETTINGS.H file, you must specify the following parameters for variables:
define potentiometer_change_threshold 1.0
define default_ptt_hang_time_wordspace_units 1.0
define potentiometer_always_on 1
define analog_buttons_number_of_buttons 6
define analog_buttons_r1 10
define analog_buttons_r2 1
All other parameters can be left unchanged.
-----------------------------------------------------------------------------
Modified for internal sidetone... cut 2 tracks and add wires as pic
Yellow wire goes to one of those LM386 audio modules and outputs to an old laptop speaker... works fine!