900 Features and Options - k3ng/k3ng_cw_keyer GitHub Wiki

There are several features that can be enabled and options chosen to enhance your K3NG keyer. Below are the possible features and options that can be selected.

To enable either a feature or an option, they must be uncommented. This is done by removing the // at the beginning of the line.

Generally, FEATURES add more bytes to the compiled binary (the code size becomes larger), OPTIONS change code behaviour

This document is a work in progress. Feel free to help by copying appropriate contents at the blog into a new page and link the appropriate feature to it.

Features Notes
FEATURE_COMMAND_BUTTONS Enable command buttons
FEATURE_COMMAND_LINE_INTERFACE Enable command line interface over serial connection
FEATURE_MEMORIES on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
FEATURE_MEMORY_MACROS provides for the use of macros that can be used and stored in memory
FEATURE_WINKEY_EMULATION disabling Automatic Software Reset is highly recommended (see documentation)
FEATURE_BEACON enables the use of the keyer as a beacon code generator. Beacon message in memory 1
FEATURE_CALLSIGN_RECEIVE_PRACTICE
FEATURE_POTENTIOMETER Speed control, if enabled, must have pot connected or false wpm will trigger changes randomly
FEATURE_SERIAL_HELP show help for command line interface
FEATURE_HELL
FEATURE_PS2_KEYBOARD Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
FEATURE_USB_KEYBOARD Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
FEATURE_CW_COMPUTER_KEYBOARD Have an Arduino Due or Leonardo act as a USB HID (Human Interface Device) keyboard and use the paddle to "type" characters on the computer
FEATURE_DEAD_OP_WATCHDOG if more than 100 consecutive elemts are sent then it is assumed the operator has gone to sleep at the key
FEATURE_AUTOSPACE enables the autospace feature
FEATURE_FARNSWORTH enables the Farnsworth timing feature
FEATURE_DL2SBA_BANKSWITCH Switch memory banks feature as described here: http://dl2sba.com/index.php?option=com_content&view=article&id=131:nanokeyer&catid=15:shack&Itemid=27#english
FEATURE_LCD_4BIT classic LCD disidefplay using 4 I/O lines
FEATURE_LCD_ADAFRUIT_I2C Adafruit I2C LCD display using MCP23017 at addr 0x20
FEATURE_LCD_ADAFRUIT_BACKPACK Adafruit I2C LCD Backup using MCP23008
FEATURE_LCD_YDv1 YourDuino I2C LCD display with old LCM 1602 V1 ic
FEATURE_LCD1602_N07DH http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
FEATURE_CW_DECODER Decode CW into the keyer
FEATURE_SLEEP go to sleep after x minutes to conserve battery power (not compatible with Arduino DUE, may have mixed results with Mega and Mega ADK)
FEATURE_ROTARY_ENCODER Use a rotary encoder for speed control
FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
FEATURE_USB_MOUSE Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
FEATURE_CAPACITIVE_PADDLE_PINS remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
FEATURE_LED_RING Mayhew Labs Led Ring support for rotary encoder
FEATURE_ALPHABET_SEND_PRACTICE enables command mode S command - created by Ryan, KC2ZWM
FEATURE_PTT_INTERLOCK
FEATURE_QLF enables QLF sending (sending with the left foot)
FEATURE_EEPROM_E24C1024 for use on an Arduino Due (which has no EEPROM), you must have E24C1024 EEPROM hardware in order to compile this
FEATURE_STRAIGHT_KEY
FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
FEATURE_PADDLE_ECHO
FEATURE_STRAIGHT_KEY_ECHO
FEATURE_AMERICAN_MORSE
FEATURE_4x4_KEYPAD using an external 4x4 keypad to play memories, keypad keys are custom programmable
FEATURE_3x4_KEYPAD using an external 3x4 keypad to play memories, keypad keys are custom programmable
FEATURE_SEQUENCER enables the sequencer feature
FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT Activate the Command Line interface on the secondary serial port
Options Notes
OPTION_SUPPRESS_SERIAL_BOOT_MSG suppresses the boot message when connected by a serial port
OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING include PTT tail timing for manual sending
OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING include PTT hang time for manual sending
OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP if ASR is not disabled, you may need this to discard errant serial port bytes at startup
OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM
OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
OPTION_WINKEY_STRICT_HOST_OPEN require an admin host open Winkey command before doing any other commands
OPTION_WINKEY_2_SUPPORT comment out to revert to Winkey version 1 emulation
OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET activate this when using Winkey 2 emulation and Win-Test
OPTION_WINKEY_FREQUENT_STATUS_REPORT activate this to make Winkey emulation play better with RUMlog and RUMped
OPTION_WINKEY_IGNORE_LOWERCASE Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
OPTION_REVERSE_BUTTON_ORDER This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
OPTION_PROG_MEM_TRIM_TRAILING_SPACES trim trailing spaces from memory when programming in command mode
OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT this makes dit paddle memory interruption a little smoother
OPTION_MORE_DISPLAY_MSGS additional optional display messages - comment out to save a small amount of memory
OPTION_WATCHDOG_TIMER this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
OPTION_MOUSE_MOVEMENT_PADDLE experimental (just fooling around) - mouse movement will act like a paddle
OPTION_NON_ENGLISH_EXTENSIONS add support for additional CW characters (i.e. À, Å, Þ, etc.)
OPTION_KEEP_PTT_KEYED_WHEN_CHARS_BUFFERED this option keeps PTT high if there are characters buffered from the keyboard, the serial interface, or Winkey
OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
OPTION_UNKNOWN_CHARACTER_ERROR_TONE Play a tone when an unknown character is entered, aka you messed up so bad the keyer hasn't a clue :-)
OPTION_DO_NOT_SAY_HI does not display 'hi' on the LCD or sound 'hi' with sidetone, when starting
OPTION_USE_ORIGINAL_VERSION_2_1_PS2KEYBOARD_LIB
OPTION_PS2_NON_ENGLISH_CHAR_LCD_DISPLAY_SUPPORT makes some non-English characters from the PS2 keyboard display correctly in the LCD display (donated by Marcin sp5iou)
OPTION_PS2_KEYBOARD_RESET reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
OPTION_SAVE_MEMORY_NANOKEYER numerous non-inclusions of code segments in order to save memory so that the compiled code will fit into the available space on a nanoKeyer
OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
OPTION_CW_KEYBOARD_ITALIAN
OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
OPTION_INVERT_PADDLE_PIN_LOGIC paddles are active high rather than the default of active low
OPTION_ADVANCED_SPEED_DISPLAY enables "nerd" speed visualization on display: wpm, cpm (char per min), duration of dit and dah in milliseconds and ratio (contributed by Giorgio, IZ2XBZ)
OPTION_PROSIGN_SUPPORT additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
OPTION_RUSSIAN_LANGUAGE_SEND_CLI Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)