first commit
This commit is contained in:
Executable
+22650
File diff suppressed because it is too large
Load Diff
Executable
+226
@@ -0,0 +1,226 @@
|
||||
#ifndef keyer_h
|
||||
#define keyer_h
|
||||
|
||||
// Do not change these !
|
||||
|
||||
// Variable macros
|
||||
#define STRAIGHT 1
|
||||
#define IAMBIC_B 2
|
||||
#define IAMBIC_A 3
|
||||
#define BUG 4
|
||||
#define ULTIMATIC 5
|
||||
#define SINGLE_PADDLE 6
|
||||
|
||||
#define PADDLE_NORMAL 0
|
||||
#define PADDLE_REVERSE 1
|
||||
|
||||
#define KEYER_NORMAL 0
|
||||
#define BEACON 1
|
||||
#define KEYER_COMMAND_MODE 2
|
||||
#define KEYER_COMMAND_MODE_SPEED_OVERRIDE 3
|
||||
|
||||
#define OMIT_LETTERSPACE 1
|
||||
|
||||
#define SIDETONE_OFF 0
|
||||
#define SIDETONE_ON 1
|
||||
#define SIDETONE_PADDLE_ONLY 2
|
||||
|
||||
#define SENDING_NOTHING 0
|
||||
#define SENDING_DIT 1
|
||||
#define SENDING_DAH 2
|
||||
|
||||
#define SPEED_NORMAL 0
|
||||
#define SPEED_QRSS 1
|
||||
|
||||
#define CW 0
|
||||
#define HELL 1
|
||||
#define AMERICAN_MORSE 2
|
||||
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define PS2_KEYBOARD_NORMAL 0
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
#define SERIAL_CLI 0
|
||||
#define SERIAL_WINKEY_EMULATION 1
|
||||
|
||||
#define SERIAL_SEND_BUFFER_SPECIAL_START 13
|
||||
#define SERIAL_SEND_BUFFER_WPM_CHANGE 14
|
||||
#define SERIAL_SEND_BUFFER_PTT_ON 15
|
||||
#define SERIAL_SEND_BUFFER_PTT_OFF 16
|
||||
#define SERIAL_SEND_BUFFER_TIMED_KEY_DOWN 17
|
||||
#define SERIAL_SEND_BUFFER_TIMED_WAIT 18
|
||||
#define SERIAL_SEND_BUFFER_NULL 19
|
||||
#define SERIAL_SEND_BUFFER_PROSIGN 20
|
||||
#define SERIAL_SEND_BUFFER_HOLD_SEND 21
|
||||
#define SERIAL_SEND_BUFFER_HOLD_SEND_RELEASE 22
|
||||
#define SERIAL_SEND_BUFFER_MEMORY_NUMBER 23
|
||||
#define SERIAL_SEND_BUFFER_TX_CHANGE 24
|
||||
#define SERIAL_SEND_BUFFER_SPECIAL_END 25
|
||||
|
||||
#if defined(OPTION_PROSIGN_SUPPORT)
|
||||
#define PROSIGN_START 127
|
||||
#define PROSIGN_AA 128
|
||||
#define PROSIGN_AS 129
|
||||
#define PROSIGN_BK 130
|
||||
#define PROSIGN_CL 131
|
||||
#define PROSIGN_CT 132
|
||||
#define PROSIGN_KN 133
|
||||
#define PROSIGN_NJ 134
|
||||
#define PROSIGN_SK 135
|
||||
#define PROSIGN_SN 136
|
||||
#define PROSIGN_HH 137 // iz0rus
|
||||
#define PROSIGN_END 138 // iz0rus
|
||||
#endif
|
||||
|
||||
#define SERIAL_SEND_BUFFER_NORMAL 0
|
||||
#define SERIAL_SEND_BUFFER_TIMED_COMMAND 1
|
||||
#define SERIAL_SEND_BUFFER_HOLD 2
|
||||
|
||||
|
||||
#define WINKEY_NO_COMMAND_IN_PROGRESS 0
|
||||
#define WINKEY_UNBUFFERED_SPEED_COMMAND 1
|
||||
#define WINKEY_UNSUPPORTED_COMMAND 2
|
||||
#define WINKEY_POINTER_COMMAND 3
|
||||
#define WINKEY_ADMIN_COMMAND 4
|
||||
#define WINKEY_PAUSE_COMMAND 5
|
||||
#define WINKEY_KEY_COMMAND 6
|
||||
#define WINKEY_SETMODE_COMMAND 7
|
||||
#define WINKEY_SIDETONE_FREQ_COMMAND 8
|
||||
#define WINKEY_ADMIN_COMMAND_ECHO 9
|
||||
#define WINKEY_BUFFERED_SPEED_COMMAND 10
|
||||
#define WINKEY_DAH_TO_DIT_RATIO_COMMAND 11
|
||||
#define WINKEY_KEYING_COMPENSATION_COMMAND 12
|
||||
#define WINKEY_FIRST_EXTENSION_COMMAND 13
|
||||
#define WINKEY_PTT_TIMES_PARM1_COMMAND 14
|
||||
#define WINKEY_PTT_TIMES_PARM2_COMMAND 15
|
||||
#define WINKEY_SET_POT_PARM1_COMMAND 16
|
||||
#define WINKEY_SET_POT_PARM2_COMMAND 17
|
||||
#define WINKEY_SET_POT_PARM3_COMMAND 18
|
||||
#define WINKEY_SOFTWARE_PADDLE_COMMAND 19
|
||||
//#define WINKEY_CANCEL_BUFFERED_SPEED_COMMAND 20
|
||||
#define WINKEY_BUFFFERED_PTT_COMMMAND 21
|
||||
#define WINKEY_HSCW_COMMAND 22
|
||||
#define WINKEY_BUFFERED_HSCW_COMMAND 23
|
||||
#define WINKEY_WEIGHTING_COMMAND 24
|
||||
#define WINKEY_KEY_BUFFERED_COMMAND 25
|
||||
#define WINKEY_WAIT_BUFFERED_COMMAND 26
|
||||
#define WINKEY_POINTER_01_COMMAND 27
|
||||
#define WINKEY_POINTER_02_COMMAND 28
|
||||
#define WINKEY_POINTER_03_COMMAND 29
|
||||
#define WINKEY_FARNSWORTH_COMMAND 30
|
||||
#define WINKEY_MERGE_COMMAND 31
|
||||
#define WINKEY_MERGE_PARM_2_COMMAND 32
|
||||
#define WINKEY_SET_PINCONFIG_COMMAND 33
|
||||
#define WINKEY_EXTENDED_COMMAND 34
|
||||
#define WINKEY_SEND_MSG 35
|
||||
#define WINKEY_LOAD_SETTINGS_PARM_1_COMMAND 101
|
||||
#define WINKEY_LOAD_SETTINGS_PARM_2_COMMAND 102
|
||||
#define WINKEY_LOAD_SETTINGS_PARM_3_COMMAND 103
|
||||
#define WINKEY_LOAD_SETTINGS_PARM_4_COMMAND 104
|
||||
#define WINKEY_LOAD_SETTINGS_PARM_5_COMMAND 105
|
||||
#define WINKEY_LOAD_SETTINGS_PARM_6_COMMAND 106
|
||||
#define WINKEY_LOAD_SETTINGS_PARM_7_COMMAND 107
|
||||
#define WINKEY_LOAD_SETTINGS_PARM_8_COMMAND 108
|
||||
#define WINKEY_LOAD_SETTINGS_PARM_9_COMMAND 109
|
||||
#define WINKEY_LOAD_SETTINGS_PARM_10_COMMAND 110
|
||||
#define WINKEY_LOAD_SETTINGS_PARM_11_COMMAND 111
|
||||
#define WINKEY_LOAD_SETTINGS_PARM_12_COMMAND 112
|
||||
#define WINKEY_LOAD_SETTINGS_PARM_13_COMMAND 113
|
||||
#define WINKEY_LOAD_SETTINGS_PARM_14_COMMAND 114
|
||||
#define WINKEY_LOAD_SETTINGS_PARM_15_COMMAND 115
|
||||
|
||||
#define WINKEY_HOUSEKEEPING 0
|
||||
#define SERVICE_SERIAL_BYTE 1
|
||||
|
||||
#define WINKEY_UNBUFFERED_SPEED 0
|
||||
#define WINKEY_BUFFERED_SPEED 1
|
||||
|
||||
|
||||
#define UNDEFINED_SENDING 0
|
||||
#define AUTOMATIC_SENDING 1
|
||||
#define MANUAL_SENDING 2
|
||||
#define AUTOMATIC_SENDING_INTERRUPTED 3
|
||||
|
||||
#define ULTIMATIC_NORMAL 0
|
||||
#define ULTIMATIC_DIT_PRIORITY 1
|
||||
#define ULTIMATIC_DAH_PRIORITY 2
|
||||
|
||||
|
||||
#define PRINTCHAR 0
|
||||
#define NOPRINT 1
|
||||
|
||||
#define DONT_RAISE_ERROR_MSG 0
|
||||
#define RAISE_ERROR_MSG 1
|
||||
|
||||
#if !defined(HID_PROTOCOL_KEYBOARD) && !defined(HID_PROTOCOL_MOUSE)
|
||||
#define HID_PROTOCOL_KEYBOARD 1
|
||||
#define HID_PROTOCOL_MOUSE 2
|
||||
#endif
|
||||
|
||||
#define WORDSWORTH_2_CHAR_WORDS 2
|
||||
#define WORDSWORTH_3_CHAR_WORDS 3
|
||||
#define WORDSWORTH_4_CHAR_WORDS 4
|
||||
#define WORDSWORTH_NAMES 5
|
||||
#define WORDSWORTH_QSO_WORDS 6
|
||||
#define WORDSWORTH_MIXED 99
|
||||
|
||||
#define WORDSWORTH_WORDSPACE 1
|
||||
#define WORDSWORTH_WPM 2
|
||||
#define WORDSWORTH_REPETITION 3
|
||||
|
||||
#define CALLSIGN_INTERNATIONAL 0
|
||||
#define CALLSIGN_US 1
|
||||
#define CALLSIGN_EUROPEAN 2
|
||||
#define CALLSIGN_CANADA 3
|
||||
|
||||
#define ECHO_PROGRESSIVE_5 40
|
||||
#define ECHO_2_CHAR_WORDS 41
|
||||
#define ECHO_3_CHAR_WORDS 42
|
||||
#define ECHO_4_CHAR_WORDS 43
|
||||
#define ECHO_NAMES 44
|
||||
#define ECHO_QSO_WORDS 45
|
||||
#define ECHO_MIXED 49
|
||||
|
||||
#define PRACTICE_NON_INTERACTIVE 0
|
||||
#define PRACTICE_INTERACTIVE 1
|
||||
|
||||
#define RANDOM_LETTER_GROUPS 61
|
||||
#define RANDOM_NUMBER_GROUPS 62
|
||||
#define RANDOM_MIXED_GROUPS 63
|
||||
|
||||
#define PRACTICE_2_CHAR_WORDS 51
|
||||
#define PRACTICE_3_CHAR_WORDS 52
|
||||
#define PRACTICE_4_CHAR_WORDS 53
|
||||
#define PRACTICE_NAMES 54
|
||||
#define PRACTICE_QSO_WORDS 55
|
||||
#define PRACTICE_MIXED 59
|
||||
|
||||
#define CLI_NORMAL_MODE 0
|
||||
#define CLI_MILL_MODE_PADDLE_SEND 1
|
||||
#define CLI_MILL_MODE_KEYBOARD_RECEIVE 2
|
||||
|
||||
#define COMMAND_SPEED_MODE_KEYER_WPM 0
|
||||
#define COMMAND_SPEED_MODE_COMMAND_MODE_WPM 1
|
||||
|
||||
#define SD_CARD_UNINITIALIZED 0
|
||||
#define SD_CARD_AVAILABLE 1
|
||||
#define SD_CARD_AVAILABLE_BEACON_FILE_FOUND 2
|
||||
#define SD_CARD_AVAILABLE_BEACON_FILE_RUNNING 3
|
||||
#define SD_CARD_ERROR 254
|
||||
|
||||
#define SD_CARD_LOG_NOT_OPEN 0
|
||||
#define SD_CARD_LOG_OPEN 1
|
||||
#define SD_CARD_LOG_ERROR 254
|
||||
|
||||
#define COMMAND_PL 1
|
||||
#define COMMAND_PT 2
|
||||
#define COMMAND_PA 3
|
||||
#define COMMAND_PI 4
|
||||
|
||||
#define SO2R_TX_1 1 // Transmitter 1
|
||||
#define SO2R_TX_2 2 // Transmitter 2
|
||||
#define SO2R_RX_1 1 // Receiver 1
|
||||
#define SO2R_RX_2 2 // Receiver 2
|
||||
#define SO2R_RX_S 3 // Stereo 1 and 2
|
||||
#define SO2R_RX_R 4 // Reverse stereo (implemented as stereo)
|
||||
#endif //keyer_h
|
||||
Executable
+414
@@ -0,0 +1,414 @@
|
||||
|
||||
|
||||
const char canadian_prefix_1[] PROGMEM = "VE1";
|
||||
const char canadian_prefix_2[] PROGMEM = "VE2";
|
||||
const char canadian_prefix_3[] PROGMEM = "VE3";
|
||||
const char canadian_prefix_4[] PROGMEM = "VE4";
|
||||
const char canadian_prefix_5[] PROGMEM = "VE5";
|
||||
const char canadian_prefix_6[] PROGMEM = "VE6";
|
||||
const char canadian_prefix_7[] PROGMEM = "VE7";
|
||||
const char canadian_prefix_8[] PROGMEM = "VE8";
|
||||
const char canadian_prefix_9[] PROGMEM = "VE9";
|
||||
const char canadian_prefix_10[] PROGMEM = "VY0";
|
||||
const char canadian_prefix_11[] PROGMEM = "VY1";
|
||||
const char canadian_prefix_12[] PROGMEM = "VY2";
|
||||
const char canadian_prefix_13[] PROGMEM = "VO1";
|
||||
const char canadian_prefix_14[] PROGMEM = "VO2";
|
||||
const byte canadian_prefix_size = 14;
|
||||
const char* const canadian_prefix_table[] PROGMEM =
|
||||
{canadian_prefix_1,canadian_prefix_2,canadian_prefix_3,canadian_prefix_4,canadian_prefix_5,canadian_prefix_6,canadian_prefix_7,canadian_prefix_8,canadian_prefix_9,canadian_prefix_10,
|
||||
canadian_prefix_11,canadian_prefix_12,canadian_prefix_13,canadian_prefix_14};
|
||||
|
||||
// European callsign prefix table
|
||||
//
|
||||
// Note 2017-05-06: This is weird. If I put "LB" in the array, avrdude trips up with a timeout error when uploading to a Mega.
|
||||
// That's why LB isn't in this table
|
||||
|
||||
const char eu_prefix_1[] PROGMEM = "3A";
|
||||
const char eu_prefix_2[] PROGMEM = "4O";
|
||||
const char eu_prefix_3[] PROGMEM = "4U";
|
||||
const char eu_prefix_4[] PROGMEM = "9A";
|
||||
const char eu_prefix_5[] PROGMEM = "9H";
|
||||
const char eu_prefix_6[] PROGMEM = "C3";
|
||||
const char eu_prefix_7[] PROGMEM = "CT";
|
||||
const char eu_prefix_8[] PROGMEM = "CU";
|
||||
const char eu_prefix_9[] PROGMEM = "DA";
|
||||
const char eu_prefix_10[] PROGMEM = "DB";
|
||||
const char eu_prefix_11[] PROGMEM = "DC";
|
||||
const char eu_prefix_12[] PROGMEM = "DD";
|
||||
const char eu_prefix_13[] PROGMEM = "DE";
|
||||
const char eu_prefix_14[] PROGMEM = "DF";
|
||||
const char eu_prefix_15[] PROGMEM = "DG";
|
||||
const char eu_prefix_16[] PROGMEM = "DH";
|
||||
const char eu_prefix_17[] PROGMEM = "DI";
|
||||
const char eu_prefix_18[] PROGMEM = "DJ";
|
||||
const char eu_prefix_19[] PROGMEM = "DK";
|
||||
const char eu_prefix_20[] PROGMEM = "DL";
|
||||
const char eu_prefix_21[] PROGMEM = "EI";
|
||||
const char eu_prefix_22[] PROGMEM = "ER";
|
||||
const char eu_prefix_23[] PROGMEM = "ES";
|
||||
const char eu_prefix_24[] PROGMEM = "EU";
|
||||
const char eu_prefix_25[] PROGMEM = "EV";
|
||||
const char eu_prefix_26[] PROGMEM = "EW";
|
||||
const char eu_prefix_27[] PROGMEM = "F";
|
||||
const char eu_prefix_28[] PROGMEM = "G";
|
||||
const char eu_prefix_29[] PROGMEM = "GX";
|
||||
const char eu_prefix_30[] PROGMEM = "GD";
|
||||
const char eu_prefix_31[] PROGMEM = "GT";
|
||||
const char eu_prefix_32[] PROGMEM = "GI";
|
||||
const char eu_prefix_33[] PROGMEM = "GN";
|
||||
const char eu_prefix_34[] PROGMEM = "GJ";
|
||||
const char eu_prefix_35[] PROGMEM = "GH";
|
||||
const char eu_prefix_36[] PROGMEM = "GM";
|
||||
const char eu_prefix_37[] PROGMEM = "GS";
|
||||
const char eu_prefix_38[] PROGMEM = "GU";
|
||||
const char eu_prefix_39[] PROGMEM = "GP";
|
||||
const char eu_prefix_40[] PROGMEM = "GW";
|
||||
const char eu_prefix_41[] PROGMEM = "GC";
|
||||
const char eu_prefix_42[] PROGMEM = "HB";
|
||||
const char eu_prefix_43[] PROGMEM = "HV";
|
||||
const char eu_prefix_44[] PROGMEM = "I";
|
||||
const char eu_prefix_45[] PROGMEM = "IS";
|
||||
const char eu_prefix_46[] PROGMEM = "IM";
|
||||
const char eu_prefix_47[] PROGMEM = "JW";
|
||||
const char eu_prefix_48[] PROGMEM = "JX";
|
||||
const char eu_prefix_49[] PROGMEM = "LX";
|
||||
const char eu_prefix_50[] PROGMEM = "LY";
|
||||
const char eu_prefix_51[] PROGMEM = "LZ";
|
||||
const char eu_prefix_52[] PROGMEM = "OY";
|
||||
const char eu_prefix_53[] PROGMEM = "OZ";
|
||||
const char eu_prefix_54[] PROGMEM = "S5";
|
||||
const char eu_prefix_55[] PROGMEM = "YU";
|
||||
const char eu_prefix_56[] PROGMEM = "T7";
|
||||
const char eu_prefix_57[] PROGMEM = "T9";
|
||||
const char eu_prefix_58[] PROGMEM = "TF";
|
||||
const char eu_prefix_59[] PROGMEM = "TK";
|
||||
const char eu_prefix_60[] PROGMEM = "EM";
|
||||
const char eu_prefix_61[] PROGMEM = "EO";
|
||||
const char eu_prefix_62[] PROGMEM = "YL";
|
||||
const char eu_prefix_63[] PROGMEM = "YO";
|
||||
const char eu_prefix_64[] PROGMEM = "YT";
|
||||
const char eu_prefix_65[] PROGMEM = "YU";
|
||||
const char eu_prefix_66[] PROGMEM = "YP";
|
||||
const char eu_prefix_67[] PROGMEM = "YQ";
|
||||
const char eu_prefix_68[] PROGMEM = "YR";
|
||||
const char eu_prefix_69[] PROGMEM = "Z3";
|
||||
const char eu_prefix_70[] PROGMEM = "ZA";
|
||||
const char eu_prefix_71[] PROGMEM = "YZ";
|
||||
const char eu_prefix_72[] PROGMEM = "SA";
|
||||
const char eu_prefix_73[] PROGMEM = "SB";
|
||||
const char eu_prefix_74[] PROGMEM = "SC";
|
||||
const char eu_prefix_75[] PROGMEM = "SD";
|
||||
const char eu_prefix_76[] PROGMEM = "SE";
|
||||
const char eu_prefix_77[] PROGMEM = "SF";
|
||||
const char eu_prefix_78[] PROGMEM = "SG";
|
||||
const char eu_prefix_79[] PROGMEM = "SH";
|
||||
const char eu_prefix_80[] PROGMEM = "SI";
|
||||
const char eu_prefix_81[] PROGMEM = "SJ";
|
||||
const char eu_prefix_82[] PROGMEM = "SK";
|
||||
const char eu_prefix_83[] PROGMEM = "SL";
|
||||
const char eu_prefix_84[] PROGMEM = "SM";
|
||||
const char eu_prefix_85[] PROGMEM = "SN";
|
||||
const char eu_prefix_86[] PROGMEM = "SO";
|
||||
const char eu_prefix_87[] PROGMEM = "SP";
|
||||
const char eu_prefix_88[] PROGMEM = "SQ";
|
||||
const char eu_prefix_89[] PROGMEM = "SR";
|
||||
const char eu_prefix_90[] PROGMEM = "SS";
|
||||
const char eu_prefix_91[] PROGMEM = "ST";
|
||||
const char eu_prefix_92[] PROGMEM = "SU";
|
||||
const char eu_prefix_93[] PROGMEM = "SV";
|
||||
const char eu_prefix_94[] PROGMEM = "SW";
|
||||
const char eu_prefix_95[] PROGMEM = "SX";
|
||||
const char eu_prefix_96[] PROGMEM = "SY";
|
||||
const char eu_prefix_97[] PROGMEM = "SZ";
|
||||
const char eu_prefix_98[] PROGMEM = "OE";
|
||||
const char eu_prefix_99[] PROGMEM = "OF";
|
||||
const char eu_prefix_100[] PROGMEM = "OG";
|
||||
const char eu_prefix_101[] PROGMEM = "OH";
|
||||
const char eu_prefix_102[] PROGMEM = "OI";
|
||||
const char eu_prefix_103[] PROGMEM = "OJ";
|
||||
const char eu_prefix_104[] PROGMEM = "OK";
|
||||
const char eu_prefix_105[] PROGMEM = "OL";
|
||||
const char eu_prefix_106[] PROGMEM = "OM";
|
||||
const char eu_prefix_107[] PROGMEM = "ON";
|
||||
const char eu_prefix_108[] PROGMEM = "OO";
|
||||
const char eu_prefix_109[] PROGMEM = "OP";
|
||||
const char eu_prefix_110[] PROGMEM = "OQ";
|
||||
const char eu_prefix_111[] PROGMEM = "OR";
|
||||
const char eu_prefix_112[] PROGMEM = "OS";
|
||||
const char eu_prefix_113[] PROGMEM = "OT";
|
||||
const char eu_prefix_114[] PROGMEM = "PA";
|
||||
const char eu_prefix_115[] PROGMEM = "PB";
|
||||
const char eu_prefix_116[] PROGMEM = "PC";
|
||||
const char eu_prefix_117[] PROGMEM = "PD";
|
||||
const char eu_prefix_118[] PROGMEM = "PE";
|
||||
const char eu_prefix_119[] PROGMEM = "PF";
|
||||
const char eu_prefix_120[] PROGMEM = "PG";
|
||||
const char eu_prefix_121[] PROGMEM = "PH";
|
||||
const char eu_prefix_122[] PROGMEM = "PI";
|
||||
const char eu_prefix_123[] PROGMEM = "UA";
|
||||
const char eu_prefix_124[] PROGMEM = "UB";
|
||||
const char eu_prefix_125[] PROGMEM = "UC";
|
||||
const char eu_prefix_126[] PROGMEM = "UD";
|
||||
const char eu_prefix_127[] PROGMEM = "UE";
|
||||
const char eu_prefix_128[] PROGMEM = "UF";
|
||||
const char eu_prefix_129[] PROGMEM = "UG";
|
||||
const char eu_prefix_130[] PROGMEM = "UH";
|
||||
const char eu_prefix_131[] PROGMEM = "UI";
|
||||
const char eu_prefix_132[] PROGMEM = "RA";
|
||||
const char eu_prefix_133[] PROGMEM = "RB";
|
||||
const char eu_prefix_134[] PROGMEM = "RC";
|
||||
const char eu_prefix_135[] PROGMEM = "RD";
|
||||
const char eu_prefix_136[] PROGMEM = "RE";
|
||||
const char eu_prefix_137[] PROGMEM = "RF";
|
||||
const char eu_prefix_138[] PROGMEM = "RG";
|
||||
const char eu_prefix_139[] PROGMEM = "RH";
|
||||
const char eu_prefix_140[] PROGMEM = "RI";
|
||||
const char eu_prefix_141[] PROGMEM = "RJ";
|
||||
const char eu_prefix_142[] PROGMEM = "RK";
|
||||
const char eu_prefix_143[] PROGMEM = "RL";
|
||||
const char eu_prefix_144[] PROGMEM = "RM";
|
||||
const char eu_prefix_145[] PROGMEM = "RN";
|
||||
const char eu_prefix_146[] PROGMEM = "RO";
|
||||
const char eu_prefix_147[] PROGMEM = "RP";
|
||||
const char eu_prefix_148[] PROGMEM = "RQ";
|
||||
const char eu_prefix_149[] PROGMEM = "RR";
|
||||
const char eu_prefix_150[] PROGMEM = "RS";
|
||||
const char eu_prefix_151[] PROGMEM = "RT";
|
||||
const char eu_prefix_152[] PROGMEM = "RU";
|
||||
const char eu_prefix_153[] PROGMEM = "RV";
|
||||
const char eu_prefix_154[] PROGMEM = "RW";
|
||||
const char eu_prefix_155[] PROGMEM = "RX";
|
||||
const char eu_prefix_156[] PROGMEM = "RY";
|
||||
const char eu_prefix_157[] PROGMEM = "RZ";
|
||||
const char eu_prefix_158[] PROGMEM = "UR";
|
||||
const char eu_prefix_159[] PROGMEM = "US";
|
||||
const char eu_prefix_160[] PROGMEM = "UT";
|
||||
const char eu_prefix_161[] PROGMEM = "UU";
|
||||
const char eu_prefix_162[] PROGMEM = "UV";
|
||||
const char eu_prefix_163[] PROGMEM = "UW";
|
||||
const char eu_prefix_164[] PROGMEM = "UX";
|
||||
const char eu_prefix_165[] PROGMEM = "UY";
|
||||
const char eu_prefix_166[] PROGMEM = "UZ";
|
||||
const char eu_prefix_167[] PROGMEM = "EA";
|
||||
const char eu_prefix_168[] PROGMEM = "EB";
|
||||
const char eu_prefix_169[] PROGMEM = "EC";
|
||||
const char eu_prefix_170[] PROGMEM = "ED";
|
||||
const char eu_prefix_171[] PROGMEM = "EE";
|
||||
const char eu_prefix_172[] PROGMEM = "EF";
|
||||
const char eu_prefix_173[] PROGMEM = "EG";
|
||||
const char eu_prefix_174[] PROGMEM = "EH";
|
||||
const char eu_prefix_175[] PROGMEM = "EJ";
|
||||
const char eu_prefix_176[] PROGMEM = "HA";
|
||||
const char eu_prefix_177[] PROGMEM = "HG";
|
||||
const char eu_prefix_178[] PROGMEM = "LA";
|
||||
const char eu_prefix_179[] PROGMEM = "LC";
|
||||
const char eu_prefix_180[] PROGMEM = "LD";
|
||||
const char eu_prefix_181[] PROGMEM = "LE";
|
||||
const char eu_prefix_182[] PROGMEM = "LF";
|
||||
const char eu_prefix_183[] PROGMEM = "LG";
|
||||
const char eu_prefix_184[] PROGMEM = "LH";
|
||||
const char eu_prefix_185[] PROGMEM = "LI";
|
||||
const char eu_prefix_186[] PROGMEM = "LJ";
|
||||
const char eu_prefix_187[] PROGMEM = "LK";
|
||||
const char eu_prefix_188[] PROGMEM = "LL";
|
||||
const char eu_prefix_189[] PROGMEM = "LM";
|
||||
const char eu_prefix_190[] PROGMEM = "LN";
|
||||
/*const char eu_prefix_191[] PROGMEM = "LB"; see note above about "LB"*/
|
||||
const byte eu_prefix_size = 190;
|
||||
const char* const eu_prefix_table[] PROGMEM = {
|
||||
eu_prefix_1,
|
||||
eu_prefix_2,
|
||||
eu_prefix_3,
|
||||
eu_prefix_4,
|
||||
eu_prefix_5,
|
||||
eu_prefix_6,
|
||||
eu_prefix_7,
|
||||
eu_prefix_8,
|
||||
eu_prefix_9,
|
||||
eu_prefix_10,
|
||||
eu_prefix_11,
|
||||
eu_prefix_12,
|
||||
eu_prefix_13,
|
||||
eu_prefix_14,
|
||||
eu_prefix_15,
|
||||
eu_prefix_16,
|
||||
eu_prefix_17,
|
||||
eu_prefix_18,
|
||||
eu_prefix_19,
|
||||
eu_prefix_20,
|
||||
eu_prefix_21,
|
||||
eu_prefix_22,
|
||||
eu_prefix_23,
|
||||
eu_prefix_24,
|
||||
eu_prefix_25,
|
||||
eu_prefix_26,
|
||||
eu_prefix_27,
|
||||
eu_prefix_28,
|
||||
eu_prefix_29,
|
||||
eu_prefix_30,
|
||||
eu_prefix_31,
|
||||
eu_prefix_32,
|
||||
eu_prefix_33,
|
||||
eu_prefix_34,
|
||||
eu_prefix_35,
|
||||
eu_prefix_36,
|
||||
eu_prefix_37,
|
||||
eu_prefix_38,
|
||||
eu_prefix_39,
|
||||
eu_prefix_40,
|
||||
eu_prefix_41,
|
||||
eu_prefix_42,
|
||||
eu_prefix_43,
|
||||
eu_prefix_44,
|
||||
eu_prefix_45,
|
||||
eu_prefix_46,
|
||||
eu_prefix_47,
|
||||
eu_prefix_48,
|
||||
eu_prefix_49,
|
||||
eu_prefix_50,
|
||||
eu_prefix_51,
|
||||
eu_prefix_52,
|
||||
eu_prefix_53,
|
||||
eu_prefix_54,
|
||||
eu_prefix_55,
|
||||
eu_prefix_56,
|
||||
eu_prefix_57,
|
||||
eu_prefix_58,
|
||||
eu_prefix_59,
|
||||
eu_prefix_60,
|
||||
eu_prefix_61,
|
||||
eu_prefix_62,
|
||||
eu_prefix_63,
|
||||
eu_prefix_64,
|
||||
eu_prefix_65,
|
||||
eu_prefix_66,
|
||||
eu_prefix_67,
|
||||
eu_prefix_68,
|
||||
eu_prefix_69,
|
||||
eu_prefix_70,
|
||||
eu_prefix_71,
|
||||
eu_prefix_72,
|
||||
eu_prefix_73,
|
||||
eu_prefix_74,
|
||||
eu_prefix_75,
|
||||
eu_prefix_76,
|
||||
eu_prefix_77,
|
||||
eu_prefix_78,
|
||||
eu_prefix_79,
|
||||
eu_prefix_80,
|
||||
eu_prefix_81,
|
||||
eu_prefix_82,
|
||||
eu_prefix_83,
|
||||
eu_prefix_84,
|
||||
eu_prefix_85,
|
||||
eu_prefix_86,
|
||||
eu_prefix_87,
|
||||
eu_prefix_88,
|
||||
eu_prefix_89,
|
||||
eu_prefix_90,
|
||||
eu_prefix_91,
|
||||
eu_prefix_92,
|
||||
eu_prefix_93,
|
||||
eu_prefix_94,
|
||||
eu_prefix_95,
|
||||
eu_prefix_96,
|
||||
eu_prefix_97,
|
||||
eu_prefix_98,
|
||||
eu_prefix_99,
|
||||
eu_prefix_100,
|
||||
eu_prefix_101,
|
||||
eu_prefix_102,
|
||||
eu_prefix_103,
|
||||
eu_prefix_104,
|
||||
eu_prefix_105,
|
||||
eu_prefix_106,
|
||||
eu_prefix_107,
|
||||
eu_prefix_108,
|
||||
eu_prefix_109,
|
||||
eu_prefix_110,
|
||||
eu_prefix_111,
|
||||
eu_prefix_112,
|
||||
eu_prefix_113,
|
||||
eu_prefix_114,
|
||||
eu_prefix_115,
|
||||
eu_prefix_116,
|
||||
eu_prefix_117,
|
||||
eu_prefix_118,
|
||||
eu_prefix_119,
|
||||
eu_prefix_120,
|
||||
eu_prefix_121,
|
||||
eu_prefix_122,
|
||||
eu_prefix_123,
|
||||
eu_prefix_124,
|
||||
eu_prefix_125,
|
||||
eu_prefix_126,
|
||||
eu_prefix_127,
|
||||
eu_prefix_128,
|
||||
eu_prefix_129,
|
||||
eu_prefix_130,
|
||||
eu_prefix_131,
|
||||
eu_prefix_132,
|
||||
eu_prefix_133,
|
||||
eu_prefix_134,
|
||||
eu_prefix_135,
|
||||
eu_prefix_136,
|
||||
eu_prefix_137,
|
||||
eu_prefix_138,
|
||||
eu_prefix_139,
|
||||
eu_prefix_140,
|
||||
eu_prefix_141,
|
||||
eu_prefix_142,
|
||||
eu_prefix_143,
|
||||
eu_prefix_144,
|
||||
eu_prefix_145,
|
||||
eu_prefix_146,
|
||||
eu_prefix_147,
|
||||
eu_prefix_148,
|
||||
eu_prefix_149,
|
||||
eu_prefix_150,
|
||||
eu_prefix_151,
|
||||
eu_prefix_152,
|
||||
eu_prefix_153,
|
||||
eu_prefix_154,
|
||||
eu_prefix_155,
|
||||
eu_prefix_156,
|
||||
eu_prefix_157,
|
||||
eu_prefix_158,
|
||||
eu_prefix_159,
|
||||
eu_prefix_160,
|
||||
eu_prefix_161,
|
||||
eu_prefix_162,
|
||||
eu_prefix_163,
|
||||
eu_prefix_164,
|
||||
eu_prefix_165,
|
||||
eu_prefix_166,
|
||||
eu_prefix_167,
|
||||
eu_prefix_168,
|
||||
eu_prefix_169,
|
||||
eu_prefix_170,
|
||||
eu_prefix_171,
|
||||
eu_prefix_172,
|
||||
eu_prefix_173,
|
||||
eu_prefix_174,
|
||||
eu_prefix_175,
|
||||
eu_prefix_176,
|
||||
eu_prefix_177,
|
||||
eu_prefix_178,
|
||||
eu_prefix_179,
|
||||
eu_prefix_180,
|
||||
eu_prefix_181,
|
||||
eu_prefix_182,
|
||||
eu_prefix_183,
|
||||
eu_prefix_184,
|
||||
eu_prefix_185,
|
||||
eu_prefix_186,
|
||||
eu_prefix_187,
|
||||
eu_prefix_188,
|
||||
eu_prefix_189,
|
||||
eu_prefix_190/*,
|
||||
eu_prefix_191*/
|
||||
};
|
||||
|
||||
|
||||
|
||||
Executable
+63
@@ -0,0 +1,63 @@
|
||||
// don't touch these unless you know what the hell you are doing or you're asked to uncomment these for debug dumps
|
||||
// #define DEBUG_STARTUP
|
||||
// #define DEBUG_STARTUP_BLINKS
|
||||
// #define DEBUG_LOOP
|
||||
// #define DEBUG_EEPROM
|
||||
// #define DEBUG_MEMORIES
|
||||
// #define DEBUG_PLAY_MEMORY
|
||||
// #define DEBUG_SEND_CHAR
|
||||
// #define DEBUG_MEMORY_WRITE
|
||||
// #define DEBUG_MEMORYCHECK
|
||||
// #define DEBUG_MEMORY_LOCATIONS
|
||||
// #define DEBUG_CAPTURE_COM_PORT
|
||||
// #define DEBUG_HELL_TEST
|
||||
// #define DEBUG_WINKEY_PROTOCOL_USING_CW
|
||||
// #define DEBUG_CHECK_SERIAL
|
||||
// #define DEBUG_PS2_KEYBOARD
|
||||
// #define DEBUG_VARIABLE_DUMP
|
||||
// #define DEBUG_BUTTONS
|
||||
// #define DEBUG_COMMAND_MODE
|
||||
// #define DEBUG_GET_CW_INPUT_FROM_USER
|
||||
// #define DEBUG_POTENTIOMETER
|
||||
// #define DEBUG_CW_DECODER
|
||||
// #define DEBUG_CW_DECODER_WPM
|
||||
// #define DEBUG_SERIAL_SEND_CW_CALLOUT
|
||||
// #define DEBUG_SLEEP
|
||||
// #define DEBUG_BACKLIGHT
|
||||
// #define DEBUG_BUTTON_ARRAY
|
||||
// #define DEBUG_USB
|
||||
// #define DEBUG_USB_KEYBOARD
|
||||
// #define DEBUG_CAPACITIVE_PADDLE
|
||||
// #define DEBUG_DISPLAY_SCROLL_PRINT_CHAR
|
||||
// #define DEBUG_WINKEY // <- to use this you must have a multi-serial port Arduino and use FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
// #define DEBUG_WINKEY_SEND_ERRANT_BYTE
|
||||
// #define DEBUG_WINKEY_PORT_WRITE
|
||||
// #define DEBUG_CW_COMPUTER_KEYBOARD
|
||||
// #define DEBUG_CW_DECODER_WITH_TONE
|
||||
// #define DEBUG_OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// #define DEBUG_FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
// #define DEBUG_FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define DEBUG_UDP
|
||||
// #define DEBUG_UDP_WRITE
|
||||
// #define DEBUG_WEB_SERVER
|
||||
// #define DEBUG_WEB_PARSE_GET
|
||||
// #define DEBUG_WEB_SERVER_READS
|
||||
// #define DEBUG_INTERNET_LINKING_RECEIVE
|
||||
// #define DEBUG_INTERNET_LINKING_SEND
|
||||
// #define DEBUG_UDP_PACKET_RECEIVE
|
||||
// #define DEBUG_FORCE_RESET
|
||||
// #define DEBUG_WINKEY_DISABLE_LEAD_IN_TIME_SETTING
|
||||
// #define DEBUG_KEYPAD_SERIAL
|
||||
// #define DEBUG_CALLSIGN_PRACTICE_SHOW_CALLSIGN
|
||||
// #define DEBUG_WORDSWORTH
|
||||
// #define DEBUG_PRACTICE_SERIAL
|
||||
// #define DEBUG_PRACTICE_CMD_MODE
|
||||
// #define DEBUG_SD_CARD
|
||||
// #define DEBUG_FARNSWORTH
|
||||
// #define DEBUG_FARNSWORTH_TIMING
|
||||
// #define DEBUG_ASYNC_EEPROM_WRITE
|
||||
// #define DEBUG_SERVICE_SEND_BUFFER
|
||||
// #define DEBUG_EEPROM_READ_SETTINGS
|
||||
// #define DEBUG_LOOP_ELEMENT_LENGTHS
|
||||
|
||||
// #define OPTION_WINKEY_IGNORE_FIRST_STATUS_REQUEST
|
||||
Executable
+49
@@ -0,0 +1,49 @@
|
||||
#if defined(FEATURE_LCD_4BIT) || defined(FEATURE_LCD_8BIT) || defined(FEATURE_LCD_ADAFRUIT_I2C) || defined(FEATURE_LCD_ADAFRUIT_BACKPACK) || defined(FEATURE_LCD_YDv1) ||defined(FEATURE_LCD1602_N07DH) || defined(FEATURE_LCD_SAINSMART_I2C) || defined(FEATURE_LCD_FABO_PCF8574) || defined(FEATURE_LCD_MATHERTEL_PCF8574) || defined(FEATURE_LCD_HD44780) || defined(FEATURE_LCD_I2C_FDEBRABANDER)
|
||||
#define FEATURE_DISPLAY
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT) && !defined(FEATURE_COMMAND_LINE_INTERFACE)
|
||||
#define FEATURE_COMMAND_LINE_INTERFACE
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_COMMAND_LINE_INTERFACE) || defined(FEATURE_WINKEY_EMULATION)
|
||||
#define FEATURE_SERIAL
|
||||
#endif
|
||||
|
||||
//#if defined(HARDWARE_ARDUINO_DUE) && !defined(FEATURE_EEPROM_E24C1024) && defined(FEATURE_MEMORIES)
|
||||
#if defined(ARDUINO_SAM_DUE) && !defined(FEATURE_EEPROM_E24C1024) && defined(FEATURE_MEMORIES)
|
||||
#error "In order to use FEATURE_MEMORIES with HARDWARE_ARDUINO_DUE you need FEATURE_EEPROM_E24C1024"
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_DISPLAY) || defined(FEATURE_COMMAND_LINE_INTERFACE) || defined(FEATURE_CW_COMPUTER_KEYBOARD)
|
||||
#define FEATURE_PADDLE_ECHO
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_STRAIGHT_KEY) && (defined(FEATURE_STRAIGHT_KEY_ECHO) || defined(FEATURE_MEMORIES) || defined(FEATURE_CW_COMPUTER_KEYBOARD))
|
||||
#define FEATURE_STRAIGHT_KEY_DECODE
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_WEB_SERVER) || defined(FEATURE_INTERNET_LINK)
|
||||
#define FEATURE_ETHERNET
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_INTERNET_LINK)
|
||||
#define FEATURE_UDP
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD) && defined(FEATURE_3x4_KEYPAD)
|
||||
#error "You can't use both FEATURE_4x4_KEYPAD and FEATURE_3x4_KEYPAD simultaneously"
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_TRAINING_COMMAND_LINE_INTERFACE) && defined(OPTION_WORDSWORTH_NORSK) && !defined(OPTION_NON_ENGLISH_EXTENSIONS)
|
||||
#define OPTION_NON_ENGLISH_EXTENSIONS
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_BEACON_SETTING) && !defined(FEATURE_MEMORIES)
|
||||
#error "FEATURE_BEACON_SETTING requires FEATURE_MEMORIES and you may also want FEATURE_MEMORY_MACROS"
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE) && !defined(FEATURE_BUTTONS)
|
||||
#error "FEATURE_COMMAND_MODE requires FEATURE_BUTTONS"
|
||||
#endif
|
||||
Executable
+134
@@ -0,0 +1,134 @@
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
|
||||
#define FEATURE_BUTTONS
|
||||
#define FEATURE_COMMAND_MODE
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
// #define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
// #define FEATURE_MEMORY_MACROS
|
||||
// #define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
// #define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
// #define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
// #define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
#define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
// #define FEATURE_SERIAL_HELP
|
||||
// #define FEATURE_HELL
|
||||
// #define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
// #define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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 -- uncomment this line in ino file: #include <Keyboard.h>
|
||||
// #define FEATURE_DEAD_OP_WATCHDOG
|
||||
// #define FEATURE_AUTOSPACE
|
||||
// #define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
// #define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
// #define FEATURE_LCD_8BIT // classic LCD display using 8 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
// #define FEATURE_LCD_FABO_PCF8574 // https://github.com/FaBoPlatform/FaBoLCD-PCF8574-Library
|
||||
// #define FEATURE_LCD_MATHERTEL_PCF8574 // https://github.com/mathertel/LiquidCrystal_PCF8574
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
#define FEATURE_LCD_HD44780
|
||||
// #define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
// #define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
// #define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
// #define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
// #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
// #define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
// #define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
// #define FEATURE_PTT_INTERLOCK
|
||||
// #define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
// #define FEATURE_STRAIGHT_KEY
|
||||
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
// #define FEATURE_PADDLE_ECHO // you may also need to comment out line 19 in the file keyer_dependencies.h
|
||||
// #define FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_SEQUENCER
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
// #define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
// #define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
#define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // (Required for Win-Test to function)
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
// #define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
// #define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
// #define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
// #define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
// #define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
// #define OPTION_DO_NOT_SAY_HI
|
||||
// #define 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)
|
||||
// #define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
#define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
// #define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
// #define 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)
|
||||
// #define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
// #define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
// #define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
// #define FEATURE_SD_CARD_SUPPORT
|
||||
// #define FEATURE_SO2R_BASE // SO2R Box base protocol extensions
|
||||
// #define FEATURE_SO2R_SWITCHES // SO2R Box TX and RX switches
|
||||
// #define FEATURE_SO2R_ANTENNA // SO2R Box antenna selection (not fully implemented)
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
// #define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
#define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
+148
@@ -0,0 +1,148 @@
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
// ######## ## ## ## ## ## ## ######## ## ## ######## ########
|
||||
// ## ## ## ### ## ## ## ## ## ## ## ## ##
|
||||
// ## ## ## #### ## ## ## ## #### ## ## ##
|
||||
// ###### ## ## ## ## ## ##### ###### ## ###### ########
|
||||
// ## ## ## ## #### ## ## ## ## ## ## ##
|
||||
// ## ## ## ## ### ## ## ## ## ## ## ##
|
||||
// ## ####### ## ## ## ## ######## ## ######## ## ##
|
||||
|
||||
|
||||
// ######## ## ## ## #####
|
||||
// ## ## ## #### ## ##
|
||||
// ## ## ## ## ## ##
|
||||
// ###### ##### ## ## ##
|
||||
// ## ## ## ## ## ##
|
||||
// ## ## ## ## ## ##
|
||||
// ## ## ## ###### #####
|
||||
|
||||
// Contributed by Disneysw
|
||||
|
||||
#define FEATURE_BUTTONS
|
||||
#define FEATURE_COMMAND_MODE
|
||||
#define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
#define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
#define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
#define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
// #define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
#define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
// #define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
#define FEATURE_SERIAL_HELP
|
||||
#define FEATURE_HELL
|
||||
// #define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
#define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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
|
||||
#define FEATURE_DEAD_OP_WATCHDOG
|
||||
#define FEATURE_AUTOSPACE
|
||||
#define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
#define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
// #define FEATURE_LCD_8BIT // classic LCD display using 8 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
// #define FEATURE_LCD_FABO_PCF8574 // https://github.com/FaBoPlatform/FaBoLCD-PCF8574-Library
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
#define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
// #define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
#define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
#define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
#define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
#define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
//#define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
// #define FEATURE_PTT_INTERLOCK
|
||||
// #define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
// #define FEATURE_STRAIGHT_KEY
|
||||
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
// #define FEATURE_PADDLE_ECHO
|
||||
// #define FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_SEQUENCER
|
||||
// #define FEATURE_SD_CARD_SUPPORT
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
// #define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
// #define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
#define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // (Required for Win-Test to function)
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
// #define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
// #define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
#define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
#define OPTION_N1MM_WINKEY_TAB_BUG_WORKAROUND // enable this to ignore the TAB key in the Send CW window (this breaks SO2R functionality in N1MM)
|
||||
#define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
#define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
// #define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
// #define OPTION_DO_NOT_SAY_HI
|
||||
// #define 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)
|
||||
// #define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
// #define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
#define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
#define 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)
|
||||
#define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
// #define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
// #define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
// #define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
+135
@@ -0,0 +1,135 @@
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
// Funtronics FK-11
|
||||
|
||||
#define FEATURE_BUTTONS
|
||||
#define FEATURE_COMMAND_MODE
|
||||
#define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
#define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
#define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
#define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
#define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
#define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
// #define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
#define FEATURE_SERIAL_HELP
|
||||
#define FEATURE_HELL
|
||||
// #define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
#define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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 -- uncomment this line in ino file: #include <Keyboard.h>
|
||||
#define FEATURE_DEAD_OP_WATCHDOG
|
||||
#define FEATURE_AUTOSPACE
|
||||
#define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
// #define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
// #define FEATURE_LCD_8BIT // classic LCD display using 8 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
#define FEATURE_LCD_FABO_PCF8574 // https://github.com/FaBoPlatform/FaBoLCD-PCF8574-Library
|
||||
// #define FEATURE_LCD_MATHERTEL_PCF8574 // https://github.com/mathertel/LiquidCrystal_PCF8574
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
// #define FEATURE_LCD_HD44780
|
||||
#define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
// #define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
#define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
#define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
#define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
#define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
// #define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
// #define FEATURE_PTT_INTERLOCK
|
||||
// #define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
// #define FEATURE_STRAIGHT_KEY
|
||||
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
// #define FEATURE_PADDLE_ECHO
|
||||
// #define FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_SEQUENCER
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
#define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
// #define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
// #define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
#define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // (Required for Win-Test to function)
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
// #define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
#define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
#define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
#define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
// #define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
// #define OPTION_DO_NOT_SAY_HI
|
||||
// #define 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)
|
||||
// #define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
// #define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
#define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
#define 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)
|
||||
#define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
// #define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
// #define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
// #define FEATURE_SD_CARD_SUPPORT
|
||||
// #define FEATURE_SO2R_BASE // SO2R Box base protocol extensions
|
||||
// #define FEATURE_SO2R_SWITCHES // SO2R Box TX and RX switches
|
||||
// #define FEATURE_SO2R_ANTENNA // SO2R Box antenna selection (not fully implemented)
|
||||
|
||||
#define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
// #define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
+135
@@ -0,0 +1,135 @@
|
||||
/*
|
||||
Generic STM32F103C "Blue Pill"
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
|
||||
#define FEATURE_BUTTONS
|
||||
#define FEATURE_COMMAND_MODE
|
||||
#define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
#define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
#define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
#define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
#define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
// #define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
// #define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
#define FEATURE_SERIAL_HELP
|
||||
#define FEATURE_HELL
|
||||
// #define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
// #define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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 -- uncomment this line in ino file: #include <Keyboard.h>
|
||||
#define FEATURE_DEAD_OP_WATCHDOG
|
||||
#define FEATURE_AUTOSPACE
|
||||
#define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
#define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
// #define FEATURE_LCD_8BIT // classic LCD display using 8 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
// #define FEATURE_LCD_FABO_PCF8574 // https://github.com/FaBoPlatform/FaBoLCD-PCF8574-Library
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
// #define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
// #define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
#define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
// #define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
// #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
#define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
// #define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
// #define FEATURE_PTT_INTERLOCK
|
||||
#define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
// #define FEATURE_STRAIGHT_KEY
|
||||
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
// #define FEATURE_PADDLE_ECHO
|
||||
// #define FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_SEQUENCER
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
//#define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
// #define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
//#define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
//#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
//#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // (Required for Win-Test to function)
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
// #define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
// #define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
#define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
// #define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
// #define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
// #define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
// #define OPTION_DO_NOT_SAY_HI
|
||||
// #define 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)
|
||||
// #define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
// #define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
// #define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
// #define 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)
|
||||
#define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
#define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
// #define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
// #define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
// #define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
+131
@@ -0,0 +1,131 @@
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
|
||||
#define FEATURE_BUTTONS
|
||||
#define FEATURE_COMMAND_MODE
|
||||
#define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
#define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
#define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
// #define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
// #define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
// #define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
#define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
#define FEATURE_SERIAL_HELP
|
||||
// #define FEATURE_HELL
|
||||
// #define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
// #define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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 -- uncomment this line in ino file: #include <Keyboard.h>
|
||||
// #define FEATURE_DEAD_OP_WATCHDOG
|
||||
// #define FEATURE_AUTOSPACE
|
||||
// #define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
#define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
// #define FEATURE_LCD_8BIT // classic LCD display using 8 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
// #define FEATURE_LCD_FABO_PCF8574 // https://github.com/FaBoPlatform/FaBoLCD-PCF8574-Library
|
||||
// #define FEATURE_LCD_MATHERTEL_PCF8574 // https://github.com/mathertel/LiquidCrystal_PCF8574
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
// #define FEATURE_LCD_HD44780
|
||||
// #define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
// #define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
// #define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
// #define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
// #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
// #define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
// #define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
// #define FEATURE_PTT_INTERLOCK
|
||||
// #define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
// #define FEATURE_STRAIGHT_KEY
|
||||
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
// #define FEATURE_PADDLE_ECHO
|
||||
// #define FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_SEQUENCER
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
// #define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
// #define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
#define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // (Required for Win-Test to function)
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
// #define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
#define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
// #define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
// #define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
// #define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
// #define OPTION_DO_NOT_SAY_HI
|
||||
// #define 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)
|
||||
// #define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
#define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
// #define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
// #define 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)
|
||||
#define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
// #define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
// #define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
// #define FEATURE_SD_CARD_SUPPORT
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
// #define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
+130
@@ -0,0 +1,130 @@
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
|
||||
#define FEATURE_BUTTONS
|
||||
#define FEATURE_COMMAND_MODE
|
||||
#define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
#define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
#define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
#define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
#define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
// #define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
// #define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
#define FEATURE_SERIAL_HELP
|
||||
#define FEATURE_HELL
|
||||
#define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
// #define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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 -- uncomment this line in ino file: #include <Keyboard.h>
|
||||
#define FEATURE_DEAD_OP_WATCHDOG
|
||||
#define FEATURE_AUTOSPACE
|
||||
#define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
#define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
// #define FEATURE_LCD_8BIT // classic LCD display using 8 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
// #define FEATURE_LCD_FABO_PCF8574 // https://github.com/FaBoPlatform/FaBoLCD-PCF8574-Library
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
#define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
// #define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
#define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
// #define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
// #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
#define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
#define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
// #define FEATURE_PTT_INTERLOCK
|
||||
// #define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
// #define FEATURE_STRAIGHT_KEY //Highly recommended to leave disabled. Booting with straight key plugged in works better (timing issues w/ this feature w/paddles)
|
||||
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
// #define FEATURE_PADDLE_ECHO
|
||||
// #define FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_SEQUENCER
|
||||
// #define FEATURE_SD_CARD_SUPPORT
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
// #define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
// #define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
#define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // (Required for Win-Test to function)
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
// #define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
#define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
// #define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
// #define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
// #define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
// #define OPTION_DO_NOT_SAY_HI
|
||||
// #define 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)
|
||||
// #define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
#define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
#define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR //Goertzel default is 558Hz, with 186Hz bandwidth. Edit goertzel.h in libraries as desired.
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
#define 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)
|
||||
#define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
// #define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
#define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE //comment out if not using the twin T oscillator. Remember to change audio out pin
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
// #define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
+143
@@ -0,0 +1,143 @@
|
||||
/*
|
||||
|
||||
# # ## ##### # ###### # # # # # #
|
||||
## ## # # # # # # ## ## # ## # #
|
||||
# ## # # # # # # ##### # ## # # # # # #
|
||||
# # ###### ##### # # # # # # # # #
|
||||
# # # # # # # # # # # ## #
|
||||
# # # # # ###### ###### # # # # # #
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
|
||||
#define FEATURE_BUTTONS
|
||||
#define FEATURE_COMMAND_MODE
|
||||
#define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
#define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
#define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
#define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
#define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
// #define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
#define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
#define FEATURE_SERIAL_HELP
|
||||
#define FEATURE_HELL
|
||||
// #define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
// #define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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 -- uncomment this line in ino file: #include <Keyboard.h>
|
||||
#define FEATURE_DEAD_OP_WATCHDOG
|
||||
#define FEATURE_AUTOSPACE
|
||||
#define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
#define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
// #define FEATURE_LCD_8BIT // classic LCD display using 8 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
// #define FEATURE_LCD_FABO_PCF8574 // https://github.com/FaBoPlatform/FaBoLCD-PCF8574-Library
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
// #define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
// #define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
// #define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
// #define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
// #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
#define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
#define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
// #define FEATURE_PTT_INTERLOCK
|
||||
#define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
// #define FEATURE_STRAIGHT_KEY
|
||||
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
// #define FEATURE_PADDLE_ECHO
|
||||
// #define FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_SEQUENCER
|
||||
// #define FEATURE_SD_CARD_SUPPORT
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
//#define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
// #define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
//#define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // (Required for Win-Test to function)
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
// #define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
// #define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
#define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
// #define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
// #define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
// #define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
// #define OPTION_DO_NOT_SAY_HI
|
||||
// #define 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)
|
||||
// #define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
#define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
// #define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
// #define 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)
|
||||
#define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
#define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
// #define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
// #define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
// #define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
+135
@@ -0,0 +1,135 @@
|
||||
//
|
||||
// Features for W6IPA megakeyer v1.1 (CC) BY-NC-SA
|
||||
// Project files are available here https://github.com/w6ipa/megakeyer
|
||||
//
|
||||
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
|
||||
#define FEATURE_BUTTONS
|
||||
#define FEATURE_COMMAND_MODE
|
||||
#define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
#define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
#define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
#define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
#define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
#define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
// #define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
#define FEATURE_SERIAL_HELP
|
||||
// #define FEATURE_HELL
|
||||
#define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
// #define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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 -- uncomment this line in ino file: #include <Keyboard.h>
|
||||
// #define FEATURE_DEAD_OP_WATCHDOG
|
||||
// #define FEATURE_AUTOSPACE
|
||||
// #define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
// #define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
// #define FEATURE_LCD_8BIT // classic LCD display using 8 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
// #define FEATURE_LCD_FABO_PCF8574 // https://github.com/FaBoPlatform/FaBoLCD-PCF8574-Library
|
||||
#define FEATURE_LCD_HD44780
|
||||
// #define FEATURE_LCD_MATHERTEL_PCF8574 // https://github.com/mathertel/LiquidCrystal_PCF8574
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
// #define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
// #define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
#define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
#define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
// #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
#define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
#define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
// #define FEATURE_PTT_INTERLOCK
|
||||
// #define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
// #define FEATURE_STRAIGHT_KEY
|
||||
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
// #define FEATURE_PADDLE_ECHO
|
||||
// #define FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_SEQUENCER
|
||||
// #define FEATURE_SD_CARD_SUPPORT
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
// #define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
// #define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
#define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // (Required for Win-Test to function)
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
#define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
#define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
// #define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
// #define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
// #define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
// #define OPTION_DO_NOT_SAY_HI
|
||||
// #define 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)
|
||||
// #define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
#define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
// #define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
#define 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)
|
||||
#define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
#define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
// #define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
// #define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
+122
@@ -0,0 +1,122 @@
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
|
||||
// #define FEATURE_BUTTONS
|
||||
// #define FEATURE_COMMAND_MODE
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
// #define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
// #define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
// #define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
// #define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
// #define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
// #define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
// #define FEATURE_SERIAL_HELP
|
||||
// #define FEATURE_HELL
|
||||
// #define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
// #define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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 -- uncomment this line in ino file: #include <Keyboard.h>
|
||||
// #define FEATURE_DEAD_OP_WATCHDOG
|
||||
// #define FEATURE_AUTOSPACE
|
||||
// #define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
// #define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
// #define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
// #define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
// #define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
// #define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
// #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
// #define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
// #define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
// #define FEATURE_PTT_INTERLOCK
|
||||
// #define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
// #define FEATURE_STRAIGHT_KEY
|
||||
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
// #define FEATURE_PADDLE_ECHO
|
||||
// #define FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
// #define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
//#define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
// #define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // activate this when using Winkey 2 emulation and Win-Test
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
#define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
// #define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
// #define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
// #define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
// #define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
#define OPTION_DO_NOT_SAY_HI
|
||||
#define OPTION_BLINK_HI_ON_PTT
|
||||
// #define 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)
|
||||
// #define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
// #define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
// #define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
// #define 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)
|
||||
// #define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
// #define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
#define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
|
||||
// #define FEATURE_BUTTONS
|
||||
// #define FEATURE_COMMAND_MODE
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
// #define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
// #define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
// #define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
// #define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
// #define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
// #define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
// #define FEATURE_SERIAL_HELP
|
||||
// #define FEATURE_HELL
|
||||
// #define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
// #define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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 -- uncomment this line in ino file: #include <Keyboard.h>
|
||||
// #define FEATURE_DEAD_OP_WATCHDOG
|
||||
// #define FEATURE_AUTOSPACE
|
||||
// #define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
// #define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
// #define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
// #define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
// #define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
// #define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
// #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
// #define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
// #define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
// #define FEATURE_PTT_INTERLOCK
|
||||
// #define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
// #define FEATURE_STRAIGHT_KEY
|
||||
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
// #define FEATURE_PADDLE_ECHO
|
||||
// #define FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
// #define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
//#define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
// #define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // activate this when using Winkey 2 emulation and Win-Test
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
#define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
// #define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
// #define OPTION_N1MM_WINKEY_TAB_BUG_WORKAROUND // enable this to ignore the TAB key in the Send CW window (this breaks SO2R functionality in N1MM)
|
||||
// #define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
// #define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
// #define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
#define OPTION_DO_NOT_SAY_HI
|
||||
#define OPTION_BLINK_HI_ON_PTT
|
||||
// #define 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)
|
||||
// #define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
// #define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
// #define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
// #define 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)
|
||||
// #define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
// #define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
#define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
@@ -0,0 +1,119 @@
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
|
||||
// #define FEATURE_BUTTONS
|
||||
// #define FEATURE_COMMAND_MODE
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
// #define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
// #define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
// #define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
// #define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
// #define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
#define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
// #define FEATURE_SERIAL_HELP
|
||||
// #define FEATURE_HELL
|
||||
// #define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
// #define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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 -- uncomment this line in ino file: #include <Keyboard.h>
|
||||
// #define FEATURE_DEAD_OP_WATCHDOG
|
||||
// #define FEATURE_AUTOSPACE
|
||||
// #define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
// #define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
// #define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
// #define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
// #define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
// #define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
// #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
// #define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
// #define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
// #define FEATURE_PTT_INTERLOCK
|
||||
// #define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
// #define FEATURE_STRAIGHT_KEY
|
||||
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
// #define FEATURE_PADDLE_ECHO
|
||||
// #define FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
// #define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
//#define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
// #define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // activate this when using Winkey 2 emulation and Win-Test
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
#define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
// #define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
// #define OPTION_N1MM_WINKEY_TAB_BUG_WORKAROUND // enable this to ignore the TAB key in the Send CW window (this breaks SO2R functionality in N1MM)
|
||||
// #define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
// #define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
// #define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
#define OPTION_DO_NOT_SAY_HI
|
||||
#define OPTION_BLINK_HI_ON_PTT
|
||||
// #define 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)
|
||||
// #define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
// #define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
// #define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
// #define 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)
|
||||
// #define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
// #define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
#define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
|
||||
// #define FEATURE_BUTTONS
|
||||
// #define FEATURE_COMMAND_MODE
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
// #define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
// #define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
// #define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
// #define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
// #define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
// #define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
// #define FEATURE_SERIAL_HELP
|
||||
// #define FEATURE_HELL
|
||||
// #define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
// #define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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 -- uncomment this line in ino file: #include <Keyboard.h>
|
||||
// #define FEATURE_DEAD_OP_WATCHDOG
|
||||
// #define FEATURE_AUTOSPACE
|
||||
// #define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
// #define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
// #define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
// #define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
// #define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
// #define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
// #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
// #define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
// #define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
// #define FEATURE_PTT_INTERLOCK
|
||||
// #define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
// #define FEATURE_STRAIGHT_KEY
|
||||
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
// #define FEATURE_PADDLE_ECHO
|
||||
// #define FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
// #define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
//#define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
// #define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // activate this when using Winkey 2 emulation and Win-Test
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
#define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
// #define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
// #define OPTION_N1MM_WINKEY_TAB_BUG_WORKAROUND // enable this to ignore the TAB key in the Send CW window (this breaks SO2R functionality in N1MM)
|
||||
// #define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
// #define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
// #define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
#define OPTION_DO_NOT_SAY_HI
|
||||
#define OPTION_BLINK_HI_ON_PTT
|
||||
// #define 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)
|
||||
// #define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
// #define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
// #define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
// #define 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)
|
||||
// #define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
// #define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
#define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
@@ -0,0 +1,120 @@
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
|
||||
// #define FEATURE_BUTTONS
|
||||
// #define FEATURE_COMMAND_MODE
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
// #define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
// #define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
// #define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
// #define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
// #define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
#define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SERIAL_HELP
|
||||
// #define FEATURE_HELL
|
||||
// #define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
// #define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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 -- uncomment this line in ino file: #include <Keyboard.h>
|
||||
// #define FEATURE_DEAD_OP_WATCHDOG
|
||||
// #define FEATURE_AUTOSPACE
|
||||
// #define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
// #define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
// #define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
// #define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
// #define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
// #define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
// #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
// #define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
// #define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
// #define FEATURE_PTT_INTERLOCK
|
||||
// #define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
// #define FEATURE_STRAIGHT_KEY
|
||||
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
// #define FEATURE_PADDLE_ECHO
|
||||
// #define FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
// #define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
//#define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
// #define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // activate this when using Winkey 2 emulation and Win-Test
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
#define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
// #define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
// #define OPTION_N1MM_WINKEY_TAB_BUG_WORKAROUND // enable this to ignore the TAB key in the Send CW window (this breaks SO2R functionality in N1MM)
|
||||
// #define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
// #define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
// #define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
#define OPTION_DO_NOT_SAY_HI
|
||||
#define OPTION_BLINK_HI_ON_PTT
|
||||
// #define 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)
|
||||
// #define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
// #define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
// #define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
// #define 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)
|
||||
// #define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
// #define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
#define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
+113
@@ -0,0 +1,113 @@
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
#define FEATURE_BUTTONS
|
||||
#define FEATURE_COMMAND_MODE
|
||||
//#define FEATURE_COMMAND_LINE_INTERFACE // (this no longer requires FEATURE_SERIAL)
|
||||
#define FEATURE_MEMORIES
|
||||
//#define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
//#define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
//#define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
//#define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
#define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
//#define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
//#define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
//#define FEATURE_SERIAL_HELP
|
||||
//#define FEATURE_HELL
|
||||
//#define FEATURE_PS2_KEYBOARD // Change keyboard layout (non-US in K3NG_PS2Keyboard.h). Additional options below.
|
||||
//#define FEATURE_USB_KEYBOARD
|
||||
//#define FEATURE_DEAD_OP_WATCHDOG
|
||||
//#define FEATURE_AUTOSPACE
|
||||
//#define FEATURE_FARNSWORTH
|
||||
//#define 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
|
||||
//#define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
//#define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
//#define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
//#define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
// #define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
//#define 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)
|
||||
//#define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
//#define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
//#define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
//#define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
//#define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
//#define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
//#define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
//#define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
//#define FEATURE_PTT_INTERLOCK
|
||||
//#define FEATURE_QLF
|
||||
//#define FEATURE_EEPROM_E24C1024
|
||||
//#define FEATURE_STRAIGHT_KEY
|
||||
//#define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
//#define FEATURE_PADDLE_ECHO
|
||||
//#define FEATURE_STRAIGHT_KEY_ECHO
|
||||
//#define FEATURE_AMERICAN_MORSE
|
||||
//#define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
//#define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
//#define FEATURE_SEQUENCER
|
||||
//#define FEATURE_SD_CARD_SUPPORT
|
||||
//#define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
//#define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
//#define OPTION_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE simultaneously. This will make Winkey emulation be the default at boot up; hold command button down at boot up to activate CLI mode
|
||||
//#define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
//#define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
//#define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
#define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // (Required for Win-Test to function)
|
||||
//#define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround bug)
|
||||
//#define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
//#define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
//#define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
//#define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
//#define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
//#define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
//#define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
//#define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
//#define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
//#define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
//#define OPTION_DO_NOT_SAY_HI
|
||||
//#define 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)
|
||||
//#define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
#define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
//#define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
//#define 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)
|
||||
//#define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
//#define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
//#define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
#define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
+113
@@ -0,0 +1,113 @@
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
#define FEATURE_BUTTONS
|
||||
#define FEATURE_COMMAND_MODE
|
||||
//#define FEATURE_COMMAND_LINE_INTERFACE // (this no longer requires FEATURE_SERIAL)
|
||||
#define FEATURE_MEMORIES
|
||||
//#define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
//#define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
//#define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
//#define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
#define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
//#define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
//#define FEATURE_SERIAL_HELP
|
||||
//#define FEATURE_HELL
|
||||
//#define FEATURE_PS2_KEYBOARD // Change keyboard layout (non-US in K3NG_PS2Keyboard.h). Additional options below.
|
||||
//#define FEATURE_USB_KEYBOARD
|
||||
//#define FEATURE_DEAD_OP_WATCHDOG
|
||||
//#define FEATURE_AUTOSPACE
|
||||
//#define FEATURE_FARNSWORTH
|
||||
//#define 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
|
||||
//#define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
//#define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
//#define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
//#define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
// #define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
//#define FEATURE_SLEEP // go to sleep after x minutes to conserve battery power
|
||||
//#define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
//#define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
//#define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
//#define FEATURE_USB_MOUSE
|
||||
//#define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
//#define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
//#define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
//#define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
//#define FEATURE_PTT_INTERLOCK
|
||||
//#define FEATURE_QLF
|
||||
//#define FEATURE_EEPROM_E24C1024
|
||||
//#define FEATURE_STRAIGHT_KEY
|
||||
//#define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
//#define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
//#define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
//#define FEATURE_AMERICAN_MORSE
|
||||
//#define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
//#define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
//#define FEATURE_SEQUENCER
|
||||
//#define FEATURE_SD_CARD_SUPPORT
|
||||
//#define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
//#define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
//#define OPTION_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE simultaneously. This will make Winkey emulation be the default at boot up; hold command button down at boot up to activate CLI mode
|
||||
//#define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
//#define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
//#define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
#define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // (Required for Win-Test to function)
|
||||
//#define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround bug)
|
||||
//#define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
//#define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
//#define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
#define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
//#define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
//#define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
//#define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
//#define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
//#define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
//#define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
//#define OPTION_DO_NOT_SAY_HI
|
||||
//#define 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)
|
||||
//#define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
#define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
//#define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
//#define 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)
|
||||
//#define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
//#define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
//#define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
#define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
|
||||
+117
@@ -0,0 +1,117 @@
|
||||
// This file is for the Open Interface http://remoteqth.com/open-interface.php
|
||||
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
#define FEATURE_BUTTONS
|
||||
#define FEATURE_COMMAND_MODE
|
||||
#define FEATURE_COMMAND_LINE_INTERFACE // (this no longer requires FEATURE_SERIAL)
|
||||
#define FEATURE_MEMORIES
|
||||
#define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
//#define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
//#define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
#define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
#define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
#define FEATURE_SERIAL_HELP
|
||||
//#define FEATURE_HELL
|
||||
//#define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
//#define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
//#define FEATURE_DEAD_OP_WATCHDOG
|
||||
//#define FEATURE_AUTOSPACE
|
||||
#define FEATURE_FARNSWORTH
|
||||
//#define 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
|
||||
#define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
//#define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
//#define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
//#define FEATURE_LCD_FABO_PCF8574 // https://github.com/FaBoPlatform/FaBoLCD-PCF8574-Library
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
// #define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
//#define FEATURE_SLEEP // go to sleep after x minutes to conserve battery power
|
||||
//#define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
//#define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
#define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
//#define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
//#define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
//#define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
#define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
#define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
//#define FEATURE_PTT_INTERLOCK
|
||||
//#define FEATURE_QLF
|
||||
//#define FEATURE_EEPROM_E24C1024
|
||||
//#define FEATURE_STRAIGHT_KEY
|
||||
//#define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
//#define FEATURE_PADDLE_ECHO
|
||||
//#define FEATURE_STRAIGHT_KEY_ECHO
|
||||
//#define FEATURE_AMERICAN_MORSE
|
||||
//#define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
//#define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
//#define FEATURE_SEQUENCER
|
||||
//#define FEATURE_SD_CARD_SUPPORT
|
||||
//#define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
//#define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
#define OPTION_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE simultaneously. This will make Winkey emulation be the default at boot up; hold command button down at boot up to activate CLI mode
|
||||
//#define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
//#define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
//#define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
#define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
// #define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // (Required for Win-Test to function)
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround bug)
|
||||
//#define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
//#define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
//#define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
//#define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
#define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
//#define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
//#define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
//#define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
//#define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
//#define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
// #define OPTION_DO_NOT_SAY_HI
|
||||
//#define 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)
|
||||
//#define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
//#define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
//#define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
//#define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
//#define 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)
|
||||
//#define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
//#define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
//#define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
// #define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
#define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
+131
@@ -0,0 +1,131 @@
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
|
||||
#define FEATURE_BUTTONS
|
||||
#define FEATURE_COMMAND_MODE
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
#define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
// #define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
// #define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
// #define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
// #define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
#define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
// #define FEATURE_SERIAL_HELP
|
||||
// #define FEATURE_HELL
|
||||
// #define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
// #define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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 -- uncomment this line in ino file: #include <Keyboard.h>
|
||||
// #define FEATURE_DEAD_OP_WATCHDOG
|
||||
// #define FEATURE_AUTOSPACE
|
||||
// #define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
// #define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
// #define FEATURE_LCD_8BIT // classic LCD display using 8 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
// #define FEATURE_LCD_FABO_PCF8574 // https://github.com/FaBoPlatform/FaBoLCD-PCF8574-Library
|
||||
// #define FEATURE_LCD_MATHERTEL_PCF8574 // https://github.com/mathertel/LiquidCrystal_PCF8574
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
// #define FEATURE_LCD_HD44780
|
||||
// #define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
// #define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
// #define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
// #define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
// #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
// #define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
// #define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
// #define FEATURE_PTT_INTERLOCK
|
||||
// #define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
// #define FEATURE_STRAIGHT_KEY
|
||||
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
// #define FEATURE_PADDLE_ECHO
|
||||
// #define FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_SEQUENCER
|
||||
// #define FEATURE_SD_CARD_SUPPORT
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
// #define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
// #define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
#define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // (Required for Win-Test to function)
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
// #define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
// #define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
// #define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
// #define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
// #define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
// #define OPTION_DO_NOT_SAY_HI
|
||||
// #define 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)
|
||||
// #define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
#define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
// #define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
// #define 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)
|
||||
// #define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
// #define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
// #define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
// #define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
Executable
+187
@@ -0,0 +1,187 @@
|
||||
|
||||
// ######## ######## ###### ########
|
||||
// ## ## ## ## ##
|
||||
// ## ## ## ##
|
||||
// ## ###### ###### ##
|
||||
// ## ## ## ##
|
||||
// ## ## ## ## ##
|
||||
// ## ######## ###### ##
|
||||
|
||||
#define TEST_CONFIG_1
|
||||
// #define TEST_CONFIG_2
|
||||
|
||||
#if defined(TEST_CONFIG_1)
|
||||
|
||||
|
||||
#define FEATURE_BUTTONS
|
||||
#define FEATURE_COMMAND_MODE
|
||||
#define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
#define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
#define FEATURE_MEMORY_MACROS
|
||||
// #define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
// #define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
// #define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
// #define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
// #define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
// #define FEATURE_SERIAL_HELP
|
||||
// #define FEATURE_HELL
|
||||
// #define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
// #define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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
|
||||
// #define FEATURE_DEAD_OP_WATCHDOG
|
||||
#define FEATURE_AUTOSPACE
|
||||
// #define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
// #define FEATURE_LCD_4BIT // classic LCD display using 4 I/O lines
|
||||
// #define FEATURE_LCD_8BIT // classic LCD display using 8 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
// #define FEATURE_LCD_FABO_PCF8574 // https://github.com/FaBoPlatform/FaBoLCD-PCF8574-Library
|
||||
// #define FEATURE_LCD_MATHERTEL_PCF8574 // https://github.com/mathertel/LiquidCrystal_PCF8574
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
// #define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
// #define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
// #define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
// #define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
// #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
// #define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
// #define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
// #define FEATURE_PTT_INTERLOCK
|
||||
// #define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
// #define FEATURE_STRAIGHT_KEY
|
||||
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define FEATURE_PADDLE_ECHO
|
||||
// #define FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_EXPERIMENTAL_DDS_SINEWAVE_SIDETONE_MEGA // DDS output Mega Digital Pin 46
|
||||
// #define FEATURE_CLOCK // NOT FINISHED YET
|
||||
// #define FEATURE_SEQUENCER
|
||||
// #define FEATURE_SD_CARD_SUPPORT
|
||||
// #define FEATURE_SO2R_BASE // SO2R Box base protocol extensions
|
||||
// #define FEATURE_SO2R_SWITCHES // SO2R Box TX and RX switches
|
||||
// #define FEATURE_SO2R_ANTENNA // SO2R Box antenna selection (not fully implemented)
|
||||
#define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
// UNDER DEVELOPMENT
|
||||
// #define FEATURE_SINEWAVE_SIDETONE_USING_TIMER_1 // Arduino Uno: sidetone_line = 9 or 10 ; Mega: sidetone_line = 11, 12, or 13 (Further info: https://www.pjrc.com/teensy/td_libs_TimerOne.html )
|
||||
// #define FEATURE_SINEWAVE_SIDETONE_USING_TIMER_3 // Arduino Mega: sidetone_line = 2, 3, or 5 (Further info: https://www.pjrc.com/teensy/td_libs_TimerOne.html)
|
||||
|
||||
|
||||
#define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
// #define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
// #define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
#define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
//this is removed from other features files - may depricate totally - 2016-09-28 - #define OPTION_WINKEY_SEND_BREAKIN_STATUS_BYTE // additional code to check_dit_paddle() and check_dah_paddle() to send 0xC2 status byte when paddles are hit
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
// #define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
// #define OPTION_WINKEY_UCXLOG_SUPRESS_C4_STATUS_BYTE // use this only with UCXlog if having issues with function key macros
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // activate this when using Winkey 2 emulation and Win-Test
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
// #define OPTION_WINKEY_EXTENDED_COMMANDS_WITH_DOLLAR_SIGNS // experimental
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
// #define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_ECHO_7C_BYTE // For debugging purposes only (only in this test feature and options file) (7C = half space character)
|
||||
// #define OPTION_WINKEY_DO_NOT_SEND_7C_BYTE_HALF_SPACE // For debugging purposes only (only in this test feature and options file)
|
||||
// #define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
// #define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
// #define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
// #define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
// #define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
// #define OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_BLINK_HI_ON_PTT
|
||||
// #define 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)
|
||||
// #define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
#define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
#define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
#define 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)
|
||||
// #define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
// #define OPTION_INTERNET_LINK_NO_UDP_SVC_DURING_KEY_DOWN
|
||||
// #define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
// #define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
// #define FEATURE_COMPETITION_COMPRESSION_DETECTION //(Experimental)
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
#define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
//*********************************************************************************************************************
|
||||
//*********************************************************************************************************************
|
||||
//*********************************************************************************************************************
|
||||
//*********************************************************************************************************************
|
||||
//*********************************************************************************************************************
|
||||
|
||||
#if defined(TEST_CONFIG_2)
|
||||
|
||||
|
||||
|
||||
#endif //TEST_CONFIG_2
|
||||
|
||||
// ######## ######## ###### ########
|
||||
// ## ## ## ## ##
|
||||
// ## ## ## ##
|
||||
// ## ###### ###### ##
|
||||
// ## ## ## ##
|
||||
// ## ## ## ## ##
|
||||
// ## ######## ###### ##
|
||||
+145
@@ -0,0 +1,145 @@
|
||||
|
||||
|
||||
|
||||
#define FEATURE_BUTTONS
|
||||
#define FEATURE_COMMAND_MODE
|
||||
#define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
#define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
#define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
#define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
#define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
#define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
#define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
#define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
#define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
#define FEATURE_SERIAL_HELP
|
||||
#define FEATURE_HELL
|
||||
#define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
// #define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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
|
||||
#define FEATURE_DEAD_OP_WATCHDOG
|
||||
#define FEATURE_AUTOSPACE
|
||||
#define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
#define FEATURE_LCD_4BIT // classic LCD display using 4 I/O lines
|
||||
// #define FEATURE_LCD_8BIT // classic LCD display using 8 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
#define FEATURE_CW_DECODER // https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder
|
||||
#define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
#define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
#define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
// #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
#define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
#define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
#define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
#define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
#define FEATURE_PTT_INTERLOCK
|
||||
#define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
#define FEATURE_STRAIGHT_KEY
|
||||
#define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define FEATURE_PADDLE_ECHO
|
||||
#define FEATURE_STRAIGHT_KEY_ECHO
|
||||
#define FEATURE_WEB_SERVER
|
||||
#define FEATURE_INTERNET_LINK
|
||||
#define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_EXPERIMENTAL_DDS_SINEWAVE_SIDETONE_MEGA // DDS output Mega Digital Pin 46
|
||||
// #define FEATURE_CLOCK // NOT FINISHED YET
|
||||
#define FEATURE_SD_CARD_SUPPORT
|
||||
#define FEATURE_SEQUENCER
|
||||
#define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
#define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
// #define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
// #define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
#define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
//this is removed from other features files - may depricate totally - 2016-09-28 - #define OPTION_WINKEY_SEND_BREAKIN_STATUS_BYTE // additional code to check_dit_paddle() and check_dah_paddle() to send 0xC2 status byte when paddles are hit
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_UCXLOG_SUPRESS_C4_STATUS_BYTE // use this only with UCXlog if having issues with function key macros
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // activate this when using Winkey 2 emulation and Win-Test
|
||||
#define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
// #define OPTION_WINKEY_EXTENDED_COMMANDS_WITH_DOLLAR_SIGNS // experimental
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
#define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
#define OPTION_WINKEY_ECHO_7C_BYTE // For debugging purposes only (only in this test feature and options file) (7C = half space character)
|
||||
// #define OPTION_WINKEY_DO_NOT_SEND_7C_BYTE_HALF_SPACE // For debugging purposes only (only in this test feature and options file)
|
||||
#define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
#define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
#define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
// #define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
#define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
#define 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
|
||||
#define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
#define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
// #define OPTION_DO_NOT_SAY_HI
|
||||
#define 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)
|
||||
#define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
#define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
#define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
#define 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)
|
||||
#define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
// #define OPTION_INTERNET_LINK_NO_UDP_SVC_DURING_KEY_DOWN
|
||||
// #define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
// #define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
#define FEATURE_SD_CARD_SUPPORT
|
||||
#define FEATURE_SO2R_BASE // SO2R Box base protocol extensions
|
||||
#define FEATURE_SO2R_SWITCHES // SO2R Box TX and RX switches
|
||||
#define FEATURE_SO2R_ANTENNA // SO2R Box antenna selection (not fully implemented)
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
// #define FEATURE_COMPETITION_COMPRESSION_DETECTION //(Experimental)
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase... maybe?
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
// #define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
#define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
#define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
#define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
#define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
+95
@@ -0,0 +1,95 @@
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
// features & options for TinyKeyer by OK1RR
|
||||
|
||||
#define FEATURE_BUTTONS
|
||||
#define FEATURE_COMMAND_MODE
|
||||
//#define FEATURE_COMMAND_LINE_INTERFACE // (this no longer requires FEATURE_SERIAL)
|
||||
#define FEATURE_MEMORIES
|
||||
//#define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation) (this no longer requires FEATURE_SERIAL)
|
||||
//#define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
//#define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
//#define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
//#define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
//#define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
//#define FEATURE_DEAD_OP_WATCHDOG
|
||||
#define FEATURE_AUTOSPACE
|
||||
//#define FEATURE_FARNSWORTH
|
||||
//#define 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
|
||||
//#define FEATURE_SLEEP // go to sleep after x minutes to conserve battery power
|
||||
//#define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
#define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
//#define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
//#define FEATURE_DIT_DAH_BUFFER_CONTROL
|
||||
//#define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
//#define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
//#define FEATURE_PTT_INTERLOCK
|
||||
//#define FEATURE_QLF
|
||||
//#define FEATURE_EEPROM_E24C1024
|
||||
//#define FEATURE_STRAIGHT_KEY
|
||||
//#define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
//#define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_SEQUENCER
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
#define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
//#define OPTION_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE simultaneously. This will make Winkey emulation be the default at boot up; hold command button down at boot up to activate CLI mode
|
||||
//#define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
//#define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
#define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
#define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // (Required for Win-Test to function)
|
||||
//#define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
//#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround bug)
|
||||
// #define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
//#define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
//#define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
//#define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
//#define OPTION_DO_NOT_SAY_HI
|
||||
#define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
//#define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
//#define OPTION_DIT_DAH_BUFFERS_OFF_BY_DEFAULT_FOR_FEATURE_DIT_DAH_BUFFER_CONTROL
|
||||
//#define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
//#define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
//#define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
//#define FEATURE_SD_CARD_SUPPORT
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
#define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
#define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
+126
@@ -0,0 +1,126 @@
|
||||
// This file is for the Yaacwk interface http://i1cra.briata.org/yaacwk/
|
||||
// YAACWK stands for Yet Another Arduino CW Keyer, it's based on AtMega 644p
|
||||
// see http://i1cra.briata.org/yaacwk/ for more info
|
||||
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
#define FEATURE_BUTTONS
|
||||
#define FEATURE_COMMAND_MODE
|
||||
#define FEATURE_COMMAND_LINE_INTERFACE // (this no longer requires FEATURE_SERIAL)
|
||||
#define FEATURE_MEMORIES
|
||||
//#define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation) (this no longer requires FEATURE_SERIAL)
|
||||
//#define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
//#define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
//#define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
#define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
//#define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
//#define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
//#define FEATURE_SERIAL_HELP
|
||||
//#define FEATURE_HELL
|
||||
#define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
//#define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
//#define FEATURE_DEAD_OP_WATCHDOG
|
||||
//#define FEATURE_AUTOSPACE
|
||||
//#define FEATURE_FARNSWORTH
|
||||
//#define 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
|
||||
#define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
//#define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
//#define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
//#define FEATURE_LCD_FABO_PCF8574 // https://github.com/FaBoPlatform/FaBoLCD-PCF8574-Library
|
||||
#define FEATURE_CW_DECODER
|
||||
//#define FEATURE_SLEEP // go to sleep after x minutes to conserve battery power
|
||||
//#define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
//#define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
//#define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
//#define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
//#define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
//#define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
#define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
//#define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
//#define FEATURE_PTT_INTERLOCK
|
||||
//#define FEATURE_QLF
|
||||
//#define FEATURE_EEPROM_E24C1024
|
||||
//#define FEATURE_STRAIGHT_KEY
|
||||
//#define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
//#define FEATURE_PADDLE_ECHO
|
||||
//#define FEATURE_STRAIGHT_KEY_ECHO
|
||||
//#define FEATURE_AMERICAN_MORSE
|
||||
//#define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
//#define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
//#define FEATURE_SEQUENCER
|
||||
//#define FEATURE_SD_CARD_SUPPORT
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
|
||||
|
||||
//#define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
//#define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
#define OPTION_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE simultaneously. This will make Winkey emulation be the default at boot up; hold command button down at boot up to activate CLI mode
|
||||
//#define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
//#define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
//#define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
#define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // activate this when using Winkey 2 emulation and Win-Test
|
||||
#define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround bug)
|
||||
//#define OPTION_WINKEY_SEND_VERSION_ON_HOST_CLOSE
|
||||
//#define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
//#define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
//#define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
//#define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
//#define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
//#define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
//#define 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
|
||||
//#define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
//#define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
//#define OPTION_DO_NOT_SAY_HI
|
||||
//#define 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)
|
||||
//#define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
//#define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
//#define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
#define OPTION_CW_KEYBOARD_ITALIAN
|
||||
//#define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
#define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
//#define 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)
|
||||
//#define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
//#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
//#define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
//#define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
#define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
+140
@@ -0,0 +1,140 @@
|
||||
// Y Y CCCCC CCCCC CCCCC SSSS OOOOO 222 RRRR M M IIIII N N IIIII
|
||||
// Y Y C C C S O O 2 R R M M M I NN N I
|
||||
// Y C C C SSSSS O O 2 RRRR M M I N N N I
|
||||
// Y C C C S O O 2 R R M M I N NN I
|
||||
// Y CCCCC CCCCC CCCCC SSSS OOOOO 22222 R R M M IIIII N N IIIII
|
||||
|
||||
// compile time features and options - comment or uncomment to add or delete features
|
||||
// FEATURES add more bytes to the compiled binary, OPTIONS change code behavior
|
||||
|
||||
|
||||
// #define FEATURE_BUTTONS
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE // Command Line Interface functionality
|
||||
// #define FEATURE_MEMORIES // on the Arduino Due, you must have FEATURE_EEPROM_E24C1024 and E24C1024 EEPROM hardware in order to compile this
|
||||
// #define FEATURE_MEMORY_MACROS
|
||||
#define FEATURE_WINKEY_EMULATION // disabling Automatic Software Reset is highly recommended (see documentation)
|
||||
// #define FEATURE_BEACON // Go into beacon mode if paddle_left pin is LOW at boot up
|
||||
// #define FEATURE_BEACON_SETTING // Go into beacon mode at boot up if EEPROM setting is enabled (\_ CLI Command)
|
||||
// #define FEATURE_TRAINING_COMMAND_LINE_INTERFACE
|
||||
// #define FEATURE_POTENTIOMETER // do not enable unless you have a potentiometer connected, otherwise noise will falsely trigger wpm changes
|
||||
// #define FEATURE_SIDETONE_SWITCH // adds switch control for the sidetone output. requires an external toggle switch (assigned to an arduino pin - see keyer_pin_settings.h).
|
||||
// #define FEATURE_SIDETONE_NEWTONE // Use the NewTone library, ~1k smaller code size than the standard tone library. Uses timer1 (pins 9 or 10) https://bitbucket.org/teckel12/arduino-new-tone/wiki/Home
|
||||
// #define FEATURE_SERIAL_HELP
|
||||
// #define FEATURE_HELL
|
||||
// #define FEATURE_PS2_KEYBOARD // Use a PS2 keyboard to send code - Change keyboard layout (non-US) in K3NG_PS2Keyboard.h. Additional options below.
|
||||
// #define FEATURE_USB_KEYBOARD // Use a USB keyboard to send code - Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define 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 -- uncomment this line in ino file: #include <Keyboard.h>
|
||||
// #define FEATURE_DEAD_OP_WATCHDOG
|
||||
// #define FEATURE_AUTOSPACE
|
||||
// #define FEATURE_FARNSWORTH
|
||||
// #define 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
|
||||
// #define FEATURE_LCD_4BIT // classic LCD disidefplay using 4 I/O lines
|
||||
// #define FEATURE_LCD_8BIT // classic LCD display using 8 I/O lines
|
||||
// #define FEATURE_LCD_ADAFRUIT_I2C // Adafruit I2C LCD display using MCP23017 at addr 0x20
|
||||
// #define FEATURE_LCD_ADAFRUIT_BACKPACK // Adafruit I2C LCD Backup using MCP23008 (courtesy Josiah Ritchie, KE0BLL)
|
||||
// #define FEATURE_LCD_YDv1 // YourDuino I2C LCD display with old LCM 1602 V1 ic
|
||||
// #define FEATURE_LCD1602_N07DH // http://linksprite.com/wiki/index.php5?title=16_X_2_LCD_Keypad_Shield_for_Arduino
|
||||
// #define FEATURE_LCD_SAINSMART_I2C
|
||||
// #define FEATURE_LCD_FABO_PCF8574 // https://github.com/FaBoPlatform/FaBoLCD-PCF8574-Library
|
||||
// #define FEATURE_LCD_MATHERTEL_PCF8574 // https://github.com/mathertel/LiquidCrystal_PCF8574
|
||||
// #define FEATURE_LCD_I2C_FDEBRABANDER //https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
|
||||
|
||||
// #define FEATURE_LCD_HD44780
|
||||
// #define FEATURE_CW_DECODER
|
||||
// #define 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)
|
||||
// #define FEATURE_LCD_BACKLIGHT_AUTO_DIM // turn off LCD backlight and/or dim Power Indicator LED after x minutes (LED requires a PWM pin)
|
||||
// #define FEATURE_ROTARY_ENCODER // rotary encoder speed control
|
||||
// #define FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING
|
||||
// #define FEATURE_USB_MOUSE // Uncomment three lines in k3ng_keyer.ino (search for note_usb_uncomment_lines)
|
||||
// #define FEATURE_CAPACITIVE_PADDLE_PINS // remove the bypass capacitors on the paddle_left and paddle_right lines when using capactive paddles
|
||||
// #define FEATURE_LED_RING // Mayhew Labs Led Ring support
|
||||
// #define FEATURE_ALPHABET_SEND_PRACTICE // enables command mode S command - created by Ryan, KC2ZWM
|
||||
// #define FEATURE_COMMAND_MODE_PROGRESSIVE_5_CHAR_ECHO_PRACTICE // enables command mode U
|
||||
// #define FEATURE_PTT_INTERLOCK
|
||||
// #define FEATURE_QLF
|
||||
// #define FEATURE_EEPROM_E24C1024
|
||||
// #define FEATURE_STRAIGHT_KEY
|
||||
// #define FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
// #define FEATURE_PADDLE_ECHO
|
||||
// #define FEATURE_STRAIGHT_KEY_ECHO
|
||||
// #define FEATURE_AMERICAN_MORSE
|
||||
// #define FEATURE_4x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_3x4_KEYPAD // code contributed by Jack, W0XR - documentation: https://github.com/k3ng/k3ng_cw_keyer/wiki/380-Feature:-Keypad
|
||||
// #define FEATURE_SEQUENCER
|
||||
#define FEATURE_SO2R_BASE // SO2R Box base protocol extensions
|
||||
//#define FEATURE_SO2R_SWITCHES // SO2R Box TX and RX switches
|
||||
// #define FEATURE_SO2R_ANTENNA // SO2R Box antenna selection (not fully implemented)
|
||||
// #define FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
// #define FEATURE_WEB_SERVER // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
// #define FEATURE_INTERNET_LINK // Details: https://github.com/k3ng/k3ng_cw_keyer/wiki/390-Feature:-Ethernet,-Web-Server,-and-Internet-Linking
|
||||
|
||||
// #define FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT // Activate the Command Line interface on the secondary serial port
|
||||
#define OPTION_PRIMARY_SERIAL_PORT_DEFAULT_WINKEY_EMULATION // Use when activating both FEATURE_WINKEY_EMULATION and FEATURE_COMMAND_LINE_INTERFACE
|
||||
// simultaneously. This will make Winkey emulation be the default at boot up;
|
||||
// hold command button down at boot up to activate CLI mode
|
||||
|
||||
// #define OPTION_SUPPRESS_SERIAL_BOOT_MSG
|
||||
#define OPTION_INCLUDE_PTT_TAIL_FOR_MANUAL_SENDING
|
||||
#define OPTION_EXCLUDE_PTT_HANG_TIME_FOR_MANUAL_SENDING
|
||||
// #define OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP // if ASR is not disabled, you may need this to discard errant serial port bytes at startup
|
||||
// #define OPTION_WINKEY_STRICT_EEPROM_WRITES_MAY_WEAR_OUT_EEPROM // with this activated the unit will write non-volatile settings to EEPROM when set by Winkey commands
|
||||
// #define OPTION_WINKEY_SEND_WORDSPACE_AT_END_OF_BUFFER
|
||||
// #define OPTION_WINKEY_STRICT_HOST_OPEN // require an admin host open Winkey command before doing any other commands
|
||||
#define OPTION_WINKEY_2_SUPPORT // comment out to revert to Winkey version 1 emulation
|
||||
#define OPTION_WINKEY_INTERRUPTS_MEMORY_REPEAT
|
||||
//#define OPTION_WINKEY_UCXLOG_9600_BAUD // use this only with UCXLog configured for Winkey 9600 baud mode
|
||||
#define OPTION_WINKEY_2_HOST_CLOSE_NO_SERIAL_PORT_RESET // (Required for Win-Test to function)
|
||||
// #define OPTION_WINKEY_FREQUENT_STATUS_REPORT // activate this to make Winkey emulation play better with RUMlog and RUMped
|
||||
#define OPTION_WINKEY_IGNORE_LOWERCASE // Enable for typical K1EL Winkeyer behavior (use for SkookumLogger version 1.10.14 and prior to workaround "r" bug)
|
||||
// #define OPTION_WINKEY_BLINK_PTT_ON_HOST_OPEN
|
||||
// #define OPTION_WINKEY_PINCONFIG_PTT_CONTROLS_PTT_LINE // Have Winkeyer PTT setting activate/deactivate PTT line rather than control buffered character PTT hold
|
||||
// #define OPTION_REVERSE_BUTTON_ORDER // This is mainly for the DJ0MY NanoKeyer http://nanokeyer.wordpress.com/
|
||||
#define OPTION_PROG_MEM_TRIM_TRAILING_SPACES // trim trailing spaces from memory when programming in command mode
|
||||
#define OPTION_DIT_PADDLE_NO_SEND_ON_MEM_RPT // this makes dit paddle memory interruption a little smoother
|
||||
// #define OPTION_MORE_DISPLAY_MSGS // additional optional display messages - comment out to save memory
|
||||
// #define OPTION_WATCHDOG_TIMER // this enables a four second ATmega48/88/168/328 watchdog timer; use for unattended/remote operation only
|
||||
// #define OPTION_MOUSE_MOVEMENT_PADDLE // experimental (just fooling around) - mouse movement will act like a paddle
|
||||
// #define OPTION_NON_ENGLISH_EXTENSIONS // add support for additional CW characters (i.e. À, Å, Þ, etc.)
|
||||
// #define OPTION_DISPLAY_NON_ENGLISH_EXTENSIONS // LCD display suport for non-English (NO/DK/DE) characters - Courtesy of OZ1JHM
|
||||
// #define OPTION_UNKNOWN_CHARACTER_ERROR_TONE
|
||||
#define OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_BLINK_HI_ON_PTT
|
||||
// #define 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)
|
||||
// #define OPTION_PS2_KEYBOARD_RESET // reset the PS2 keyboard upon startup with 0xFF (contributed by Bill, W9BEL)
|
||||
// #define OPTION_SAVE_MEMORY_NANOKEYER
|
||||
// #define OPTION_CW_KEYBOARD_CAPSLOCK_BEEP
|
||||
// #define OPTION_CW_KEYBOARD_ITALIAN
|
||||
// #define OPTION_CW_KEYBOARD_GERMAN
|
||||
// #define OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// #define OPTION_INVERT_PADDLE_PIN_LOGIC
|
||||
// #define 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)
|
||||
// #define OPTION_PROSIGN_SUPPORT // additional prosign support for paddle and straight key echo on display, CLI, and in memory storage
|
||||
// #define OPTION_RUSSIAN_LANGUAGE_SEND_CLI // Russian language CLI sending support (contributed by Павел Бирюков, UA1AQC)
|
||||
#define OPTION_DO_NOT_SEND_UNKNOWN_CHAR_QUESTION
|
||||
// #define OPTION_CMOS_SUPER_KEYER_IAMBIC_B_TIMING_ON_BY_DEFAULT
|
||||
#define OPTION_SIDETONE_DIGITAL_OUTPUT_NO_SQUARE_WAVE
|
||||
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_MEGA // only works with Mega and pins 2 and 5 - minor performance increase
|
||||
// #define OPTION_DIRECT_PADDLE_PIN_READS_UNO // Unos or Nanos pins 2 and 5 - do not enable on a nanoKeyer, it uses different pins
|
||||
|
||||
// #define OPTION_WORDSWORTH_CZECH
|
||||
// #define OPTION_WORDSWORTH_DEUTSCH
|
||||
// #define OPTION_WORDSWORTH_NORSK
|
||||
|
||||
#define OPTION_EXCLUDE_EXTENDED_CLI_COMMANDS
|
||||
|
||||
// #define OPTION_DFROBOT_LCD_COMMAND_BUTTONS
|
||||
|
||||
// #define OPTION_EXCLUDE_MILL_MODE
|
||||
// #define OPTION_NO_ULTIMATIC // reduce memory usage by removing ultimatic code.
|
||||
|
||||
|
||||
// #define OPTION_DISABLE_SERIAL_PORT_CHECKING_WHILE_SENDING_CW
|
||||
// #define OPTION_PERSONALIZED_STARTUP_SCREEN // displays a user defined string of characters on the second or fourth row of the screen during startup. 1602 display requires OPTION_DO_NOT_SAY_HI
|
||||
// #define OPTION_SWAP_PADDLE_PARAMETER_CHANGE_DIRECTION // reverses the up/down direction when using the paddles to change the wpm or sidetone frequency
|
||||
// #define OPTION_DISPLAY_MEMORY_CONTENTS_COMMAND_MODE
|
||||
|
||||
// #define OPTION_BEACON_MODE_MEMORY_REPEAT_TIME // to space out the repeated playing of memory 1 when in beacon mode
|
||||
// #define OPTION_BEACON_MODE_PTT_TAIL_TIME // adds the ptt tail time to each playing of memory 1 in beacon mode
|
||||
|
||||
// #define OPTION_WINKEY_PROSIGN_COMPATIBILITY // Additional character mappings to support K1EL Winkey emulation prosigns
|
||||
Executable
+97
@@ -0,0 +1,97 @@
|
||||
/* keyer_hardware.h
|
||||
|
||||
|
||||
Edit this file to enable specific hardware profiles.
|
||||
|
||||
When enabling a hardware option below, the default keyer_pin_settings.h, keyer_features_and_options.h, and keyer_settings.h files are not compiled.
|
||||
|
||||
See the comments on each line to determine what files are compiled and should be customized.
|
||||
|
||||
*/
|
||||
|
||||
// #define HARDWARE_NANOKEYER_REV_B // https://nanokeyer.wordpress.com/nanokeyer-info/ edit these files: keyer_pin_settings_nanokeyer_rev_b.h, keyer_features_and_options_nanokeyer_rev_b.h, keyer_settings_nanokeyer_rev_b.h
|
||||
// #define HARDWARE_NANOKEYER_REV_D // https://nanokeyer.wordpress.com/nanokeyer-info/ edit these files: keyer_pin_settings_nanokeyer_rev_d.h, keyer_features_and_options_nanokeyer_rev_d.h, keyer_settings_nanokeyer_rev_d.h
|
||||
// #define HARDWARE_OPEN_INTERFACE // http://remoteqth.com/open-interface.php edit these files: keyer_pin_settings_open_interface.h, keyer_features_and_options_open_interface.h, keyer_settings_open_interface.h
|
||||
// #define HARDWARE_TINYKEYER // http://www.ok1rr.com/index.php/technical-topics/122-the-tinykeyer edit these files: keyer_pin_settings_tinykeyer.h, keyer_features_and_options_tinykeyer.h, keyer_settings_tinykeyer.h
|
||||
// #define HARDWARE_FK_10 // Funtronics K3NG Keyer FK-10 - See notes below!!! http://www.elekitsorparts.com/product/funtronics-k3ng-keyer-fk-10-99-winkey-emulation/ files: keyer_pin_settings_fk_10.h, keyer_features_and_options_fk_10.h, keyer_settings_fk_10.h
|
||||
// #define HARDWARE_FK_11 // Funtronics K3NG Keyer FK-11 - See notes below! https://www.elekitsorparts.com/?product=funtronics-k3ng-keyer-with-99-winkey-emulation files: keyer_pin_settings_fk_11.h, keyer_features_and_options_fk_11.h, keyer_settings_fk_11.h
|
||||
// #define HARDWARE_MAPLE_MINI // edit these files: keyer_pin_settings_maple_mini.h, keyer_settings_maple_mini.h, keyer_features_and_options_maple_mini.h
|
||||
// #define HARDWARE_GENERIC_STM32F103C // edit these files: keyer_pin_settings_generic_STM32F103C.h, keyer_settings_generic_STM32F103C.h, keyer_features_and_options_generic_STM32F103C.h //sp5iou 20180329
|
||||
// #define HARDWARE_MORTTY // edit these files: keyer_pin_settings_mortty.h, keyer_settings_mortty.h, keyer_features_and_options_mortty.h
|
||||
// #define HARDWARE_MORTTY_REGULAR // edit these files: keyer_pin_settings_mortty_regular.h, keyer_settings_mortty_regular.h, keyer_features_and_options_mortty_regular.h
|
||||
// #define HARDWARE_MORTTY_REGULAR_WITH_POTENTIOMETER // edit these files: keyer_pin_settings_mortty_regular_with_potentiometer.h, keyer_settings_mortty_regular_with_potentiometer.h, keyer_features_and_options_mortty_regular_with_potentiometer.h
|
||||
// #define HARDWARE_MORTTY_SO2R // edit these files: keyer_pin_settings_mortty_so2r.h, keyer_settings_mortty_so2r.h, keyer_features_and_options_mortty_so2r.h
|
||||
// #define HARDWARE_MORTTY_SO2R_WITH_POTENTIOMETER // edit these files: keyer_pin_settings_mortty_so2r_with_potentiometer.h, keyer_settings_mortty_so2r_with_potentiometer.h, keyer_features_and_options_mortty_so2r_with_potentiometer.h
|
||||
// #define HARDWARE_YAACWK // http://i1cra.briata.org/yaacwk/ files: keyer_pin_settings_yaacwk.h, keyer_features_and_options_yaacwk.h, keyer_settings_yaacwk.h
|
||||
// #define HARDWARE_K5BCQ // edit these files: keyer_pin_settings_k5bcq.h, keyer_features_and_options_k5bcq.h, keyer_settings_k5bcq.h
|
||||
// #define HARDWARE_MEGAKEYER // https://github.com/w6ipa/megakeyer
|
||||
// #define HARDWARE_OPENCWKEYER_MK2 // https://github.com/ok1cdj/OpenCWKeyerMK2 edit these files: keyer_features_and_options_opencwkeyer_mk2.h keyer_pin_settings_opencwkeyer_mk2.h keyer_settings_opencwkeyer_mk2.h
|
||||
// #define HARDWARE_IZ3GME // https://github.com/iz3gme/k3ng_cw_keyer edit these files: keyer_features_and_options_iz3gme.h keyer_pin_settings_iz3gme.h keyer_settings.h
|
||||
// #define HARDWARE_YCCC_SO2R_MINI // edit these files: keyer_pin_settings_yccc_so2r_mini.h, keyer_settings_yccc_so2r_mini.h, keyer_features_and_options_yccc_so2r_mini.h
|
||||
// #define HARDWARE_TEST_EVERYTHING
|
||||
// #define HARDWARE_TEST
|
||||
|
||||
|
||||
/*
|
||||
|
||||
|
||||
HARDWARE_GENERIC_STM32F103C (Contributed by sp5iou)
|
||||
|
||||
How to deal with those boards with Arduino: https://www.techshopbd.com/uploads/product_document/STM32bluepillarduinoguide(1).pdf
|
||||
|
||||
|
||||
Funtronics FK-10 Programming Notes (Contributed by Disneysw 2016-12-10)
|
||||
|
||||
Programming the unit is accomplished by selecting "Mega2560" as the target processor and uploading to the rear USB port with the front
|
||||
switch set to the Arduino position
|
||||
|
||||
Note: in order to get the FK-10 USB Host port working correctly you will need to patch the file "UsbCore.h" in the USB_Host_Shield library.
|
||||
At the time of writing it is line 41 that needs modified to change "P10" to "P53" i.e. from
|
||||
|
||||
#else
|
||||
typedef MAX3421e<P10, P9> MAX3421E; // Official Arduinos (UNO, Duemilanove, Mega, 2560, Leonardo, Due etc.) or Teensy 2.0 and 3.0
|
||||
#endif
|
||||
|
||||
to:
|
||||
|
||||
#else
|
||||
typedef MAX3421e<P53, P9> MAX3421E; // Official Arduinos (UNO, Duemilanove, Mega, 2560, Leonardo, Due etc.) or Teensy 2.0 and 3.0
|
||||
#endif
|
||||
|
||||
Funtronics FK-11 Programming Notes
|
||||
|
||||
Programming the unit is accomplished by selecting "Arduino Mega 2560" as the target processor and uploading to the rear USB port with the
|
||||
front switch set to the Arduino position.
|
||||
|
||||
Note: in order to get the FK-11 display working correctly you will need to:
|
||||
- Install FaBo_212_LCD_PCF8574 library
|
||||
- Set the slave address to 0x27 in FaBo_212_LCD_PCF8574/src/FaBoLCD_PCF8574.h
|
||||
#define PCF8574_SLAVE_ADDRESS 0x27
|
||||
|
||||
Note: in order to get the FK-11 USB Host port working correctly you will need to:
|
||||
- Uncomment three lines in in file: k3ng_keyer.ino below 'note_usb_uncomment_lines'.
|
||||
- Add line to file k3ng_cw_keyer/libraries/USB_Host_Shield/settings.h, below 'Manual board activation':
|
||||
#define BOARD_MEGA_ADK
|
||||
*/
|
||||
|
||||
|
||||
|
||||
// Serial port class definitions for various devices
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)||defined(ARDUINO_GENERIC_STM32F103C) //sp5iou 20180329
|
||||
#define PRIMARY_SERIAL_CLS USBSerial
|
||||
#define SECONDARY_SERIAL_CLS USBSerial
|
||||
#elif defined(ARDUINO_AVR_PROMICRO) || defined(ARDUINO_AVR_LEONARDO) || defined(ARDUINO_AVR_MICRO) || defined(ARDUINO_AVR_YUN) || defined(ARDUINO_AVR_ESPLORA) || defined(ARDUINO_AVR_LILYPAD_USB) || defined(ARDUINO_AVR_ROBOT_CONTROL) || defined(ARDUINO_AVR_ROBOT_MOTOR) || defined(ARDUINO_AVR_LEONARDO_ETH) || defined(ARDUINO_SAMD_VARIANT_COMPLIANCE)
|
||||
#define PRIMARY_SERIAL_CLS Serial_
|
||||
#define SECONDARY_SERIAL_CLS Serial_
|
||||
#elif defined(TEENSYDUINO)
|
||||
#define PRIMARY_SERIAL_CLS usb_serial_class
|
||||
#define SECONDARY_SERIAL_CLS usb_serial_class
|
||||
#elif defined(_BOARD_PIC32_PINGUINO_) // || defined(_BOARD_PIC32_PINGUINO_OTG_)
|
||||
#define PRIMARY_SERIAL_CLS USBSerial
|
||||
#define SECONDARY_SERIAL_CLS HardwareSerial
|
||||
#else
|
||||
#define PRIMARY_SERIAL_CLS HardwareSerial
|
||||
#define SECONDARY_SERIAL_CLS HardwareSerial
|
||||
#endif
|
||||
|
||||
Executable
+161
@@ -0,0 +1,161 @@
|
||||
/* Pins - you must review these and configure ! */
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 6
|
||||
#define paddle_right 5
|
||||
#define tx_key_line_1 12 // (high = key down/tx on)
|
||||
#define tx_key_line_2 0
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 4 // connect a speaker for sidetone
|
||||
#define potentiometer A0 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 11 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A1
|
||||
#define command_mode_active_led 7
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
|
||||
//lcd pins
|
||||
#if defined(FEATURE_LCD_4BIT) || defined(FEATURE_LCD_8BIT)
|
||||
#define lcd_rs A2
|
||||
#define lcd_enable 10 // pin 10 is used by Ethernet shield and will conflict with that
|
||||
#define lcd_d4 6
|
||||
#define lcd_d5 7
|
||||
#define lcd_d6 8
|
||||
#define lcd_d7 9
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#if defined(FEATURE_LCD_8BIT) // addition four data lines for 8 bit LCD control
|
||||
#define lcd_d0 20
|
||||
#define lcd_d1 21
|
||||
#define lcd_d2 22
|
||||
#define lcd_d3 23
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#ifdef FEATURE_LCD1602_N07DH
|
||||
#define lcd_rs 8
|
||||
#define lcd_enable 9
|
||||
#define lcd_d4 4
|
||||
#define lcd_d5 5
|
||||
#define lcd_d6 6
|
||||
#define lcd_d7 7
|
||||
#endif //FEATURE_LCD1602_N07DH
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data 2
|
||||
#define ps2_keyboard_clock 3 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 0 // CW Encoder Pin
|
||||
#define rotary_pin2 0 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key 52
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin 0 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin 0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 0 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 13
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 0
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 0
|
||||
#define sequencer_2_pin 0
|
||||
#define sequencer_3_pin 0
|
||||
#define sequencer_4_pin 0
|
||||
#define sequencer_5_pin 0
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
|
||||
Executable
+142
@@ -0,0 +1,142 @@
|
||||
/* Pins - you must review these and configure ! */
|
||||
|
||||
// ######## ## ## ## ## ## ## ######## ## ## ######## ########
|
||||
// ## ## ## ### ## ## ## ## ## ## ## ## ##
|
||||
// ## ## ## #### ## ## ## ## #### ## ## ##
|
||||
// ###### ## ## ## ## ## ##### ###### ## ###### ########
|
||||
// ## ## ## ## #### ## ## ## ## ## ## ##
|
||||
// ## ## ## ## ### ## ## ## ## ## ## ##
|
||||
// ## ####### ## ## ## ## ######## ## ######## ## ##
|
||||
|
||||
|
||||
// ######## ## ## ## #####
|
||||
// ## ## ## #### ## ##
|
||||
// ## ## ## ## ## ##
|
||||
// ###### ##### ## ## ##
|
||||
// ## ## ## ## ## ##
|
||||
// ## ## ## ## ## ##
|
||||
// ## ## ## ###### #####
|
||||
|
||||
// Contributed by Disneysw
|
||||
|
||||
|
||||
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 2
|
||||
#define paddle_right 5
|
||||
#define tx_key_line_1 39 // (high = key down/tx on)
|
||||
#define tx_key_line_2 0
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 3 // connect a speaker for sidetone
|
||||
#define potentiometer A0 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 40 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A2
|
||||
#define command_mode_active_led 0
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
|
||||
//lcd pins
|
||||
#ifdef FEATURE_LCD_4BIT
|
||||
#define lcd_rs 49
|
||||
#define lcd_enable 48
|
||||
#define lcd_d4 47
|
||||
#define lcd_d5 46
|
||||
#define lcd_d6 45
|
||||
#define lcd_d7 44
|
||||
#endif //FEATURE_LCD_4BIT
|
||||
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data A3
|
||||
#define ps2_keyboard_clock 3 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 42 // CW Encoder Pin
|
||||
#define rotary_pin2 43 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key 52
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin A4 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin A4 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 4 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 13
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 0
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 0
|
||||
#define sequencer_2_pin 0
|
||||
#define sequencer_3_pin 0
|
||||
#define sequencer_4_pin 0
|
||||
#define sequencer_5_pin 0
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
|
||||
Executable
+164
@@ -0,0 +1,164 @@
|
||||
// Funtronics FK-11
|
||||
|
||||
/* Pins - you must review these and configure ! */
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 2
|
||||
#define paddle_right 5
|
||||
#define tx_key_line_1 39 // (high = key down/tx on)
|
||||
#define tx_key_line_2 0
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 3 // connect a speaker for sidetone
|
||||
#define potentiometer A0 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 40 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A2
|
||||
#define command_mode_active_led 0
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
|
||||
//lcd pins
|
||||
#if defined(FEATURE_LCD_4BIT) || defined(FEATURE_LCD_8BIT)
|
||||
#define lcd_rs A2
|
||||
#define lcd_enable 10 // pin 10 is used by Ethernet shield and will conflict with that
|
||||
#define lcd_d4 6
|
||||
#define lcd_d5 7
|
||||
#define lcd_d6 8
|
||||
#define lcd_d7 9
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#if defined(FEATURE_LCD_8BIT) // addition four data lines for 8 bit LCD control
|
||||
#define lcd_d0 20
|
||||
#define lcd_d1 21
|
||||
#define lcd_d2 22
|
||||
#define lcd_d3 23
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#ifdef FEATURE_LCD1602_N07DH
|
||||
#define lcd_rs 8
|
||||
#define lcd_enable 9
|
||||
#define lcd_d4 4
|
||||
#define lcd_d5 5
|
||||
#define lcd_d6 6
|
||||
#define lcd_d7 7
|
||||
#endif //FEATURE_LCD1602_N07DH
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data A3
|
||||
#define ps2_keyboard_clock 3 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 43 // CW Encoder Pin
|
||||
#define rotary_pin2 42 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key 52
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin A4 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin A4 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 4 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 13
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 0
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 0
|
||||
#define sequencer_2_pin 0
|
||||
#define sequencer_3_pin 0
|
||||
#define sequencer_4_pin 0
|
||||
#define sequencer_5_pin 0
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
|
||||
+169
@@ -0,0 +1,169 @@
|
||||
/*
|
||||
|
||||
GENERIC STM32F103C Blue Pill board
|
||||
|
||||
*/
|
||||
|
||||
/* Pins - you must review these and configure ! */
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left PA1
|
||||
#define paddle_right PA0
|
||||
#define tx_key_line_1 PC15 // (high = key down/tx on)
|
||||
#define tx_key_line_2 0
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line PB9 // connect a speaker for sidetone
|
||||
#define potentiometer 0 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 PC14 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin PA3
|
||||
#define command_mode_active_led PC13 //for Generic STM32103C On Board LED
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 0 //PA15
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
|
||||
//lcd pins
|
||||
#ifdef FEATURE_LCD_4BIT
|
||||
#define lcd_rs PB12
|
||||
#define lcd_enable PB13
|
||||
#define lcd_d4 PB14
|
||||
#define lcd_d5 PB15
|
||||
#define lcd_d6 PA8
|
||||
#define lcd_d7 PA9
|
||||
#endif //FEATURE_LCD_4BIT
|
||||
|
||||
#if defined(FEATURE_LCD_8BIT) // addition four data lines for 8 bit LCD control
|
||||
#define lcd_d0 20
|
||||
#define lcd_d1 21
|
||||
#define lcd_d2 22
|
||||
#define lcd_d3 23
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
|
||||
#ifdef FEATURE_LCD1602_N07DH
|
||||
#define lcd_rs PB12
|
||||
#define lcd_enable PB13
|
||||
#define lcd_d4 PB14
|
||||
#define lcd_d5 PB15
|
||||
#define lcd_d6 PA8
|
||||
#define lcd_d7 PA9
|
||||
#endif //FEATURE_LCD1602_N07DH
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data 0 // for STM boards it can not be Ax - muste use pin numbers only or PBx, PCx etc... sp5iou
|
||||
#define ps2_keyboard_clock 0 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 PB7 // CW Encoder Pin
|
||||
#define rotary_pin2 PB8 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi 0 //Data
|
||||
#define led_ring_clk 0 //Clock
|
||||
#define led_ring_le 0 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key 0
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin 0 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin 0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 0 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 0
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 PB11
|
||||
#define Row2 PB10
|
||||
#define Row1 PB1
|
||||
#define Row0 PB0
|
||||
#define Col3 PA7
|
||||
#define Col2 PA6
|
||||
#define Col1 PA5
|
||||
#define Col0 PA4
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 PB11
|
||||
#define Row2 PB10
|
||||
#define Row1 PB1
|
||||
#define Row0 PB0
|
||||
#define Col2 PA7
|
||||
#define Col1 PA6
|
||||
#define Col0 PA5
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 0
|
||||
#define sequencer_2_pin 0
|
||||
#define sequencer_3_pin 0
|
||||
#define sequencer_4_pin 0
|
||||
#define sequencer_5_pin 0
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
|
||||
Executable
+161
@@ -0,0 +1,161 @@
|
||||
/* Pins - you must review these and configure ! */
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left A3
|
||||
#define paddle_right A4
|
||||
#define tx_key_line_1 A2 // (high = key down/tx on)
|
||||
#define tx_key_line_2 0
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 0 // connect a speaker for sidetone
|
||||
#define potentiometer A5 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 0 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A6
|
||||
#define command_mode_active_led 13
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
|
||||
//lcd pins
|
||||
#if defined(FEATURE_LCD_4BIT) || defined(FEATURE_LCD_8BIT)
|
||||
#define lcd_rs 7
|
||||
#define lcd_enable 6 // pin 10 is used by Ethernet shield and will conflict with that
|
||||
#define lcd_d4 5
|
||||
#define lcd_d5 4
|
||||
#define lcd_d6 3
|
||||
#define lcd_d7 1
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#if defined(FEATURE_LCD_8BIT) // addition four data lines for 8 bit LCD control
|
||||
#define lcd_d0 20
|
||||
#define lcd_d1 21
|
||||
#define lcd_d2 22
|
||||
#define lcd_d3 23
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#ifdef FEATURE_LCD1602_N07DH
|
||||
#define lcd_rs 8
|
||||
#define lcd_enable 9
|
||||
#define lcd_d4 4
|
||||
#define lcd_d5 5
|
||||
#define lcd_d6 6
|
||||
#define lcd_d7 7
|
||||
#endif //FEATURE_LCD1602_N07DH
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data A3
|
||||
#define ps2_keyboard_clock 3 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 0 // CW Encoder Pin
|
||||
#define rotary_pin2 0 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key 52
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin 0 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin 0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 0 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 13
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 0
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 0
|
||||
#define sequencer_2_pin 0
|
||||
#define sequencer_3_pin 0
|
||||
#define sequencer_4_pin 0
|
||||
#define sequencer_5_pin 0
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
Executable
+161
@@ -0,0 +1,161 @@
|
||||
/* Pins - you must review these and configure ! */
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 5
|
||||
#define paddle_right 4
|
||||
#define tx_key_line_1 8 // (high = key down/tx on)
|
||||
#define tx_key_line_2 9
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 31 // connect a speaker for sidetone Set to "12" if not using Twin T oscillator
|
||||
#define potentiometer A0 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 10 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 11 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A1
|
||||
#define command_mode_active_led 29
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
|
||||
//lcd pins
|
||||
#if defined(FEATURE_LCD_4BIT) || defined(FEATURE_LCD_8BIT)
|
||||
#define lcd_rs 38
|
||||
#define lcd_enable 32 // pin 10 is used by Ethernet shield and will conflict with that
|
||||
#define lcd_d4 33
|
||||
#define lcd_d5 35
|
||||
#define lcd_d6 37
|
||||
#define lcd_d7 39
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#if defined(FEATURE_LCD_8BIT) // addition four data lines for 8 bit LCD control
|
||||
#define lcd_d0 20
|
||||
#define lcd_d1 21
|
||||
#define lcd_d2 22
|
||||
#define lcd_d3 23
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#ifdef FEATURE_LCD1602_N07DH
|
||||
#define lcd_rs 8
|
||||
#define lcd_enable 9
|
||||
#define lcd_d4 4
|
||||
#define lcd_d5 5
|
||||
#define lcd_d6 6
|
||||
#define lcd_d7 7
|
||||
#endif //FEATURE_LCD1602_N07DH
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data A3
|
||||
#define ps2_keyboard_clock 3 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 6 // CW Encoder Pin
|
||||
#define rotary_pin2 7 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 27
|
||||
#define wrong_answer_led 25
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key 52
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin A3 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin A0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 23 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 13
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 0
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 43
|
||||
#define Row2 42
|
||||
#define Row1 41
|
||||
#define Row0 40
|
||||
#define Col3 51
|
||||
#define Col2 50
|
||||
#define Col1 49
|
||||
#define Col0 48
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 43
|
||||
#define Row2 42
|
||||
#define Row1 41
|
||||
#define Row0 40
|
||||
#define Col2 50
|
||||
#define Col1 49
|
||||
#define Col0 48
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 0
|
||||
#define sequencer_2_pin 0
|
||||
#define sequencer_3_pin 0
|
||||
#define sequencer_4_pin 0
|
||||
#define sequencer_5_pin 0
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
Executable
+176
@@ -0,0 +1,176 @@
|
||||
/*
|
||||
|
||||
|
||||
# # ## ##### # ###### # # # # # #
|
||||
## ## # # # # # # ## ## # ## # #
|
||||
# ## # # # # # # ##### # ## # # # # # #
|
||||
# # ###### ##### # # # # # # # # #
|
||||
# # # # # # # # # # # ## #
|
||||
# # # # # ###### ###### # # # # # #
|
||||
|
||||
|
||||
*/
|
||||
|
||||
/* Pins - you must review these and configure ! */
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 10
|
||||
#define paddle_right 11
|
||||
#define tx_key_line_1 12 // (high = key down/tx on)
|
||||
#define tx_key_line_2 15
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
//#define sidetone_line 8 // connect a speaker for sidetone
|
||||
uint8_t sidetone_line = 8; // sp5iou must be variable declaration instead of #define... for STM32 boards.
|
||||
#define potentiometer 4 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 13 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 16 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin 3
|
||||
#define command_mode_active_led PB1
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 0
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
|
||||
//lcd pins
|
||||
#ifdef FEATURE_LCD_4BIT
|
||||
#define lcd_rs 17
|
||||
#define lcd_enable 18
|
||||
#define lcd_d4 19
|
||||
#define lcd_d5 20
|
||||
#define lcd_d6 21
|
||||
#define lcd_d7 22
|
||||
#endif //FEATURE_LCD_4BIT
|
||||
|
||||
#if defined(FEATURE_LCD_8BIT) // addition four data lines for 8 bit LCD control
|
||||
#define lcd_d0 23
|
||||
#define lcd_d1 24
|
||||
#define lcd_d2 25
|
||||
#define lcd_d3 26
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#ifdef FEATURE_LCD1602_N07DH
|
||||
#define lcd_rs 17
|
||||
#define lcd_enable 18
|
||||
#define lcd_d4 19
|
||||
#define lcd_d5 20
|
||||
#define lcd_d6 21
|
||||
#define lcd_d7 22
|
||||
#endif //FEATURE_LCD1602_N07DH
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data A3 // for maple it can not be Ax - muste use pin numbers only or PBx, PCx etc... sp5iou
|
||||
#define ps2_keyboard_clock 3 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 0 // CW Encoder Pin
|
||||
#define rotary_pin2 0 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key 52
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin 0 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin 0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 0 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 13
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 6
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 0
|
||||
#define sequencer_2_pin 0
|
||||
#define sequencer_3_pin 0
|
||||
#define sequencer_4_pin 0
|
||||
#define sequencer_5_pin 0
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
|
||||
Executable
+162
@@ -0,0 +1,162 @@
|
||||
/* Pins - you must review these and configure ! */
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 34
|
||||
#define paddle_right 32
|
||||
#define tx_key_line_1 46 // (high = key down/tx on)
|
||||
#define tx_key_line_2 12
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 3 // connect a speaker for sidetone
|
||||
#define potentiometer A0 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 40 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A3
|
||||
#define command_mode_active_led 0
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
|
||||
//lcd pins
|
||||
#if defined(FEATURE_LCD_4BIT) || defined(FEATURE_LCD_8BIT)
|
||||
#define lcd_rs A2
|
||||
#define lcd_enable 10 // pin 10 is used by Ethernet shield and will conflict with that
|
||||
#define lcd_d4 6
|
||||
#define lcd_d5 7
|
||||
#define lcd_d6 8
|
||||
#define lcd_d7 9
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#if defined(FEATURE_LCD_8BIT) // addition four data lines for 8 bit LCD control
|
||||
#define lcd_d0 20
|
||||
#define lcd_d1 21
|
||||
#define lcd_d2 22
|
||||
#define lcd_d3 23
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#ifdef FEATURE_LCD1602_N07DH
|
||||
#define lcd_rs 8
|
||||
#define lcd_enable 9
|
||||
#define lcd_d4 4
|
||||
#define lcd_d5 5
|
||||
#define lcd_d6 6
|
||||
#define lcd_d7 7
|
||||
#endif //FEATURE_LCD1602_N07DH
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data 16
|
||||
#define ps2_keyboard_clock 18 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 6 // CW Encoder Pin
|
||||
#define rotary_pin2 8 // CCW Encoder Pin
|
||||
// #define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key 52
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin 0 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin 0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 0 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 13
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 0
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 0
|
||||
#define sequencer_2_pin 0
|
||||
#define sequencer_3_pin 0
|
||||
#define sequencer_4_pin 0
|
||||
#define sequencer_5_pin 0
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
|
||||
Executable
+162
@@ -0,0 +1,162 @@
|
||||
/* Pins - you must review these and configure ! */
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 2
|
||||
#define paddle_right 5
|
||||
#define tx_key_line_1 11 // (high = key down/tx on)
|
||||
#define tx_key_line_2 12
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 4 // connect a speaker for sidetone
|
||||
#define potentiometer A0 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 13 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A1
|
||||
#define command_mode_active_led 0
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
|
||||
//lcd pins
|
||||
#if defined(FEATURE_LCD_4BIT) || defined(FEATURE_LCD_8BIT)
|
||||
#define lcd_rs A2
|
||||
#define lcd_enable 10 // pin 10 is used by Ethernet shield and will conflict with that
|
||||
#define lcd_d4 6
|
||||
#define lcd_d5 7
|
||||
#define lcd_d6 8
|
||||
#define lcd_d7 9
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#if defined(FEATURE_LCD_8BIT) // addition four data lines for 8 bit LCD control
|
||||
#define lcd_d0 20
|
||||
#define lcd_d1 21
|
||||
#define lcd_d2 22
|
||||
#define lcd_d3 23
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#ifdef FEATURE_LCD1602_N07DH
|
||||
#define lcd_rs 8
|
||||
#define lcd_enable 9
|
||||
#define lcd_d4 4
|
||||
#define lcd_d5 5
|
||||
#define lcd_d6 6
|
||||
#define lcd_d7 7
|
||||
#endif //FEATURE_LCD1602_N07DH
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data A3
|
||||
#define ps2_keyboard_clock 3 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 0 // CW Encoder Pin
|
||||
#define rotary_pin2 0 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key 52
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin 0 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin 0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 0 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 13
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 0
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 40
|
||||
#define sequencer_2_pin 41
|
||||
#define sequencer_3_pin 42
|
||||
#define sequencer_4_pin 43
|
||||
#define sequencer_5_pin 44
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
|
||||
+157
@@ -0,0 +1,157 @@
|
||||
/* Pins - you must review these and configure ! */
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 2
|
||||
#define paddle_right 5
|
||||
#define tx_key_line_1 11 // (high = key down/tx on)
|
||||
#define tx_key_line_2 12
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 4 // connect a speaker for sidetone
|
||||
#define potentiometer A0 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 13 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A1
|
||||
#define command_mode_active_led 0
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
|
||||
//lcd pins
|
||||
#ifdef FEATURE_LCD_4BIT
|
||||
#define lcd_rs A2
|
||||
#define lcd_enable 10
|
||||
#define lcd_d4 6
|
||||
#define lcd_d5 7
|
||||
#define lcd_d6 8
|
||||
#define lcd_d7 9
|
||||
#endif //FEATURE_LCD_4BIT
|
||||
|
||||
#ifdef FEATURE_LCD1602_N07DH
|
||||
#define lcd_rs 8
|
||||
#define lcd_enable 9
|
||||
#define lcd_d4 4
|
||||
#define lcd_d5 5
|
||||
#define lcd_d6 6
|
||||
#define lcd_d7 7
|
||||
#endif //FEATURE_LCD1602_N07DH
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data A3
|
||||
#define ps2_keyboard_clock 3 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 0 // CW Encoder Pin
|
||||
#define rotary_pin2 0 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key 52
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin 0 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin 0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 0 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 13
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 0
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 40
|
||||
#define sequencer_2_pin 41
|
||||
#define sequencer_3_pin 42
|
||||
#define sequencer_4_pin 43
|
||||
#define sequencer_5_pin 44
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,155 @@
|
||||
/* Pins - you must review these and configure ! */
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 2
|
||||
#define paddle_right 5
|
||||
#define tx_key_line_1 11 // (high = key down/tx on)
|
||||
#define tx_key_line_2 12
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 4 // connect a speaker for sidetone
|
||||
#define potentiometer A0 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 13 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A1
|
||||
#define command_mode_active_led 0
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
|
||||
//lcd pins
|
||||
#ifdef FEATURE_LCD_4BIT
|
||||
#define lcd_rs A2
|
||||
#define lcd_enable 10
|
||||
#define lcd_d4 6
|
||||
#define lcd_d5 7
|
||||
#define lcd_d6 8
|
||||
#define lcd_d7 9
|
||||
#endif //FEATURE_LCD_4BIT
|
||||
|
||||
#ifdef FEATURE_LCD1602_N07DH
|
||||
#define lcd_rs 8
|
||||
#define lcd_enable 9
|
||||
#define lcd_d4 4
|
||||
#define lcd_d5 5
|
||||
#define lcd_d6 6
|
||||
#define lcd_d7 7
|
||||
#endif //FEATURE_LCD1602_N07DH
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data A3
|
||||
#define ps2_keyboard_clock 3 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 0 // CW Encoder Pin
|
||||
#define rotary_pin2 0 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key 52
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin 0 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin 0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 0 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 13
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 0
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 40
|
||||
#define sequencer_2_pin 41
|
||||
#define sequencer_3_pin 42
|
||||
#define sequencer_4_pin 43
|
||||
#define sequencer_5_pin 44
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
|
||||
Executable
+155
@@ -0,0 +1,155 @@
|
||||
/* Pins - you must review these and configure ! */
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 2
|
||||
#define paddle_right 5
|
||||
#define tx_key_line_1 11 // (high = key down/tx on)
|
||||
#define tx_key_line_2 13
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 4 // connect a speaker for sidetone
|
||||
#define potentiometer A0 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 0 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A1
|
||||
#define command_mode_active_led 0
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
|
||||
//lcd pins
|
||||
#ifdef FEATURE_LCD_4BIT
|
||||
#define lcd_rs A2
|
||||
#define lcd_enable 10
|
||||
#define lcd_d4 6
|
||||
#define lcd_d5 7
|
||||
#define lcd_d6 8
|
||||
#define lcd_d7 9
|
||||
#endif //FEATURE_LCD_4BIT
|
||||
|
||||
#ifdef FEATURE_LCD1602_N07DH
|
||||
#define lcd_rs 8
|
||||
#define lcd_enable 9
|
||||
#define lcd_d4 4
|
||||
#define lcd_d5 5
|
||||
#define lcd_d6 6
|
||||
#define lcd_d7 7
|
||||
#endif //FEATURE_LCD1602_N07DH
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data A3
|
||||
#define ps2_keyboard_clock 3 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 0 // CW Encoder Pin
|
||||
#define rotary_pin2 0 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key 52
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin 0 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin 0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 0 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 13
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 0
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 40
|
||||
#define sequencer_2_pin 41
|
||||
#define sequencer_3_pin 42
|
||||
#define sequencer_4_pin 43
|
||||
#define sequencer_5_pin 44
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
|
||||
@@ -0,0 +1,155 @@
|
||||
/* Pins - you must review these and configure ! */
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 2
|
||||
#define paddle_right 5
|
||||
#define tx_key_line_1 11 // (high = key down/tx on)
|
||||
#define tx_key_line_2 13
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 4 // connect a speaker for sidetone
|
||||
#define potentiometer A0 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 0 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A1
|
||||
#define command_mode_active_led 0
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
|
||||
//lcd pins
|
||||
#ifdef FEATURE_LCD_4BIT
|
||||
#define lcd_rs A2
|
||||
#define lcd_enable 10
|
||||
#define lcd_d4 6
|
||||
#define lcd_d5 7
|
||||
#define lcd_d6 8
|
||||
#define lcd_d7 9
|
||||
#endif //FEATURE_LCD_4BIT
|
||||
|
||||
#ifdef FEATURE_LCD1602_N07DH
|
||||
#define lcd_rs 8
|
||||
#define lcd_enable 9
|
||||
#define lcd_d4 4
|
||||
#define lcd_d5 5
|
||||
#define lcd_d6 6
|
||||
#define lcd_d7 7
|
||||
#endif //FEATURE_LCD1602_N07DH
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data A3
|
||||
#define ps2_keyboard_clock 3 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 0 // CW Encoder Pin
|
||||
#define rotary_pin2 0 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key 52
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin 0 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin 0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 0 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 13
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 0
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 40
|
||||
#define sequencer_2_pin 41
|
||||
#define sequencer_3_pin 42
|
||||
#define sequencer_4_pin 43
|
||||
#define sequencer_5_pin 44
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
|
||||
+96
@@ -0,0 +1,96 @@
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 2
|
||||
#define paddle_right 5
|
||||
#define tx_key_line_1 11 // (high = key down/tx on)
|
||||
#define tx_key_line_2 13 // Rev A & B nanoKeyer PTT port
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 4 // connect a speaker for sidetone
|
||||
#define potentiometer A7 // Rev A & B nanoKeyer
|
||||
#define ptt_tx_1 0 // PTT ("push to talk") lines
|
||||
//#define ptt_tx_1 13 // nanoKeyer PTT port
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define analog_buttons_pin A6 // Rev A & B nanokeyer
|
||||
#define lcd_rs A2
|
||||
#define lcd_enable 10
|
||||
#define lcd_d4 6
|
||||
#define lcd_d5 7
|
||||
#define lcd_d6 8
|
||||
#define lcd_d7 9
|
||||
#define ps2_keyboard_data A5 // Rev A & B nanokeyer
|
||||
#define ps2_keyboard_clock 3
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 13 // Goes active when keyer is awake, inactive when in sleep mode; change active and inactive states in keyer_settings file
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 0
|
||||
#define sequencer_2_pin 0
|
||||
#define sequencer_3_pin 0
|
||||
#define sequencer_4_pin 0
|
||||
#define sequencer_5_pin 0
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 2
|
||||
#define paddle_right 5
|
||||
#define tx_key_line_1 11 // (high = key down/tx on)
|
||||
#define tx_key_line_2 0 // nanoKeyer PTT port (Pin 13) may be used as 2nd keying line for SO2R
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 4 // connect a speaker for sidetone
|
||||
#define potentiometer A0 // Rev D nanoKeyer
|
||||
#define ptt_tx_1 13 // nanoKeyer PTT port (uncomment if using above as 2nd CW port for SO2R operation)
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define analog_buttons_pin A1 // Rev D nanokeyer
|
||||
#define lcd_rs A2
|
||||
#define lcd_enable 10
|
||||
#define lcd_d4 6
|
||||
#define lcd_d5 7
|
||||
#define lcd_d6 8
|
||||
#define lcd_d7 9
|
||||
#define ps2_keyboard_data A3 // Rev D nanokeyer
|
||||
#define ps2_keyboard_clock 3
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 13 // Goes active when keyer is awake, inactive when in sleep mode; change active and inactive states in keyer_settings file
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 0
|
||||
#define sequencer_2_pin 0
|
||||
#define sequencer_3_pin 0
|
||||
#define sequencer_4_pin 0
|
||||
#define sequencer_5_pin 0
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
+143
@@ -0,0 +1,143 @@
|
||||
// This file is for the Open Interface http://remoteqth.com/open-interface.php
|
||||
|
||||
/* Pins - you must review these and configure ! */
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 2
|
||||
#define paddle_right 5
|
||||
#define tx_key_line_1 11 // (high = key down/tx on)
|
||||
#define tx_key_line_2 12
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 4 // connect a speaker for sidetone
|
||||
#define potentiometer A0 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 0 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A1
|
||||
#define command_mode_active_led 0
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
//lcd pins
|
||||
#ifdef FEATURE_LCD_4BIT
|
||||
#define lcd_rs A2
|
||||
#define lcd_enable 10
|
||||
#define lcd_d4 6
|
||||
#define lcd_d5 7
|
||||
#define lcd_d6 8
|
||||
#define lcd_d7 9
|
||||
#endif //FEATURE_LCD_4BIT
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data A3
|
||||
#define ps2_keyboard_clock 3 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 0 // CW Encoder Pin
|
||||
#define rotary_pin2 0 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin 0 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin 0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 0 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 13 // Goes active when keyer is awake, inactive when in sleep mode; change active and inactive states in keyer_settings file
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 0
|
||||
#define sequencer_2_pin 0
|
||||
#define sequencer_3_pin 0
|
||||
#define sequencer_4_pin 0
|
||||
#define sequencer_5_pin 0
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
|
||||
+163
@@ -0,0 +1,163 @@
|
||||
/* Pins - you must review these and configure ! */
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
|
||||
#define paddle_left 2
|
||||
#define paddle_right 6
|
||||
#define tx_key_line_1 11 // (high = key down/tx on)
|
||||
#define tx_key_line_2 13
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 4 // connect a speaker for sidetone
|
||||
#define potentiometer A0 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 12 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 13 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A1
|
||||
#define command_mode_active_led 0
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
|
||||
//lcd pins
|
||||
#if defined(FEATURE_LCD_4BIT) || defined(FEATURE_LCD_8BIT)
|
||||
#define lcd_rs A2
|
||||
#define lcd_enable 10 // pin 10 is used by Ethernet shield and will conflict with that
|
||||
#define lcd_d4 6
|
||||
#define lcd_d5 7
|
||||
#define lcd_d6 8
|
||||
#define lcd_d7 9
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#if defined(FEATURE_LCD_8BIT) // addition four data lines for 8 bit LCD control
|
||||
#define lcd_d0 20
|
||||
#define lcd_d1 21
|
||||
#define lcd_d2 22
|
||||
#define lcd_d3 23
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#ifdef FEATURE_LCD1602_N07DH
|
||||
#define lcd_rs 8
|
||||
#define lcd_enable 9
|
||||
#define lcd_d4 4
|
||||
#define lcd_d5 5
|
||||
#define lcd_d6 6
|
||||
#define lcd_d7 7
|
||||
#endif //FEATURE_LCD1602_N07DH
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data A3
|
||||
#define ps2_keyboard_clock 3 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 0 // CW Encoder Pin
|
||||
#define rotary_pin2 0 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key 52
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin 0 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin 0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 0 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 13
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 0
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 0
|
||||
#define sequencer_2_pin 0
|
||||
#define sequencer_3_pin 0
|
||||
#define sequencer_4_pin 0
|
||||
#define sequencer_5_pin 0
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
|
||||
Executable
+185
@@ -0,0 +1,185 @@
|
||||
|
||||
// ######## ######## ###### ########
|
||||
// ## ## ## ## ##
|
||||
// ## ## ## ##
|
||||
// ## ###### ###### ##
|
||||
// ## ## ## ##
|
||||
// ## ## ## ## ##
|
||||
// ## ######## ###### ##
|
||||
|
||||
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 2
|
||||
#define paddle_right 5
|
||||
#define tx_key_line_1 11 // (high = key down/tx on)
|
||||
#define tx_key_line_2 13
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#if !defined(FEATURE_ETHERNET)
|
||||
#define sidetone_line 4 // connect a speaker for sidetone (pin 4 is used by the Ethernet shield!)
|
||||
#else
|
||||
#define sidetone_line 12
|
||||
#endif
|
||||
#define potentiometer A0 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 13 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A1
|
||||
#define command_mode_active_led 0
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
|
||||
//lcd pins
|
||||
#if defined(FEATURE_LCD_4BIT) || defined(FEATURE_LCD_8BIT)
|
||||
#define lcd_rs A2
|
||||
#define lcd_enable 10 // pin 10 is used by Ethernet shield and will conflict with that
|
||||
#define lcd_d4 6
|
||||
#define lcd_d5 7
|
||||
#define lcd_d6 8
|
||||
#define lcd_d7 9
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#if defined(FEATURE_LCD_8BIT) // addition four data lines for 8 bit LCD control
|
||||
#define lcd_d0 20
|
||||
#define lcd_d1 21
|
||||
#define lcd_d2 22
|
||||
#define lcd_d3 23
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#ifdef FEATURE_LCD1602_N07DH
|
||||
#define lcd_rs 8
|
||||
#define lcd_enable 9
|
||||
#define lcd_d4 4 // pin 4 is used by Ethernet shield and will conflict with that
|
||||
#define lcd_d5 5
|
||||
#define lcd_d6 6
|
||||
#define lcd_d7 7
|
||||
#endif //FEATURE_LCD1602_N07DH
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data A3
|
||||
#define ps2_keyboard_clock 3 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 0 // CW Encoder Pin
|
||||
#define rotary_pin2 0 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key A5 //52 // pin 52 doesn't work right when FEATURE_WEB_SERVER is active. don't know why 2016-04-26
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin 0 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin 0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 0 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 13
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 13 // Goes active when keyer is awake, inactive when in sleep mode; change active and inactive states in keyer_settings file
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 40
|
||||
#define sequencer_2_pin 41
|
||||
#define sequencer_3_pin 42
|
||||
#define sequencer_4_pin 43
|
||||
#define sequencer_5_pin 44
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
|
||||
|
||||
// ######## ######## ###### ########
|
||||
// ## ## ## ## ##
|
||||
// ## ## ## ##
|
||||
// ## ###### ###### ##
|
||||
// ## ## ## ##
|
||||
// ## ## ## ## ##
|
||||
// ## ######## ###### ##
|
||||
|
||||
+199
@@ -0,0 +1,199 @@
|
||||
|
||||
// ######## ######## ###### ########
|
||||
// ## ## ## ## ##
|
||||
// ## ## ## ##
|
||||
// ## ###### ###### ##
|
||||
// ## ## ## ##
|
||||
// ## ## ## ## ##
|
||||
// ## ######## ###### ##
|
||||
|
||||
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 2
|
||||
#define paddle_right 5
|
||||
#define tx_key_line_1 11 // (high = key down/tx on)
|
||||
#define tx_key_line_2 12
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#if !defined(FEATURE_ETHERNET)
|
||||
#define sidetone_line 4 // connect a speaker for sidetone
|
||||
#else
|
||||
#define sidetone_line 31 // pin 4 is used by Ethernet shield so we'll use pin 31 on the test jig...
|
||||
#endif
|
||||
#define potentiometer A0 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 13 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define so2r_tx_1 0 // Radio 1 transmitter selected (optional, set to zero if not used)
|
||||
#define so2r_tx_2 11 // Radio 2 transmitter selected (optional, set to zero if not used)
|
||||
#define so2r_rx_1 0 // Radio 1 receiver selected (optional, set to zero if not used)
|
||||
#define so2r_rx_2 0 // Radio 2 receiver selected (optional, set to zero if not used)
|
||||
#define so2r_rx_1s 0 // Radio 1 receiver or stereo selected (optional, set to zero if not used)
|
||||
#define so2r_rx_2s 9 // Radio 2 receiver or stereo selected (optional, set to zero if not used)
|
||||
#define so2r_rx_s 10 // Stereo receive selected (optional, set to zero if not used)
|
||||
|
||||
#ifdef FEATURE_SO2R_SWITCHES
|
||||
#define so2r_tx_switch A5 // TX switch, low if TX1, high if TX2
|
||||
#define so2r_rx1_switch A4 // RX 1 switch, low if RX1, high if RX2 or stereo
|
||||
#define so2r_rx2_switch A3 // RX 2 switch, low if RX2, high if RX1 or stereo
|
||||
#endif
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A1
|
||||
#define command_mode_active_led 0
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
|
||||
//lcd pins
|
||||
#if defined(FEATURE_LCD_4BIT) || defined(FEATURE_LCD_8BIT)
|
||||
#define lcd_rs A2
|
||||
#define lcd_enable 10 // pin 10 is used by Ethernet shield and will conflict with that
|
||||
#define lcd_d4 6
|
||||
#define lcd_d5 7
|
||||
#define lcd_d6 8
|
||||
#define lcd_d7 9
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#if defined(FEATURE_LCD_8BIT) // addition four data lines for 8 bit LCD control
|
||||
#define lcd_d0 20
|
||||
#define lcd_d1 21
|
||||
#define lcd_d2 22
|
||||
#define lcd_d3 23
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#ifdef FEATURE_LCD1602_N07DH
|
||||
#define lcd_rs 8
|
||||
#define lcd_enable 9
|
||||
#define lcd_d4 4 // pin 4 is used by Ethernet shield and will conflict with that
|
||||
#define lcd_d5 5
|
||||
#define lcd_d6 6
|
||||
#define lcd_d7 7
|
||||
#endif //FEATURE_LCD1602_N07DH
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data A3
|
||||
#define ps2_keyboard_clock 3 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 0 // CW Encoder Pin
|
||||
#define rotary_pin2 0 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key A5 //52 // pin 52 doesn't work right when FEATURE_WEB_SERVER is active. don't know why 2016-04-26
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin 0 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin 0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 0 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 13
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 13 // Goes active when keyer is awake, inactive when in sleep mode; change active and inactive states in keyer_settings file
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 40
|
||||
#define sequencer_2_pin 41
|
||||
#define sequencer_3_pin 42
|
||||
#define sequencer_4_pin 43
|
||||
#define sequencer_5_pin 44
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 50
|
||||
#define tx_pause_pin 48
|
||||
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
|
||||
|
||||
// ######## ######## ###### ########
|
||||
// ## ## ## ## ##
|
||||
// ## ## ## ##
|
||||
// ## ###### ###### ##
|
||||
// ## ## ## ##
|
||||
// ## ## ## ## ##
|
||||
// ## ######## ###### ##
|
||||
|
||||
Executable
+94
@@ -0,0 +1,94 @@
|
||||
// features & options for TinyKeyer by OK1RR
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 2 // dit
|
||||
#define paddle_right 5 // dah
|
||||
#define tx_key_line_1 12 // tinykeyer keyed port (high = key down/tx on)
|
||||
#define tx_key_line_2 0
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 4 // connect a speaker for sidetone
|
||||
#define potentiometer 0 // tinykeyer no pot used
|
||||
#define ptt_tx_1 0 // (put 13 instead 0 to activate) tinykeyer PTT port (high = PTT down/PTT on)
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define analog_buttons_pin A1 // tinykeyer
|
||||
#define command_mode_active_led 9 // tinykeyer - command mode LED indicator
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 11 // CW Encoder Pin
|
||||
#define rotary_pin2 10 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 8 // Goes active when keyer is awake, inactive when in sleep mode; change active and inactive states in keyer_settings file
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 0
|
||||
#define sequencer_2_pin 0
|
||||
#define sequencer_3_pin 0
|
||||
#define sequencer_4_pin 0
|
||||
#define sequencer_5_pin 0
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
Executable
+143
@@ -0,0 +1,143 @@
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 21
|
||||
#define paddle_right 22
|
||||
#define tx_key_line_1 28 // (high = key down/tx on)
|
||||
#define tx_key_line_2 31
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 23 // connect a speaker for sidetone
|
||||
#define potentiometer A0 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 0 // PTT ("push to talk") lines
|
||||
#define ptt_tx_2 0 // Can be used for keying fox transmitter, T/R switch, or keying slow boatanchors
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A1
|
||||
#define command_mode_active_led 0
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 0
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
|
||||
//lcd pins
|
||||
#ifdef FEATURE_LCD_4BIT
|
||||
#define lcd_rs 26 // A2
|
||||
#define lcd_enable 20
|
||||
#define lcd_d4 12
|
||||
#define lcd_d5 13
|
||||
#define lcd_d6 14
|
||||
#define lcd_d7 15
|
||||
#endif //FEATURE_LCD_4BIT
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data A3
|
||||
#define ps2_keyboard_clock 2 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 0 // CW Encoder Pin
|
||||
#define rotary_pin2 0 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key 0
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin 0 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin 0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 0 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 0 // Goes active when keyer is awake, inactive when in sleep mode; change active and inactive states in keyer_settings file
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 0
|
||||
#define sequencer_2_pin 0
|
||||
#define sequencer_3_pin 0
|
||||
#define sequencer_4_pin 0
|
||||
#define sequencer_5_pin 0
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 0
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
+176
@@ -0,0 +1,176 @@
|
||||
/* Pins - you must review these and configure ! */
|
||||
#ifndef keyer_pin_settings_h
|
||||
#define keyer_pin_settings_h
|
||||
|
||||
#define paddle_left 6
|
||||
#define paddle_right 7
|
||||
|
||||
#define tx_key_line_1 5 // (high = key down/tx on)
|
||||
#define tx_key_line_2 4
|
||||
#define tx_key_line_3 0
|
||||
#define tx_key_line_4 0
|
||||
#define tx_key_line_5 0
|
||||
#define tx_key_line_6 0
|
||||
#define sidetone_line 0 // connect a buzzer for sidetone (optional, set to zero if not used)
|
||||
#define potentiometer A7 // Speed potentiometer (0 to 5 V) Use pot from 1k to 10k
|
||||
#define ptt_tx_1 3 // Radio 1 PTT ("push to talk") line
|
||||
#define ptt_tx_2 2 // Radio 2 PTT ("push to talk") line
|
||||
#define ptt_tx_3 0 // These are optional - set to 0 if unused
|
||||
#define ptt_tx_4 0
|
||||
#define ptt_tx_5 0
|
||||
#define ptt_tx_6 0
|
||||
#define tx_key_dit 0 // if defined, goes active for dit (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
#define tx_key_dah 0 // if defined, goes active for dah (any transmitter) - customized with tx_key_dit_and_dah_pins_active_state and tx_key_dit_and_dah_pins_inactive_state
|
||||
|
||||
#define so2r_tx_1 0 // Radio 1 transmitter selected (optional, set to zero if not used)
|
||||
#define so2r_tx_2 11 // Radio 2 transmitter selected (optional, set to zero if not used)
|
||||
#define so2r_rx_1 0 // Radio 1 receiver selected (optional, set to zero if not used)
|
||||
#define so2r_rx_2 0 // Radio 2 receiver selected (optional, set to zero if not used)
|
||||
#define so2r_rx_1s 0 // Radio 1 receiver or stereo selected (optional, set to zero if not used)
|
||||
#define so2r_rx_2s 9 // Radio 2 receiver or stereo selected (optional, set to zero if not used)
|
||||
#define so2r_rx_s 10 // Stereo receive selected (optional, set to zero if not used)
|
||||
|
||||
#ifdef FEATURE_SO2R_SWITCHES
|
||||
#define so2r_tx_switch A5 // TX switch, low if TX1, high if TX2
|
||||
#define so2r_rx1_switch A4 // RX 1 switch, low if RX1, high if RX2 or stereo
|
||||
#define so2r_rx2_switch A3 // RX 2 switch, low if RX2, high if RX1 or stereo
|
||||
#endif
|
||||
|
||||
#define potentiometer_enable_pin 0 // if defined, the potentiometer will be enabled only when this pin is held low; set to 0 to ignore this pin
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_pin A1
|
||||
#define command_mode_active_led 0
|
||||
#endif //FEATURE_BUTTONS
|
||||
|
||||
/*
|
||||
FEATURE_SIDETONE_SWITCH
|
||||
Enabling this feature and an external toggle switch adds switch control for playing cw sidetone.
|
||||
ST Switch status is displayed in the status command. This feature will override the software control of the sidetone (\o).
|
||||
Arduino pin is assigned by SIDETONE_SWITCH
|
||||
*/
|
||||
|
||||
#ifdef FEATURE_SIDETONE_SWITCH
|
||||
#define SIDETONE_SWITCH 8
|
||||
#endif //FEATURE_SIDETONE_SWITCH
|
||||
|
||||
|
||||
//lcd pins
|
||||
#if defined(FEATURE_LCD_4BIT) || defined(FEATURE_LCD_8BIT)
|
||||
#define lcd_rs A2
|
||||
#define lcd_enable 10 // pin 10 is used by Ethernet shield and will conflict with that
|
||||
#define lcd_d4 6
|
||||
#define lcd_d5 7
|
||||
#define lcd_d6 8
|
||||
#define lcd_d7 9
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#if defined(FEATURE_LCD_8BIT) // addition four data lines for 8 bit LCD control
|
||||
#define lcd_d0 20
|
||||
#define lcd_d1 21
|
||||
#define lcd_d2 22
|
||||
#define lcd_d3 23
|
||||
#endif //FEATURE_LCD_4BIT || defined(FEATURE_LCD_8BIT)
|
||||
|
||||
#ifdef FEATURE_LCD1602_N07DH
|
||||
#define lcd_rs 8
|
||||
#define lcd_enable 9
|
||||
#define lcd_d4 4
|
||||
#define lcd_d5 5
|
||||
#define lcd_d6 6
|
||||
#define lcd_d7 7
|
||||
#endif //FEATURE_LCD1602_N07DH
|
||||
|
||||
//ps2 keyboard pins
|
||||
#ifdef FEATURE_PS2_KEYBOARD
|
||||
#define ps2_keyboard_data A3
|
||||
#define ps2_keyboard_clock 3 // this must be on an interrupt capable pin!
|
||||
#endif //FEATURE_PS2_KEYBOARD
|
||||
|
||||
// rotary encoder pins and options - rotary encoder code from Jim Balls M0CKE
|
||||
#ifdef FEATURE_ROTARY_ENCODER
|
||||
#define OPTION_ENCODER_HALF_STEP_MODE // Half-step mode?
|
||||
#define rotary_pin1 0 // CW Encoder Pin
|
||||
#define rotary_pin2 0 // CCW Encoder Pin
|
||||
#define OPTION_ENCODER_ENABLE_PULLUPS // define to enable weak pullups.
|
||||
#endif //FEATURE_ROTARY_ENCODER
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_sdi A10 //2 //Data
|
||||
#define led_ring_clk A9 //3 //Clock
|
||||
#define led_ring_le A8 //4 //Latch
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#define correct_answer_led 0
|
||||
#define wrong_answer_led 0
|
||||
|
||||
#ifdef FEATURE_PTT_INTERLOCK
|
||||
#define ptt_interlock 0 // this pin disables PTT and TX KEY
|
||||
#endif //FEATURE_PTT_INTERLOCK
|
||||
|
||||
#ifdef FEATURE_STRAIGHT_KEY
|
||||
#define pin_straight_key 52
|
||||
#endif //FEATURE_STRAIGHT_KEY
|
||||
|
||||
// FEATURE_CW_DECODER & OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
// See https://github.com/k3ng/k3ng_cw_keyer/wiki/385-Feature:-CW-Decoder for details
|
||||
#define cw_decoder_pin 0 // This is for use with external decoding hardware
|
||||
#define cw_decoder_audio_input_pin 0 // This is for audio detection decoding using OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR; this must be an analog pin!
|
||||
#define cw_decoder_indicator 0 // Output - goes HIGH when cw tone is detected by OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
|
||||
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define compression_detection_pin 13
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define keyer_awake 0
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led 0 // must be a PWM-capable pin
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_CAPACITIVE_PADDLE_PINS)
|
||||
#define capactive_paddle_pin_inhibit_pin 0 // if this pin is defined and is set high, the capacitive paddle pins will switch to normal (non-capacitive) sensing mode
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_4x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col3 37
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_3x4_KEYPAD
|
||||
#define Row3 33
|
||||
#define Row2 32
|
||||
#define Row1 31
|
||||
#define Row0 30
|
||||
#define Col2 36
|
||||
#define Col1 35
|
||||
#define Col0 34
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_SEQUENCER
|
||||
#define sequencer_1_pin 0
|
||||
#define sequencer_2_pin 0
|
||||
#define sequencer_3_pin 0
|
||||
#define sequencer_4_pin 0
|
||||
#define sequencer_5_pin 0
|
||||
#endif //FEATURE_SEQUENCER
|
||||
|
||||
#define ptt_input_pin 8
|
||||
|
||||
#define tx_inhibit_pin 0
|
||||
#define tx_pause_pin 0
|
||||
|
||||
#else
|
||||
|
||||
#error "Multiple pin_settings.h files included somehow..."
|
||||
|
||||
#endif //keyer_pin_settings_h
|
||||
Executable
+316
@@ -0,0 +1,316 @@
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 1.0 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 1.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 20
|
||||
#define LCD_ROWS 4
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 1
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 6 // includes the command button (command button + 3 memory buttons = 4)
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#if defined(OPTION_WINKEY_UCXLOG_9600_BAUD) || defined(FEATURE_SO2R_BASE)
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD || FEATURE_SO2R_BASE
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
#define FEATURE_INTERNET_LINK_SVC_DURING_LOOP_TIME_MS 20
|
||||
#define FEATURE_INTERNET_LINK_KEY_DOWN_TIMEOUT_SECS 8
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD) || defined(FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD) || defined(FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095 //sp5iou contributed
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'R'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
Executable
+338
@@ -0,0 +1,338 @@
|
||||
// Initial and hardcoded settings
|
||||
|
||||
|
||||
// ######## ## ## ## ## ## ## ######## ## ## ######## ########
|
||||
// ## ## ## ### ## ## ## ## ## ## ## ## ##
|
||||
// ## ## ## #### ## ## ## ## #### ## ## ##
|
||||
// ###### ## ## ## ## ## ##### ###### ## ###### ########
|
||||
// ## ## ## ## #### ## ## ## ## ## ## ##
|
||||
// ## ## ## ## ### ## ## ## ## ## ## ##
|
||||
// ## ####### ## ## ## ## ######## ## ######## ## ##
|
||||
|
||||
|
||||
// ######## ## ## ## #####
|
||||
// ## ## ## #### ## ##
|
||||
// ## ## ## ## ## ##
|
||||
// ###### ##### ## ## ##
|
||||
// ## ## ## ## ## ##
|
||||
// ## ## ## ## ## ##
|
||||
// ## ## ## ###### #####
|
||||
|
||||
|
||||
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 4
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.178")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095 //sp5iou contributed
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
|
||||
Executable
+318
@@ -0,0 +1,318 @@
|
||||
// Funtronics FK-11
|
||||
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 5 // includes the command button (command button + 3 memory buttons = 4)
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD || defined(FEATURE_SO2R_BASE)
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD || FEATURE_SO2R_BASE
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095 //sp5iou contributed
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
+324
@@ -0,0 +1,324 @@
|
||||
/*
|
||||
GENERIC STM32F103C
|
||||
|
||||
|
||||
*/
|
||||
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
//#define default_pot_full_scale_reading 1023 //For AVR boards
|
||||
#define default_pot_full_scale_reading 4095 //SP5IOU 20180329 FOR stm32 Boards.
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 1 // For Keypad only command butrton is neaded 6 //4 // includes the command button (command button + 3 memory buttons = 4) //sp5iou 20180319
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
// #define number_of_memories byte(12)
|
||||
#define number_of_memories byte(10) //sp5iou 20180329 With many memories, be carefull to not put to much content. It caould disable memory programming and eeprom formatting is then necessary
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI) || defined(ARDUINO_GENERIC_STM32f103C) //sp5iou 20180329
|
||||
#define button_value_factor 4095 //sp5iou contributed
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
Executable
+316
@@ -0,0 +1,316 @@
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 5 // includes the command button (command button + 3 memory buttons = 4)
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095 //sp5iou contributed
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
Executable
+315
@@ -0,0 +1,315 @@
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 700 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16 //edit for 1602 or 1604 LCD
|
||||
#define LCD_ROWS 2 //edit for 1602 or 1604 LCD
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 8 // includes the command button (command button + 3 memory buttons = 4)
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095 //sp5iou contributed
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
Executable
+329
@@ -0,0 +1,329 @@
|
||||
/*
|
||||
|
||||
# # ## ##### # ###### # # # # # #
|
||||
## ## # # # # # # ## ## # ## # #
|
||||
# ## # # # # # # ##### # ## # # # # # #
|
||||
# # ###### ##### # # # # # # # # #
|
||||
# # # # # # # # # # # ## #
|
||||
# # # # # ###### ###### # # # # # #
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 4 // includes the command button (command button + 3 memory buttons = 4)
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095 //sp5iou contributed
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
Executable
+321
@@ -0,0 +1,321 @@
|
||||
//
|
||||
// Initial setting for W6IPA megakeyer v1.1 (CC) BY-NC-SA
|
||||
// Project files are available here https://github.com/w6ipa/megakeyer
|
||||
//
|
||||
#define initial_speed_wpm 20 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 4 // includes the command button (command button + 3 memory buttons = 4)
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095 //sp5iou contributed
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
Executable
+318
@@ -0,0 +1,318 @@
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 0 //=====150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 4
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
Executable
+318
@@ -0,0 +1,318 @@
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 0 //=====150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 4
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
@@ -0,0 +1,318 @@
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 0 //=====150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 4
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
Executable
+318
@@ -0,0 +1,318 @@
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 0 //=====150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 4
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
+318
@@ -0,0 +1,318 @@
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 0 //=====150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 4
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
Executable
+309
@@ -0,0 +1,309 @@
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 4
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(3) //12
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 40 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.178")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095 //sp5iou contributed
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
Executable
+310
@@ -0,0 +1,310 @@
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 4
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 40 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.178")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095 //sp5iou contributed
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
Executable
+312
@@ -0,0 +1,312 @@
|
||||
// This file is for the Open Interface http://remoteqth.com/open-interface.php
|
||||
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 4
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 40 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.178")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095 //sp5iou contributed
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
Executable
+316
@@ -0,0 +1,316 @@
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 25 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 40 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 3 // includes the command button (command button + 3 memory buttons = 4)
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095 //sp5iou contributed
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
Executable
+652
@@ -0,0 +1,652 @@
|
||||
|
||||
// ######## ######## ###### ########
|
||||
// ## ## ## ## ##
|
||||
// ## ## ## ##
|
||||
// ## ###### ###### ##
|
||||
// ## ## ## ##
|
||||
// ## ## ## ## ##
|
||||
// ## ######## ###### ##
|
||||
|
||||
#define TEST_SETTINGS_1
|
||||
// #define TEST_SETTINGS_2
|
||||
|
||||
#if defined(TEST_SETTINGS_1)
|
||||
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state LOW
|
||||
#define tx_key_dit_and_dah_pins_inactive_state HIGH
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 4
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500 // increase this time if you have greater than 500 ms latency on your link
|
||||
#define FEATURE_INTERNET_LINK_SVC_DURING_LOOP_TIME_MS 20
|
||||
#define FEATURE_INTERNET_LINK_KEY_DOWN_TIMEOUT_SECS 8
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define command_mode_acknowledgement_character 'C'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
|
||||
#endif //TEST_SETTINGS_1
|
||||
|
||||
//*********************************************************************************************************************
|
||||
//*********************************************************************************************************************
|
||||
//*********************************************************************************************************************
|
||||
//*********************************************************************************************************************
|
||||
//*********************************************************************************************************************
|
||||
|
||||
#if defined(TEST_SETTINGS_2)
|
||||
|
||||
|
||||
#define initial_speed_wpm 17 // "factory default" keyer speed setting
|
||||
#define initial_sidetone_freq 588 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 12 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 30 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define cw_echo_timing_factor 0.25
|
||||
#define winkey_paddle_echo_buffer_decode_time_factor 1600.0
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 4 // includes the command button (command button + 3 memory buttons = 4)
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1.2
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
#define initial_command_mode_speed_wpm 20
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095 //sp5iou contributed
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'R'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
|
||||
#endif //TEST_SETTINGS_2
|
||||
|
||||
// ######## ######## ###### ########
|
||||
// ## ## ## ## ##
|
||||
// ## ## ## ##
|
||||
// ## ###### ###### ##
|
||||
// ## ## ## ##
|
||||
// ## ## ## ## ##
|
||||
// ## ######## ###### ##
|
||||
Executable
+361
@@ -0,0 +1,361 @@
|
||||
|
||||
// ######## ######## ###### ########
|
||||
// ## ## ## ## ##
|
||||
// ## ## ## ## EVERYTHING
|
||||
// ## ###### ###### ##
|
||||
// ## ## ## ##
|
||||
// ## ## ## ## ##
|
||||
// ## ######## ###### ##
|
||||
|
||||
|
||||
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state LOW
|
||||
#define tx_key_dit_and_dah_pins_inactive_state HIGH
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 4
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500 // increase this time if you have greater than 500 ms latency on your link
|
||||
#define FEATURE_INTERNET_LINK_SVC_DURING_LOOP_TIME_MS 20
|
||||
#define FEATURE_INTERNET_LINK_KEY_DOWN_TIMEOUT_SECS 8
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#ifdef FEATURE_SO2R_BASE
|
||||
#ifdef FEATURE_POTENTIOMETER
|
||||
#ifdef FEATURE_SO2R_SWITCHES
|
||||
#ifdef FEATURE_SO2R_ANTENNAS
|
||||
#define SO2R_DEVICE_NAME "SO2R Mini PSA"
|
||||
#else
|
||||
#define SO2R_DEVICE_NAME "SO2R Mini PS"
|
||||
#endif
|
||||
#else
|
||||
#ifdef FEATURE_SO2R_ANTENNAS
|
||||
#define SO2R_DEVICE_NAME "SO2R Mini PA"
|
||||
#else
|
||||
#define SO2R_DEVICE_NAME "SO2R Mini P"
|
||||
#endif
|
||||
#endif
|
||||
#else
|
||||
#ifdef FEATURE_SO2R_SWITCHES
|
||||
#ifdef FEATURE_SO2R_ANTENNAS
|
||||
#define SO2R_DEVICE_NAME "SO2R Mini SA"
|
||||
#else
|
||||
#define SO2R_DEVICE_NAME "SO2R Mini S"
|
||||
#endif
|
||||
#else
|
||||
#ifdef FEATURE_SO2R_ANTENNAS
|
||||
#define SO2R_DEVICE_NAME "SO2R Mini A"
|
||||
#else
|
||||
#define SO2R_DEVICE_NAME "SO2R Mini"
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
Executable
+310
@@ -0,0 +1,310 @@
|
||||
// Initial and hardcoded settings
|
||||
// TinyKeyer by OK1RR
|
||||
#define initial_speed_wpm 30 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 444 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 300 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 90
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 250
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 7
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 1
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(1)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 40 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.178")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095 //sp5iou contributed
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
Executable
+317
@@ -0,0 +1,317 @@
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 20
|
||||
#define LCD_ROWS 4
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 1
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 8
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 40 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.178")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095 //sp5iou contributed
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
|
||||
Executable
+351
@@ -0,0 +1,351 @@
|
||||
// Initial and hardcoded settings
|
||||
#define initial_speed_wpm 26 // "factory default" keyer speed setting
|
||||
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
|
||||
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
|
||||
#define sidetone_hz_limit_low 299
|
||||
#define sidetone_hz_limit_high 2001
|
||||
#define hz_high_beep 1500 // frequency in hertz of high beep
|
||||
#define hz_low_beep 400 // frequency in hertz of low beep
|
||||
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
|
||||
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
|
||||
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
|
||||
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
|
||||
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
|
||||
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
|
||||
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
|
||||
#define wpm_limit_low 5
|
||||
#define wpm_limit_high 60
|
||||
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
|
||||
#define send_buffer_size 150
|
||||
#define default_length_letterspace 3
|
||||
#define default_length_wordspace 7
|
||||
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
|
||||
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
|
||||
#define default_pot_full_scale_reading 1023
|
||||
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
|
||||
#define default_ptt_hang_time_wordspace_units 0.0
|
||||
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
|
||||
#define winkey_command_timeout_ms 5000
|
||||
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
|
||||
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
|
||||
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
|
||||
#define default_memory_repeat_time 3000 // time in milliseconds
|
||||
#define LCD_COLUMNS 16
|
||||
#define LCD_ROWS 2
|
||||
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
|
||||
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
|
||||
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
|
||||
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
|
||||
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
|
||||
#define hell_pixel_microseconds 4025
|
||||
#define program_memory_limit_consec_spaces 1
|
||||
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
|
||||
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
|
||||
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
|
||||
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
|
||||
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
|
||||
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
|
||||
#define default_autospace_timing_factor 2.0 // "factory default" setting
|
||||
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
|
||||
#define potentiometer_always_on 0
|
||||
#define ptt_interlock_check_every_ms 100
|
||||
#define ptt_interlock_active_state HIGH
|
||||
#define unknown_cw_character '*'
|
||||
#define cli_paddle_echo_on_at_boot 1
|
||||
#define cli_straight_key_echo_on_at_boot 1
|
||||
#define tx_key_dit_and_dah_pins_active_state HIGH
|
||||
#define tx_key_dit_and_dah_pins_inactive_state LOW
|
||||
#define potentiometer_check_interval_ms 0 //=====150
|
||||
#define potentiometer_reading_threshold 1
|
||||
#define default_paddle_interruption_quiet_time_element_lengths 0
|
||||
#define default_wordsworth_wordspace 6
|
||||
#define default_wordsworth_repetition 1
|
||||
#define serial_program_memory_buffer_size 500
|
||||
#define eeprom_write_time_ms 30000
|
||||
|
||||
#ifdef FEATURE_BUTTONS
|
||||
#define analog_buttons_number_of_buttons 4
|
||||
#define analog_buttons_r1 10
|
||||
#define analog_buttons_r2 1
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
|
||||
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
|
||||
#else
|
||||
#define number_of_memories byte(12)
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
#define capacitance_threshold 2
|
||||
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
|
||||
|
||||
#ifdef FEATURE_LED_RING
|
||||
#define led_ring_low_limit 10
|
||||
#define led_ring_high_limit 50
|
||||
#endif //FEATURE_LED_RING
|
||||
|
||||
#ifdef FEATURE_QLF
|
||||
#define qlf_dit_max 125
|
||||
#define qlf_dit_min 75
|
||||
#define qlf_dah_max 200
|
||||
#define qlf_dah_min 100
|
||||
#define qlf_on_by_default 0
|
||||
#endif //FEATURE_QLF
|
||||
|
||||
|
||||
#ifdef FEATURE_WINKEY_EMULATION
|
||||
#if defined(OPTION_WINKEY_UCXLOG_9600_BAUD) || defined(FEATURE_SO2R_BASE)
|
||||
#define WINKEY_DEFAULT_BAUD 9600
|
||||
#else
|
||||
#define WINKEY_DEFAULT_BAUD 1200
|
||||
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD || FEATURE_SO2R_BASE
|
||||
// alter these below to map alternate sidetones for Winkey interface protocol emulation
|
||||
#ifdef OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 3759
|
||||
#define WINKEY_SIDETONE_2 1879
|
||||
#define WINKEY_SIDETONE_3 1252
|
||||
#define WINKEY_SIDETONE_4 940
|
||||
#define WINKEY_SIDETONE_5 752
|
||||
#define WINKEY_SIDETONE_6 625
|
||||
#define WINKEY_SIDETONE_7 535
|
||||
#define WINKEY_SIDETONE_8 469
|
||||
#define WINKEY_SIDETONE_9 417
|
||||
#define WINKEY_SIDETONE_10 375
|
||||
#else //OPTION_WINKEY_2_SUPPORT
|
||||
#define WINKEY_SIDETONE_1 4000
|
||||
#define WINKEY_SIDETONE_2 2000
|
||||
#define WINKEY_SIDETONE_3 1333
|
||||
#define WINKEY_SIDETONE_4 1000
|
||||
#define WINKEY_SIDETONE_5 800
|
||||
#define WINKEY_SIDETONE_6 666
|
||||
#define WINKEY_SIDETONE_7 571
|
||||
#define WINKEY_SIDETONE_8 500
|
||||
#define WINKEY_SIDETONE_9 444
|
||||
#define WINKEY_SIDETONE_10 400
|
||||
#endif //OPTION_WINKEY_2_SUPPORT
|
||||
|
||||
#define WINKEY_1_REPORT_VERSION_NUMBER 10
|
||||
#define WINKEY_2_REPORT_VERSION_NUMBER 23
|
||||
|
||||
// alter these to map to alternate hang time wordspace units
|
||||
#define WINKEY_HANG_TIME_1_0 1.0
|
||||
#define WINKEY_HANG_TIME_1_33 1.33
|
||||
#define WINKEY_HANG_TIME_1_66 1.66
|
||||
#define WINKEY_HANG_TIME_2_0 2.0
|
||||
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
|
||||
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
|
||||
|
||||
#endif //FEATURE_WINKEY_EMULATION
|
||||
|
||||
|
||||
|
||||
#define PRIMARY_SERIAL_PORT &Serial
|
||||
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
|
||||
|
||||
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
|
||||
#define SECONDARY_SERIAL_PORT &Serial1
|
||||
#define SECONDARY_SERIAL_PORT_BAUD 115200
|
||||
#endif
|
||||
|
||||
|
||||
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
|
||||
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
|
||||
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
|
||||
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
|
||||
|
||||
#define STRAIGHT_KEY_ACTIVE_STATE LOW
|
||||
|
||||
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
|
||||
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
|
||||
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
|
||||
|
||||
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
|
||||
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
|
||||
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
|
||||
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
|
||||
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
|
||||
|
||||
#if defined(FEATURE_SLEEP)
|
||||
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
|
||||
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
|
||||
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
|
||||
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
|
||||
#endif
|
||||
|
||||
#if defined(FEATURE_ETHERNET)
|
||||
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
|
||||
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
|
||||
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
|
||||
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
|
||||
#define FEATURE_ETHERNET_DNS {8,8,8,8}
|
||||
|
||||
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
|
||||
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
|
||||
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
|
||||
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
|
||||
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
|
||||
#endif //FEATURE_ETHERNET
|
||||
|
||||
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
|
||||
|
||||
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
|
||||
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
|
||||
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
|
||||
|
||||
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
#define KEYPAD_ROWS 4 //KeyPad Rows
|
||||
#if defined(FEATURE_4x4_KEYPAD)
|
||||
#define KEYPAD_COLS 4 //keypad Columns
|
||||
#else
|
||||
#define KEYPAD_COLS 3
|
||||
#endif
|
||||
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
|
||||
#define mem2 1
|
||||
#define mem3 2
|
||||
#define mem4 3
|
||||
#define mem5 4
|
||||
#define mem6 5
|
||||
#define mem7 6
|
||||
#define mem8 7
|
||||
#define mem9 8
|
||||
#define mem10 9
|
||||
#define mem11 10
|
||||
#define mem12 11
|
||||
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
|
||||
|
||||
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
|
||||
|
||||
#define sd_card_spi_ss_line 4
|
||||
|
||||
|
||||
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
|
||||
|
||||
// For V1.1 board use these values
|
||||
#define dfrobot_btnRIGHT_analog 50
|
||||
#define dfrobot_btnUP_analog 250
|
||||
#define dfrobot_btnDOWN_analog 450
|
||||
#define dfrobot_btnLEFT_analog 650
|
||||
#define dfrobot_btnSELECT_analog 850
|
||||
|
||||
// For V1.0 board use these values
|
||||
// #define dfrobot_btnRIGHT_analog 50
|
||||
// #define dfrobot_btnUP_analog 195
|
||||
// #define dfrobot_btnDOWN_analog 380
|
||||
// #define dfrobot_btnLEFT_analog 555
|
||||
// #define dfrobot_btnSELECT_analog 790
|
||||
|
||||
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
|
||||
#define dfrobot_btnRIGHT 2
|
||||
#define dfrobot_btnUP 1
|
||||
#define dfrobot_btnDOWN 3
|
||||
#define dfrobot_btnLEFT 4
|
||||
#define dfrobot_btnSELECT 0
|
||||
#define dfrobot_btnNONE 255 // do not change
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define sequencer_pins_active_state HIGH
|
||||
#define sequencer_pins_inactive_state LOW
|
||||
#define ptt_line_active_state HIGH
|
||||
#define ptt_line_inactive_state LOW
|
||||
#define tx_key_line_active_state HIGH
|
||||
#define tx_key_line_inactive_state LOW
|
||||
#define ptt_input_pin_active_state LOW
|
||||
#define ptt_input_pin_inactive_state HIGH
|
||||
#define tx_inhibit_pin_active_state LOW
|
||||
#define tx_inhibit_pin_inactive_state HIGH
|
||||
#define tx_pause_pin_active_state LOW
|
||||
#define tx_pause_pin_inactive_state HIGH
|
||||
#define sidetone_line_active_state HIGH
|
||||
#define sidetone_line_inactive_state LOW
|
||||
|
||||
#if defined(ARDUINO_MAPLE_MINI)
|
||||
#define button_value_factor 4095
|
||||
#else
|
||||
#define button_value_factor 1023
|
||||
#endif
|
||||
|
||||
#define farnsworth_timing_calibration 1.15
|
||||
|
||||
#define sidetone_volume_low_limit 10
|
||||
#define sidetone_volume_high_limit 500
|
||||
|
||||
#ifdef FEATURE_SO2R_BASE
|
||||
#ifdef FEATURE_POTENTIOMETER
|
||||
#ifdef FEATURE_SO2R_SWITCHES
|
||||
#ifdef FEATURE_SO2R_ANTENNAS
|
||||
#define SO2R_DEVICE_NAME "SO2R Mini PSA"
|
||||
#else
|
||||
#define SO2R_DEVICE_NAME "SO2R Mini PS"
|
||||
#endif
|
||||
#else
|
||||
#ifdef FEATURE_SO2R_ANTENNAS
|
||||
#define SO2R_DEVICE_NAME "SO2R Mini PA"
|
||||
#else
|
||||
#define SO2R_DEVICE_NAME "SO2R Mini P"
|
||||
#endif
|
||||
#endif
|
||||
#else
|
||||
#ifdef FEATURE_SO2R_SWITCHES
|
||||
#ifdef FEATURE_SO2R_ANTENNAS
|
||||
#define SO2R_DEVICE_NAME "SO2R Mini SA"
|
||||
#else
|
||||
#define SO2R_DEVICE_NAME "SO2R Mini S"
|
||||
#endif
|
||||
#else
|
||||
#ifdef FEATURE_SO2R_ANTENNAS
|
||||
#define SO2R_DEVICE_NAME "SO2R Mini A"
|
||||
#else
|
||||
#define SO2R_DEVICE_NAME "SO2R Mini"
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
|
||||
|
||||
#define command_mode_acknowledgement_character 'E'
|
||||
|
||||
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
|
||||
#define command_a_iambic_a "A"
|
||||
#define command_b_iambic_b "B"
|
||||
#define command_c_single_paddle "SINGLE"
|
||||
#define command_d_ultimatic "ULT"
|
||||
#define command_h_weight_dit_dah_ratio_default "R"
|
||||
#define command_i_tx_on "TX ON"
|
||||
#define command_i_tx_off "TX OFF"
|
||||
#define command_k_dit_dah_buffers_on "ON"
|
||||
#define command_k_dit_dah_buffers_off "OFF"
|
||||
#define command_n_paddle_reverse "REV"
|
||||
#define command_n_paddle_normal "NORM"
|
||||
#define command_o_sidetone_off "ST OFF"
|
||||
#define command_o_sidetone_paddle_only "ST PD ONLY"
|
||||
#define command_o_sidetone_on "ST ON"
|
||||
#define command_t_tune_mode "TUNE"
|
||||
#define command_v_potentiometer_on "POT ON"
|
||||
#define command_v_potentiometer_off "POT OFF"
|
||||
|
||||
#define command_error "ERR"
|
||||
|
||||
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
|
||||
|
||||
Executable
+39
@@ -0,0 +1,39 @@
|
||||
/* keyer_stm32fduino.h
|
||||
|
||||
|
||||
Use this file to enables clean compilation using the STM32duino board support for STM32 ARM
|
||||
processors. This requires the installation of https://github.com/rogerclarkmelbourne/Arduino_STM32
|
||||
|
||||
For more information about STM32duino visit the primary support forum: http://www.stm32duino.com/
|
||||
|
||||
*/
|
||||
|
||||
void initialize_pins(void);
|
||||
void initialize_keyer_state(void);
|
||||
void initialize_potentiometer(void);
|
||||
void initialize_rotary_encoder(void);
|
||||
void initialize_default_modes(void);
|
||||
void initialize_watchdog(void);
|
||||
void initialize_ethernet_variables(void);
|
||||
void check_eeprom_for_initialization(void);
|
||||
void check_for_beacon_mode(void);
|
||||
void check_for_debug_modes(void);
|
||||
void initialize_analog_button_array(void);
|
||||
void initialize_serial_ports(void);
|
||||
void initialize_ps2_keyboard(void);
|
||||
void initialize_usb(void);
|
||||
void initialize_cw_keyboard(void);
|
||||
void initialize_display(void);
|
||||
void initialize_ethernet(void);
|
||||
void initialize_udp(void);
|
||||
void initialize_web_server(void);
|
||||
void initialize_debug_startup(void);
|
||||
|
||||
void check_paddles(void);
|
||||
void service_dit_dah_buffers(void);
|
||||
void service_send_buffer(byte);
|
||||
void check_ptt_tail(void);
|
||||
void check_for_dirty_configuration(void);
|
||||
void tone(uint32_t, uint32_t, uint32_t);
|
||||
void noTone(uint32_t);
|
||||
void serial_status(PRIMARY_SERIAL_CLS*);
|
||||
Executable
+266
@@ -0,0 +1,266 @@
|
||||
// keyer_training_text_czech.h
|
||||
// Czech word list contributed by Martin, OK1RR
|
||||
// English word list originally from gen_cw_words.pl - a program that generates words in a random order,
|
||||
// intended to be used during morse code practice.
|
||||
// Original gen_cw_words.pl code Copyright (C) 2015,2017 Andy Stewart (KB1OIQ)
|
||||
// https://sourceforge.net/projects/kb1oiq-k1ig-wordsworth/
|
||||
|
||||
// two letter word array
|
||||
const char s2_1[] PROGMEM = "DO";
|
||||
const char s2_2[] PROGMEM = "NA";
|
||||
const char s2_3[] PROGMEM = "PO";
|
||||
const char s2_4[] PROGMEM = "MY";
|
||||
const char s2_5[] PROGMEM = "TO";
|
||||
const char s2_6[] PROGMEM = "NE";
|
||||
const char s2_7[] PROGMEM = "VY";
|
||||
const char s2_8[] PROGMEM = "ZE";
|
||||
const char s2_9[] PROGMEM = "VE";
|
||||
const char s2_10[] PROGMEM = "JA";
|
||||
const char s2_11[] PROGMEM = "TY";
|
||||
const char s2_12[] PROGMEM = "BY";
|
||||
const char s2_13[] PROGMEM = "ON";
|
||||
const char s2_14[] PROGMEM = "SE";
|
||||
const char s2_15[] PROGMEM = "AZ";
|
||||
const char s2_16[] PROGMEM = "TU";
|
||||
const char s2_17[] PROGMEM = "TI";
|
||||
const char s2_18[] PROGMEM = "ZA";
|
||||
const char s2_19[] PROGMEM = "CI";
|
||||
const char s2_20[] PROGMEM = "CO";
|
||||
const char s2_21[] PROGMEM = "JI";
|
||||
const char s2_22[] PROGMEM = "MU";
|
||||
const char s2_23[] PROGMEM = "JE";
|
||||
const char s2_24[] PROGMEM = "UZ";
|
||||
const byte s2_size = 24;
|
||||
const char* const s2_table[] PROGMEM =
|
||||
{s2_1,s2_2,s2_3,s2_4,s2_5,s2_6,s2_7,s2_8,s2_9,s2_10,
|
||||
s2_11,s2_12,s2_13,s2_14,s2_15,s2_16,s2_17,s2_18,s2_19,s2_20,
|
||||
s2_21,s2_22,s2_23,s2_24};
|
||||
|
||||
// three letter word array
|
||||
const char s3_1[] PROGMEM = "DVA";
|
||||
const char s3_2[] PROGMEM = "TRI";
|
||||
const char s3_3[] PROGMEM = "MUJ";
|
||||
const char s3_4[] PROGMEM = "NAS";
|
||||
const char s3_5[] PROGMEM = "ONA";
|
||||
const char s3_6[] PROGMEM = "ONI";
|
||||
const char s3_7[] PROGMEM = "ONO";
|
||||
const char s3_8[] PROGMEM = "VAS";
|
||||
const char s3_9[] PROGMEM = "VSE";
|
||||
const char s3_10[] PROGMEM = "POD";
|
||||
const char s3_11[] PROGMEM = "NAD";
|
||||
const char s3_12[] PROGMEM = "KDE";
|
||||
const char s3_13[] PROGMEM = "KDY";
|
||||
const char s3_14[] PROGMEM = "KAM";
|
||||
const char s3_15[] PROGMEM = "KUS";
|
||||
const char s3_16[] PROGMEM = "DEN";
|
||||
const char s3_17[] PROGMEM = "TAM";
|
||||
const char s3_18[] PROGMEM = "DAT";
|
||||
const char s3_19[] PROGMEM = "DAM";
|
||||
const char s3_20[] PROGMEM = "DAS";
|
||||
const char s3_21[] PROGMEM = "MIT";
|
||||
const char s3_22[] PROGMEM = "JIT";
|
||||
const char s3_23[] PROGMEM = "NEZ";
|
||||
const char s3_24[] PROGMEM = "ROK";
|
||||
const char s3_25[] PROGMEM = "PAK";
|
||||
const char s3_26[] PROGMEM = "DIK";
|
||||
const char s3_27[] PROGMEM = "DUM";
|
||||
const char s3_28[] PROGMEM = "PRO";
|
||||
const char s3_29[] PROGMEM = "PRI";
|
||||
const char s3_30[] PROGMEM = "OKO";
|
||||
const char s3_31[] PROGMEM = "CAS";
|
||||
const char s3_32[] PROGMEM = "CAJ";
|
||||
const char s3_33[] PROGMEM = "CIL";
|
||||
const char s3_34[] PROGMEM = "COP";
|
||||
const char s3_35[] PROGMEM = "MUZ";
|
||||
const char s3_36[] PROGMEM = "ASI";
|
||||
const char s3_37[] PROGMEM = "BEZ";
|
||||
const char s3_38[] PROGMEM = "BOJ";
|
||||
const char s3_39[] PROGMEM = "BUH";
|
||||
const byte s3_size = 39;
|
||||
const char* const s3_table[] PROGMEM =
|
||||
{s3_1,s3_2,s3_3,s3_4,s3_5,s3_6,s3_7,s3_8,s3_9,s3_10,
|
||||
s3_11,s3_12,s3_13,s3_14,s3_15,s3_16,s3_17,s3_18,s3_19,s3_20,
|
||||
s3_21,s3_22,s3_23,s3_24,s3_25,s3_26,s3_27,s3_28,s3_29,s3_30,
|
||||
s3_31,s3_32,s3_33,s3_34,s3_35,s3_36,s3_37,s3_38,s3_39};
|
||||
|
||||
// four letter word array
|
||||
const char s4_1[] PROGMEM = "TATO";
|
||||
const char s4_2[] PROGMEM = "TITO";
|
||||
const char s4_3[] PROGMEM = "TOTO";
|
||||
const char s4_4[] PROGMEM = "DOMA";
|
||||
const char s4_5[] PROGMEM = "STAT";
|
||||
const char s4_6[] PROGMEM = "TADY";
|
||||
const char s4_7[] PROGMEM = "DOBA";
|
||||
const char s4_8[] PROGMEM = "TAKE";
|
||||
const char s4_9[] PROGMEM = "PRED";
|
||||
const char s4_10[] PROGMEM = "SVET";
|
||||
const char s4_11[] PROGMEM = "BRZY";
|
||||
const char s4_12[] PROGMEM = "TVUJ";
|
||||
const char s4_13[] PROGMEM = "TATA";
|
||||
const char s4_14[] PROGMEM = "MAMA";
|
||||
const char s4_15[] PROGMEM = "PSIK";
|
||||
const char s4_16[] PROGMEM = "ZENA";
|
||||
const char s4_17[] PROGMEM = "DITE";
|
||||
const char s4_18[] PROGMEM = "DETI";
|
||||
const char s4_19[] PROGMEM = "KONE";
|
||||
const char s4_20[] PROGMEM = "DUHA";
|
||||
const char s4_21[] PROGMEM = "RUKA";
|
||||
const char s4_22[] PROGMEM = "NOHA";
|
||||
const char s4_23[] PROGMEM = "PRST";
|
||||
const char s4_24[] PROGMEM = "POLE";
|
||||
const char s4_25[] PROGMEM = "MORE";
|
||||
const char s4_26[] PROGMEM = "VITR";
|
||||
const char s4_27[] PROGMEM = "MLHA";
|
||||
const char s4_28[] PROGMEM = "VODA";
|
||||
const char s4_29[] PROGMEM = "VAHA";
|
||||
const char s4_30[] PROGMEM = "PIVO";
|
||||
const char s4_31[] PROGMEM = "HRAT";
|
||||
const char s4_32[] PROGMEM = "RADA";
|
||||
const char s4_33[] PROGMEM = "PANI";
|
||||
const byte s4_size = 33;
|
||||
const char* const s4_table[] PROGMEM =
|
||||
{s4_1,s4_2,s4_3,s4_4,s4_5,s4_6,s4_7,s4_8,s4_9,s4_10,
|
||||
s4_11,s4_12,s4_13,s4_14,s4_15,s4_16,s4_17,s4_18,s4_19,s4_20,
|
||||
s4_21,s4_22,s4_23,s4_24,s4_25,s4_26,s4_27,s4_28,s4_29,s4_30,
|
||||
s4_31,s4_32,s4_33};
|
||||
|
||||
|
||||
|
||||
const char name_1[] PROGMEM = "ANDY";
|
||||
const char name_2[] PROGMEM = "JOSEF";
|
||||
const char name_3[] PROGMEM = "JIRI";
|
||||
const char name_4[] PROGMEM = "KAREL";
|
||||
const char name_5[] PROGMEM = "HONZA";
|
||||
const char name_6[] PROGMEM = "FRANTA";
|
||||
const char name_7[] PROGMEM = "PETR";
|
||||
const char name_8[] PROGMEM = "PAVEL";
|
||||
const char name_9[] PROGMEM = "JINDRA";
|
||||
const char name_10[] PROGMEM = "FILIP";
|
||||
const char name_11[] PROGMEM = "MILAN";
|
||||
const char name_12[] PROGMEM = "MARTIN";
|
||||
const char name_13[] PROGMEM = "DAVID";
|
||||
const char name_14[] PROGMEM = "TOMAS";
|
||||
const char name_15[] PROGMEM = "HANKA";
|
||||
const char name_16[] PROGMEM = "SASA";
|
||||
const char name_17[] PROGMEM = "IVAN";
|
||||
const char name_18[] PROGMEM = "BERT";
|
||||
const char name_19[] PROGMEM = "VASEK";
|
||||
const char name_20[] PROGMEM = "ALAN";
|
||||
const char name_21[] PROGMEM = "JIRKA";
|
||||
const char name_22[] PROGMEM = "JERRY";
|
||||
const char name_23[] PROGMEM = "PEPA";
|
||||
const char name_24[] PROGMEM = "JIRINA";
|
||||
const char name_25[] PROGMEM = "RISA";
|
||||
const char name_26[] PROGMEM = "DAN";
|
||||
const char name_27[] PROGMEM = "LUBOS";
|
||||
const char name_28[] PROGMEM = "TONDA";
|
||||
const char name_29[] PROGMEM = "LADA";
|
||||
const char name_30[] PROGMEM = "VLADA";
|
||||
const char name_31[] PROGMEM = "JENDA";
|
||||
const char name_32[] PROGMEM = "CYRIL";
|
||||
const char name_33[] PROGMEM = "BOHOUS";
|
||||
const char name_34[] PROGMEM = "KAMIL";
|
||||
const char name_35[] PROGMEM = "RENE";
|
||||
const char name_36[] PROGMEM = "PATRIK";
|
||||
const char name_37[] PROGMEM = "SIMON";
|
||||
const char name_38[] PROGMEM = "ALEX";
|
||||
const char name_39[] PROGMEM = "LOJZA";
|
||||
const char name_40[] PROGMEM = "MATEJ";
|
||||
const char name_41[] PROGMEM = "FERDA";
|
||||
const char name_42[] PROGMEM = "MARIE";
|
||||
const char name_43[] PROGMEM = "ZDENEK";
|
||||
const char name_44[] PROGMEM = "JULEK";
|
||||
const char name_45[] PROGMEM = "STANDA";
|
||||
const char name_46[] PROGMEM = "SLAVEK";
|
||||
const char name_47[] PROGMEM = "VILDA";
|
||||
const char name_48[] PROGMEM = "VERA";
|
||||
const char name_49[] PROGMEM = "GUSTA";
|
||||
const byte name_size = 49;
|
||||
const char* const name_table[] PROGMEM =
|
||||
{name_1,name_2,name_3,name_4,name_5,name_6,name_7,name_8,name_9,name_10,
|
||||
name_11,name_12,name_13,name_14,name_15,name_16,name_17,name_18,name_19,name_20,
|
||||
name_21,name_22,name_23,name_24,name_25,name_26,name_27,name_28,name_29,name_30,
|
||||
name_31,name_32,name_33,name_34,name_35,name_36,name_37,name_38,name_39,name_40,
|
||||
name_41,name_42,name_43,name_44,name_45,name_46,name_47,name_48,name_49};
|
||||
|
||||
// CW QSO word array
|
||||
const char qso_1[] PROGMEM = "QRL?";
|
||||
const char qso_2[] PROGMEM = "QRM";
|
||||
const char qso_3[] PROGMEM = "QRN";
|
||||
const char qso_4[] PROGMEM = "QRS";
|
||||
const char qso_5[] PROGMEM = "QRT";
|
||||
const char qso_6[] PROGMEM = "QRZ";
|
||||
const char qso_7[] PROGMEM = "QSL";
|
||||
const char qso_8[] PROGMEM = "QSO";
|
||||
const char qso_9[] PROGMEM = "QSY";
|
||||
const char qso_10[] PROGMEM = "QTH";
|
||||
const char qso_11[] PROGMEM = "QRX";
|
||||
const char qso_12[] PROGMEM = "ABT";
|
||||
const char qso_13[] PROGMEM = "AGE";
|
||||
const char qso_14[] PROGMEM = "ANT";
|
||||
const char qso_15[] PROGMEM = "BEAM";
|
||||
const char qso_16[] PROGMEM = "BK";
|
||||
const char qso_17[] PROGMEM = "QRP";
|
||||
const char qso_18[] PROGMEM = "AGN";
|
||||
const char qso_19[] PROGMEM = "C";
|
||||
const char qso_20[] PROGMEM = "CL";
|
||||
const char qso_21[] PROGMEM = "CPY";
|
||||
const char qso_22[] PROGMEM = "CQ";
|
||||
const char qso_23[] PROGMEM = "CUL";
|
||||
const char qso_24[] PROGMEM = "DE";
|
||||
const char qso_25[] PROGMEM = "DX";
|
||||
const char qso_26[] PROGMEM = "ES";
|
||||
const char qso_27[] PROGMEM = "EL";
|
||||
const char qso_28[] PROGMEM = "FB";
|
||||
const char qso_29[] PROGMEM = "HI";
|
||||
const char qso_30[] PROGMEM = "HW?";
|
||||
const char qso_31[] PROGMEM = "HR";
|
||||
const char qso_32[] PROGMEM = "K";
|
||||
const char qso_33[] PROGMEM = "=";
|
||||
const char qso_34[] PROGMEM = "<";
|
||||
const char qso_35[] PROGMEM = "%";
|
||||
const char qso_36[] PROGMEM = ">";
|
||||
const char qso_37[] PROGMEM = "LID";
|
||||
const char qso_38[] PROGMEM = "LOOP";
|
||||
const char qso_39[] PROGMEM = "NAME";
|
||||
const char qso_40[] PROGMEM = "OM";
|
||||
const char qso_41[] PROGMEM = "OP";
|
||||
const char qso_42[] PROGMEM = "PKT";
|
||||
const char qso_43[] PROGMEM = "PSE";
|
||||
const char qso_44[] PROGMEM = "R";
|
||||
const char qso_45[] PROGMEM = "RPT";
|
||||
const char qso_46[] PROGMEM = "RST";
|
||||
const char qso_47[] PROGMEM = "RIG";
|
||||
const char qso_48[] PROGMEM = "TEMP";
|
||||
const char qso_49[] PROGMEM = "TEST";
|
||||
const char qso_50[] PROGMEM = "TU";
|
||||
const char qso_51[] PROGMEM = "TKS";
|
||||
const char qso_52[] PROGMEM = "TNX";
|
||||
const char qso_53[] PROGMEM = "VERT";
|
||||
const char qso_54[] PROGMEM = "WATT";
|
||||
const char qso_55[] PROGMEM = "WX";
|
||||
const char qso_56[] PROGMEM = "YAGI";
|
||||
const char qso_57[] PROGMEM = "YRS";
|
||||
const char qso_58[] PROGMEM = "73";
|
||||
const char qso_59[] PROGMEM = "88";
|
||||
const char qso_60[] PROGMEM = "?";
|
||||
const char qso_61[] PROGMEM = "/";
|
||||
const char qso_62[] PROGMEM = "VY";
|
||||
const char qso_63[] PROGMEM = "YL";
|
||||
const char qso_64[] PROGMEM = "XYL";
|
||||
const char qso_65[] PROGMEM = "MY";
|
||||
const char qso_66[] PROGMEM = "UR";
|
||||
const char qso_67[] PROGMEM = "IS";
|
||||
const char qso_68[] PROGMEM = "QSB";
|
||||
const char qso_69[] PROGMEM = "QRQ";
|
||||
const char qso_70[] PROGMEM = "HVE";
|
||||
const char qso_71[] PROGMEM = "HPE";
|
||||
const char qso_72[] PROGMEM = "BEST";
|
||||
const byte qso_size = 72;
|
||||
const char* const qso_table[] PROGMEM =
|
||||
{qso_1,qso_2,qso_3,qso_4,qso_5,qso_6,qso_7,qso_8,qso_9,qso_10,qso_11,qso_12,qso_13,qso_14,qso_15,qso_16,qso_17,qso_18,qso_19,qso_20,
|
||||
qso_21,qso_22,qso_23,qso_24,qso_25,qso_26,qso_27,qso_28,qso_29,qso_30,qso_31,qso_32,qso_33,qso_34,qso_35,qso_36,qso_37,qso_38,qso_39,qso_40,
|
||||
qso_41,qso_42,qso_43,qso_44,qso_45,qso_46,qso_47,qso_48,qso_49,qso_50,qso_51,qso_52,qso_53,qso_54,qso_55,qso_56,qso_57,qso_58,qso_59,qso_60,
|
||||
qso_61,qso_62,qso_63,qso_64,qso_65,qso_66,qso_67,qso_68,qso_69,qso_70,qso_71,qso_72};
|
||||
|
||||
|
||||
Executable
+264
@@ -0,0 +1,264 @@
|
||||
// English word list originally from gen_cw_words.pl - a program that generates words in a random order,
|
||||
// intended to be used during morse code practice.
|
||||
// Original gen_cw_words.pl code Copyright (C) 2015,2017 Andy Stewart (KB1OIQ)
|
||||
// https://sourceforge.net/projects/kb1oiq-k1ig-wordsworth/
|
||||
|
||||
// two letter word array
|
||||
const char s2_1[] PROGMEM = "TO";
|
||||
const char s2_2[] PROGMEM = "IN";
|
||||
const char s2_3[] PROGMEM = "IT";
|
||||
const char s2_4[] PROGMEM = "IS";
|
||||
const char s2_5[] PROGMEM = "BE";
|
||||
const char s2_6[] PROGMEM = "AS";
|
||||
const char s2_7[] PROGMEM = "AT";
|
||||
const char s2_8[] PROGMEM = "SO";
|
||||
const char s2_9[] PROGMEM = "WE";
|
||||
const char s2_10[] PROGMEM = "HE";
|
||||
const char s2_11[] PROGMEM = "BY";
|
||||
const char s2_12[] PROGMEM = "OR";
|
||||
const char s2_13[] PROGMEM = "ON";
|
||||
const char s2_14[] PROGMEM = "DO";
|
||||
const char s2_15[] PROGMEM = "IF";
|
||||
const char s2_16[] PROGMEM = "ME";
|
||||
const char s2_17[] PROGMEM = "MY";
|
||||
const char s2_18[] PROGMEM = "UP";
|
||||
const char s2_19[] PROGMEM = "AN";
|
||||
const char s2_20[] PROGMEM = "GO";
|
||||
const char s2_21[] PROGMEM = "NO";
|
||||
const char s2_22[] PROGMEM = "US";
|
||||
const char s2_23[] PROGMEM = "AM";
|
||||
const char s2_24[] PROGMEM = "OF";
|
||||
const byte s2_size = 24;
|
||||
const char* const s2_table[] PROGMEM =
|
||||
{s2_1,s2_2,s2_3,s2_4,s2_5,s2_6,s2_7,s2_8,s2_9,s2_10,
|
||||
s2_11,s2_12,s2_13,s2_14,s2_15,s2_16,s2_17,s2_18,s2_19,s2_20,
|
||||
s2_21,s2_22,s2_23,s2_24};
|
||||
|
||||
// three letter word array
|
||||
const char s3_1[] PROGMEM = "THE";
|
||||
const char s3_2[] PROGMEM = "AND";
|
||||
const char s3_3[] PROGMEM = "FOR";
|
||||
const char s3_4[] PROGMEM = "ARE";
|
||||
const char s3_5[] PROGMEM = "BUT";
|
||||
const char s3_6[] PROGMEM = "NOT";
|
||||
const char s3_7[] PROGMEM = "YOU";
|
||||
const char s3_8[] PROGMEM = "ALL";
|
||||
const char s3_9[] PROGMEM = "ANY";
|
||||
const char s3_10[] PROGMEM = "CAN";
|
||||
const char s3_11[] PROGMEM = "HAD";
|
||||
const char s3_12[] PROGMEM = "HER";
|
||||
const char s3_13[] PROGMEM = "WAS";
|
||||
const char s3_14[] PROGMEM = "ONE";
|
||||
const char s3_15[] PROGMEM = "OUR";
|
||||
const char s3_16[] PROGMEM = "OUT";
|
||||
const char s3_17[] PROGMEM = "DAY";
|
||||
const char s3_18[] PROGMEM = "GET";
|
||||
const char s3_19[] PROGMEM = "HAS";
|
||||
const char s3_20[] PROGMEM = "HIM";
|
||||
const char s3_21[] PROGMEM = "HIS";
|
||||
const char s3_22[] PROGMEM = "HOW";
|
||||
const char s3_23[] PROGMEM = "MAN";
|
||||
const char s3_24[] PROGMEM = "NEW";
|
||||
const char s3_25[] PROGMEM = "NOW";
|
||||
const char s3_26[] PROGMEM = "OLD";
|
||||
const char s3_27[] PROGMEM = "SEE";
|
||||
const char s3_28[] PROGMEM = "TWO";
|
||||
const char s3_29[] PROGMEM = "WAY";
|
||||
const char s3_30[] PROGMEM = "WHO";
|
||||
const char s3_31[] PROGMEM = "BOY";
|
||||
const char s3_32[] PROGMEM = "DID";
|
||||
const char s3_33[] PROGMEM = "ITS";
|
||||
const char s3_34[] PROGMEM = "LET";
|
||||
const char s3_35[] PROGMEM = "PUT";
|
||||
const char s3_36[] PROGMEM = "SAY";
|
||||
const char s3_37[] PROGMEM = "SHE";
|
||||
const char s3_38[] PROGMEM = "TOO";
|
||||
const char s3_39[] PROGMEM = "USE";
|
||||
const byte s3_size = 39;
|
||||
const char* const s3_table[] PROGMEM =
|
||||
{s3_1,s3_2,s3_3,s3_4,s3_5,s3_6,s3_7,s3_8,s3_9,s3_10,
|
||||
s3_11,s3_12,s3_13,s3_14,s3_15,s3_16,s3_17,s3_18,s3_19,s3_20,
|
||||
s3_21,s3_22,s3_23,s3_24,s3_25,s3_26,s3_27,s3_28,s3_29,s3_30,
|
||||
s3_31,s3_32,s3_33,s3_34,s3_35,s3_36,s3_37,s3_38,s3_39};
|
||||
|
||||
// four letter word array
|
||||
const char s4_1[] PROGMEM = "THAT";
|
||||
const char s4_2[] PROGMEM = "WITH";
|
||||
const char s4_3[] PROGMEM = "HAVE";
|
||||
const char s4_4[] PROGMEM = "THIS";
|
||||
const char s4_5[] PROGMEM = "WILL";
|
||||
const char s4_6[] PROGMEM = "YOUR";
|
||||
const char s4_7[] PROGMEM = "FROM";
|
||||
const char s4_8[] PROGMEM = "THEY";
|
||||
const char s4_9[] PROGMEM = "KNOW";
|
||||
const char s4_10[] PROGMEM = "WANT";
|
||||
const char s4_11[] PROGMEM = "BEEN";
|
||||
const char s4_12[] PROGMEM = "GOOD";
|
||||
const char s4_13[] PROGMEM = "MUCH";
|
||||
const char s4_14[] PROGMEM = "SOME";
|
||||
const char s4_15[] PROGMEM = "TIME";
|
||||
const char s4_16[] PROGMEM = "VERY";
|
||||
const char s4_17[] PROGMEM = "WHEN";
|
||||
const char s4_18[] PROGMEM = "COME";
|
||||
const char s4_19[] PROGMEM = "HERE";
|
||||
const char s4_20[] PROGMEM = "JUST";
|
||||
const char s4_21[] PROGMEM = "LIKE";
|
||||
const char s4_22[] PROGMEM = "LONG";
|
||||
const char s4_23[] PROGMEM = "MAKE";
|
||||
const char s4_24[] PROGMEM = "MANY";
|
||||
const char s4_25[] PROGMEM = "MORE";
|
||||
const char s4_26[] PROGMEM = "ONLY";
|
||||
const char s4_27[] PROGMEM = "OVER";
|
||||
const char s4_28[] PROGMEM = "SUCH";
|
||||
const char s4_29[] PROGMEM = "TAKE";
|
||||
const char s4_30[] PROGMEM = "THAN";
|
||||
const char s4_31[] PROGMEM = "THEM";
|
||||
const char s4_32[] PROGMEM = "WELL";
|
||||
const char s4_33[] PROGMEM = "WERE";
|
||||
const byte s4_size = 33;
|
||||
const char* const s4_table[] PROGMEM =
|
||||
{s4_1,s4_2,s4_3,s4_4,s4_5,s4_6,s4_7,s4_8,s4_9,s4_10,
|
||||
s4_11,s4_12,s4_13,s4_14,s4_15,s4_16,s4_17,s4_18,s4_19,s4_20,
|
||||
s4_21,s4_22,s4_23,s4_24,s4_25,s4_26,s4_27,s4_28,s4_29,s4_30,
|
||||
s4_31,s4_32,s4_33};
|
||||
|
||||
|
||||
|
||||
const char name_1[] PROGMEM = "ANDY";
|
||||
const char name_2[] PROGMEM = "BOB";
|
||||
const char name_3[] PROGMEM = "BILL";
|
||||
const char name_4[] PROGMEM = "JOHN";
|
||||
const char name_5[] PROGMEM = "GEORGE";
|
||||
const char name_6[] PROGMEM = "TOM";
|
||||
const char name_7[] PROGMEM = "RICH";
|
||||
const char name_8[] PROGMEM = "STEVE";
|
||||
const char name_9[] PROGMEM = "TIM";
|
||||
const char name_10[] PROGMEM = "SCOTT";
|
||||
const char name_11[] PROGMEM = "FRED";
|
||||
const char name_12[] PROGMEM = "DOUG";
|
||||
const char name_13[] PROGMEM = "DAVE";
|
||||
const char name_14[] PROGMEM = "GARY";
|
||||
const char name_15[] PROGMEM = "JIM";
|
||||
const char name_16[] PROGMEM = "CHRIS";
|
||||
const char name_17[] PROGMEM = "MIKE";
|
||||
const char name_18[] PROGMEM = "ED";
|
||||
const char name_19[] PROGMEM = "AL";
|
||||
const char name_20[] PROGMEM = "ALAN";
|
||||
const char name_21[] PROGMEM = "RON";
|
||||
const char name_22[] PROGMEM = "JERRY";
|
||||
const char name_23[] PROGMEM = "ART";
|
||||
const char name_24[] PROGMEM = "GREG";
|
||||
const char name_25[] PROGMEM = "RICK";
|
||||
const char name_26[] PROGMEM = "DAN";
|
||||
const char name_27[] PROGMEM = "KEN";
|
||||
const char name_28[] PROGMEM = "TONY";
|
||||
const char name_29[] PROGMEM = "CARL";
|
||||
const char name_30[] PROGMEM = "PHIL";
|
||||
const char name_31[] PROGMEM = "JOE";
|
||||
const char name_32[] PROGMEM = "JON";
|
||||
const char name_33[] PROGMEM = "LARRY";
|
||||
const char name_34[] PROGMEM = "DON";
|
||||
const char name_35[] PROGMEM = "DICK";
|
||||
const char name_36[] PROGMEM = "PAUL";
|
||||
const char name_37[] PROGMEM = "SERGE";
|
||||
const char name_38[] PROGMEM = "ALEX";
|
||||
const char name_39[] PROGMEM = "VLAD";
|
||||
const char name_40[] PROGMEM = "JEFF";
|
||||
const char name_41[] PROGMEM = "CHAS";
|
||||
const char name_42[] PROGMEM = "JACK";
|
||||
const char name_43[] PROGMEM = "GENE";
|
||||
const char name_44[] PROGMEM = "BERT";
|
||||
const char name_45[] PROGMEM = "OLEG";
|
||||
const char name_46[] PROGMEM = "PETE";
|
||||
const char name_47[] PROGMEM = "PAT";
|
||||
const char name_48[] PROGMEM = "JUAN";
|
||||
const char name_49[] PROGMEM = "GUS";
|
||||
const byte name_size = 49;
|
||||
const char* const name_table[] PROGMEM =
|
||||
{name_1,name_2,name_3,name_4,name_5,name_6,name_7,name_8,name_9,name_10,
|
||||
name_11,name_12,name_13,name_14,name_15,name_16,name_17,name_18,name_19,name_20,
|
||||
name_21,name_22,name_23,name_24,name_25,name_26,name_27,name_28,name_29,name_30,
|
||||
name_31,name_32,name_33,name_34,name_35,name_36,name_37,name_38,name_39,name_40,
|
||||
name_41,name_42,name_43,name_44,name_45,name_46,name_47,name_48,name_49};
|
||||
|
||||
// CW QSO word array
|
||||
const char qso_1[] PROGMEM = "QRL?";
|
||||
const char qso_2[] PROGMEM = "QRM";
|
||||
const char qso_3[] PROGMEM = "QRN";
|
||||
const char qso_4[] PROGMEM = "QRS";
|
||||
const char qso_5[] PROGMEM = "QRT";
|
||||
const char qso_6[] PROGMEM = "QRZ";
|
||||
const char qso_7[] PROGMEM = "QSL";
|
||||
const char qso_8[] PROGMEM = "QSO";
|
||||
const char qso_9[] PROGMEM = "QSY";
|
||||
const char qso_10[] PROGMEM = "QTH";
|
||||
const char qso_11[] PROGMEM = "QRX";
|
||||
const char qso_12[] PROGMEM = "ABT";
|
||||
const char qso_13[] PROGMEM = "AGE";
|
||||
const char qso_14[] PROGMEM = "ANT";
|
||||
const char qso_15[] PROGMEM = "BEAM";
|
||||
const char qso_16[] PROGMEM = "BK";
|
||||
const char qso_17[] PROGMEM = "QRP";
|
||||
const char qso_18[] PROGMEM = "AGN";
|
||||
const char qso_19[] PROGMEM = "C";
|
||||
const char qso_20[] PROGMEM = "CL";
|
||||
const char qso_21[] PROGMEM = "CPY";
|
||||
const char qso_22[] PROGMEM = "CQ";
|
||||
const char qso_23[] PROGMEM = "CUL";
|
||||
const char qso_24[] PROGMEM = "DE";
|
||||
const char qso_25[] PROGMEM = "DX";
|
||||
const char qso_26[] PROGMEM = "ES";
|
||||
const char qso_27[] PROGMEM = "EL";
|
||||
const char qso_28[] PROGMEM = "FB";
|
||||
const char qso_29[] PROGMEM = "HI";
|
||||
const char qso_30[] PROGMEM = "HW?";
|
||||
const char qso_31[] PROGMEM = "HR";
|
||||
const char qso_32[] PROGMEM = "K";
|
||||
const char qso_33[] PROGMEM = "=";
|
||||
const char qso_34[] PROGMEM = "<";
|
||||
const char qso_35[] PROGMEM = "%";
|
||||
const char qso_36[] PROGMEM = ">";
|
||||
const char qso_37[] PROGMEM = "LID";
|
||||
const char qso_38[] PROGMEM = "LOOP";
|
||||
const char qso_39[] PROGMEM = "NAME";
|
||||
const char qso_40[] PROGMEM = "OM";
|
||||
const char qso_41[] PROGMEM = "OP";
|
||||
const char qso_42[] PROGMEM = "PKT";
|
||||
const char qso_43[] PROGMEM = "PSE";
|
||||
const char qso_44[] PROGMEM = "R";
|
||||
const char qso_45[] PROGMEM = "RPT";
|
||||
const char qso_46[] PROGMEM = "RST";
|
||||
const char qso_47[] PROGMEM = "RIG";
|
||||
const char qso_48[] PROGMEM = "TEMP";
|
||||
const char qso_49[] PROGMEM = "TEST";
|
||||
const char qso_50[] PROGMEM = "TU";
|
||||
const char qso_51[] PROGMEM = "TKS";
|
||||
const char qso_52[] PROGMEM = "TNX";
|
||||
const char qso_53[] PROGMEM = "VERT";
|
||||
const char qso_54[] PROGMEM = "WATT";
|
||||
const char qso_55[] PROGMEM = "WX";
|
||||
const char qso_56[] PROGMEM = "YAGI";
|
||||
const char qso_57[] PROGMEM = "YRS";
|
||||
const char qso_58[] PROGMEM = "73";
|
||||
const char qso_59[] PROGMEM = "88";
|
||||
const char qso_60[] PROGMEM = "?";
|
||||
const char qso_61[] PROGMEM = "/";
|
||||
const char qso_62[] PROGMEM = "VY";
|
||||
const char qso_63[] PROGMEM = "YL";
|
||||
const char qso_64[] PROGMEM = "XYL";
|
||||
const char qso_65[] PROGMEM = "MY";
|
||||
const char qso_66[] PROGMEM = "UR";
|
||||
const char qso_67[] PROGMEM = "IS";
|
||||
const char qso_68[] PROGMEM = "QSB";
|
||||
const char qso_69[] PROGMEM = "QRQ";
|
||||
const char qso_70[] PROGMEM = "HVE";
|
||||
const char qso_71[] PROGMEM = "HPE";
|
||||
const char qso_72[] PROGMEM = "BEST";
|
||||
const byte qso_size = 72;
|
||||
const char* const qso_table[] PROGMEM =
|
||||
{qso_1,qso_2,qso_3,qso_4,qso_5,qso_6,qso_7,qso_8,qso_9,qso_10,qso_11,qso_12,qso_13,qso_14,qso_15,qso_16,qso_17,qso_18,qso_19,qso_20,
|
||||
qso_21,qso_22,qso_23,qso_24,qso_25,qso_26,qso_27,qso_28,qso_29,qso_30,qso_31,qso_32,qso_33,qso_34,qso_35,qso_36,qso_37,qso_38,qso_39,qso_40,
|
||||
qso_41,qso_42,qso_43,qso_44,qso_45,qso_46,qso_47,qso_48,qso_49,qso_50,qso_51,qso_52,qso_53,qso_54,qso_55,qso_56,qso_57,qso_58,qso_59,qso_60,
|
||||
qso_61,qso_62,qso_63,qso_64,qso_65,qso_66,qso_67,qso_68,qso_69,qso_70,qso_71,qso_72};
|
||||
|
||||
|
||||
Executable
+248
@@ -0,0 +1,248 @@
|
||||
// keyer_training_text_norsk.h
|
||||
// Norwegian word list contributed by Karl, LA3FY
|
||||
// English word list originally from gen_cw_words.pl - a program that generates words in a random order,
|
||||
// intended to be used during morse code practice.
|
||||
// Original gen_cw_words.pl code Copyright (C) 2015,2017 Andy Stewart (KB1OIQ)
|
||||
// https://sourceforge.net/projects/kb1oiq-k1ig-wordsworth/
|
||||
|
||||
// two letter word array
|
||||
const char s2_1[] PROGMEM = "OG";
|
||||
const char s2_2[] PROGMEM = "PÅ";
|
||||
const char s2_3[] PROGMEM = "GÅ";
|
||||
const char s2_4[] PROGMEM = "ER";
|
||||
const char s2_5[] PROGMEM = "EN";
|
||||
const char s2_6[] PROGMEM = "AV";
|
||||
const char s2_7[] PROGMEM = "AT";
|
||||
const char s2_8[] PROGMEM = "DE";
|
||||
const char s2_9[] PROGMEM = "ET";
|
||||
const char s2_10[] PROGMEM = "SÅ";
|
||||
const char s2_11[] PROGMEM = "VI";
|
||||
const char s2_12[] PROGMEM = "DU";
|
||||
const char s2_13[] PROGMEM = "DA";
|
||||
const char s2_14[] PROGMEM = "UT";
|
||||
const char s2_15[] PROGMEM = "SA";
|
||||
const char s2_16[] PROGMEM = "NÅ";
|
||||
const char s2_17[] PROGMEM = "NY";
|
||||
const char s2_18[] PROGMEM = "HA";
|
||||
const char s2_19[] PROGMEM = "ÅR";
|
||||
const char s2_20[] PROGMEM = "FÅ";
|
||||
const char s2_21[] PROGMEM = "TO";
|
||||
const char s2_22[] PROGMEM = "SE";
|
||||
const byte s2_size = 22;
|
||||
const char* const s2_table[] PROGMEM =
|
||||
{s2_1,s2_2,s2_3,s2_4,s2_5,s2_6,s2_7,s2_8,s2_9,s2_10,
|
||||
s2_11,s2_12,s2_13,s2_14,s2_15,s2_16,s2_17,s2_18,s2_19,s2_20,
|
||||
s2_21,s2_22};
|
||||
|
||||
// three letter word array
|
||||
const char s3_1[] PROGMEM = "DET";
|
||||
const char s3_2[] PROGMEM = "SOM";
|
||||
const char s3_3[] PROGMEM = "HAN";
|
||||
const char s3_4[] PROGMEM = "FOR";
|
||||
const char s3_5[] PROGMEM = "MED";
|
||||
const char s3_6[] PROGMEM = "VAR";
|
||||
const char s3_7[] PROGMEM = "DEN";
|
||||
const char s3_8[] PROGMEM = "HAR";
|
||||
const char s3_9[] PROGMEM = "JEG";
|
||||
const char s3_10[] PROGMEM = "MEN";
|
||||
const char s3_11[] PROGMEM = "SEG";
|
||||
const char s3_12[] PROGMEM = "HUN";
|
||||
const char s3_13[] PROGMEM = "VÅR";
|
||||
const char s3_14[] PROGMEM = "FRA";
|
||||
const char s3_15[] PROGMEM = "KAN";
|
||||
const char s3_16[] PROGMEM = "BLE";
|
||||
const char s3_17[] PROGMEM = "VIL";
|
||||
const char s3_18[] PROGMEM = "HAM";
|
||||
const char s3_19[] PROGMEM = "VED";
|
||||
const char s3_20[] PROGMEM = "NOE";
|
||||
const char s3_21[] PROGMEM = "MEG";
|
||||
const char s3_22[] PROGMEM = "MOT";
|
||||
const char s3_23[] PROGMEM = "OPP";
|
||||
const char s3_24[] PROGMEM = "DER";
|
||||
const char s3_25[] PROGMEM = "NÅR";
|
||||
const char s3_26[] PROGMEM = "INN";
|
||||
const char s3_27[] PROGMEM = "DEM";
|
||||
const char s3_28[] PROGMEM = "SIN";
|
||||
const char s3_29[] PROGMEM = "KOM";
|
||||
const char s3_30[] PROGMEM = "ENN";
|
||||
const char s3_31[] PROGMEM = "BLI";
|
||||
const char s3_32[] PROGMEM = "FØR";
|
||||
const char s3_33[] PROGMEM = "GÅR";
|
||||
const char s3_34[] PROGMEM = "HER";
|
||||
const char s3_35[] PROGMEM = "MER";
|
||||
const char s3_36[] PROGMEM = "HVA";
|
||||
const char s3_37[] PROGMEM = "ALT";
|
||||
const char s3_38[] PROGMEM = "OSS";
|
||||
const byte s3_size = 38;
|
||||
const char* const s3_table[] PROGMEM =
|
||||
{s3_1,s3_2,s3_3,s3_4,s3_5,s3_6,s3_7,s3_8,s3_9,s3_10,
|
||||
s3_11,s3_12,s3_13,s3_14,s3_15,s3_16,s3_17,s3_18,s3_19,s3_20,
|
||||
s3_21,s3_22,s3_23,s3_24,s3_25,s3_26,s3_27,s3_28,s3_29,s3_30,
|
||||
s3_31,s3_32,s3_33,s3_34,s3_35,s3_36,s3_37,s3_38};
|
||||
|
||||
// four letter word array
|
||||
const char s4_1[] PROGMEM = "IKKE";
|
||||
const char s4_2[] PROGMEM = "OVER";
|
||||
const char s4_3[] PROGMEM = "OGSÅ";
|
||||
const char s4_4[] PROGMEM = "BARE";
|
||||
const char s4_5[] PROGMEM = "VÆRE";
|
||||
const char s4_6[] PROGMEM = "BLIR";
|
||||
const char s4_7[] PROGMEM = "ALLE";
|
||||
const char s4_8[] PROGMEM = "NOEN";
|
||||
const char s4_9[] PROGMEM = "SELV";
|
||||
const char s4_10[] PROGMEM = "SIER";
|
||||
const char s4_11[] PROGMEM = "HANS";
|
||||
const char s4_12[] PROGMEM = "GIKK";
|
||||
const char s4_13[] PROGMEM = "FIKK";
|
||||
const char s4_14[] PROGMEM = "DASH";
|
||||
const char s4_15[] PROGMEM = "HVOR";
|
||||
const char s4_16[] PROGMEM = "HELE";
|
||||
const byte s4_size = 16;
|
||||
const char* const s4_table[] PROGMEM =
|
||||
{s4_1,s4_2,s4_3,s4_4,s4_5,s4_6,s4_7,s4_8,s4_9,s4_10,
|
||||
s4_11,s4_12,s4_13,s4_14,s4_15,s4_16};
|
||||
|
||||
// common names
|
||||
|
||||
const char name_1[] PROGMEM = "JAN";
|
||||
const char name_2[] PROGMEM = "PER";
|
||||
const char name_3[] PROGMEM = "BJØRN";
|
||||
const char name_4[] PROGMEM = "OLE";
|
||||
const char name_5[] PROGMEM = "KJELL";
|
||||
const char name_6[] PROGMEM = "LARS";
|
||||
const char name_7[] PROGMEM = "ARNE";
|
||||
const char name_8[] PROGMEM = "KNUT";
|
||||
const char name_9[] PROGMEM = "SVEIN";
|
||||
const char name_10[] PROGMEM = "HANS";
|
||||
const char name_11[] PROGMEM = "ODD";
|
||||
const char name_12[] PROGMEM = "TOR";
|
||||
const char name_13[] PROGMEM = "GEIR";
|
||||
const char name_14[] PROGMEM = "TERJE";
|
||||
const char name_15[] PROGMEM = "THOMAS";
|
||||
const char name_16[] PROGMEM = "MORTEN";
|
||||
const char name_17[] PROGMEM = "JOHN";
|
||||
const char name_18[] PROGMEM = "ERIK";
|
||||
const char name_19[] PROGMEM = "ANDERS";
|
||||
const char name_20[] PROGMEM = "RUNE";
|
||||
const char name_21[] PROGMEM = "MARTIN";
|
||||
const char name_22[] PROGMEM = "ANDREAS";
|
||||
const char name_23[] PROGMEM = "TROND";
|
||||
const char name_24[] PROGMEM = "TORE";
|
||||
const char name_25[] PROGMEM = "HARALD";
|
||||
const char name_26[] PROGMEM = "OLAV";
|
||||
const char name_27[] PROGMEM = "GUNNAR";
|
||||
const char name_28[] PROGMEM = "JON";
|
||||
const char name_29[] PROGMEM = "ROLF";
|
||||
const char name_30[] PROGMEM = "LEIF";
|
||||
const char name_31[] PROGMEM = "TOM";
|
||||
const char name_32[] PROGMEM = "STIAN";
|
||||
const char name_33[] PROGMEM = "KRISTIAN";
|
||||
const char name_34[] PROGMEM = "NILS";
|
||||
const char name_35[] PROGMEM = "ØYVIND";
|
||||
const char name_36[] PROGMEM = "HELGE";
|
||||
const char name_37[] PROGMEM = "ESPEN";
|
||||
const char name_38[] PROGMEM = "EINAR";
|
||||
const char name_39[] PROGMEM = "MARIUS";
|
||||
const char name_40[] PROGMEM = "KÅRE";
|
||||
const char name_41[] PROGMEM = "DANIEL";
|
||||
const char name_42[] PROGMEM = "MAGNUS";
|
||||
const char name_43[] PROGMEM = "FREDRIK";
|
||||
const char name_44[] PROGMEM = "CHRISTIAN";
|
||||
const char name_45[] PROGMEM = "STEINAR";
|
||||
const char name_46[] PROGMEM = "EIRIK";
|
||||
const char name_47[] PROGMEM = "HÅKON";
|
||||
const char name_48[] PROGMEM = "ØYSTEIN";
|
||||
const char name_49[] PROGMEM = "HENRIK";
|
||||
const char name_50[] PROGMEM = "KARL";
|
||||
const byte name_size = 50;
|
||||
const char* const name_table[] PROGMEM =
|
||||
{name_1,name_2,name_3,name_4,name_5,name_6,name_7,name_8,name_9,name_10,
|
||||
name_11,name_12,name_13,name_14,name_15,name_16,name_17,name_18,name_19,name_20,
|
||||
name_21,name_22,name_23,name_24,name_25,name_26,name_27,name_28,name_29,name_30,
|
||||
name_31,name_32,name_33,name_34,name_35,name_36,name_37,name_38,name_39,name_40,
|
||||
name_41,name_42,name_43,name_44,name_45,name_46,name_47,name_48,name_49,name_50};
|
||||
|
||||
|
||||
// CW QSO word array
|
||||
const char qso_1[] PROGMEM = "QRL?";
|
||||
const char qso_2[] PROGMEM = "QRM";
|
||||
const char qso_3[] PROGMEM = "QRN";
|
||||
const char qso_4[] PROGMEM = "QRS";
|
||||
const char qso_5[] PROGMEM = "QRT";
|
||||
const char qso_6[] PROGMEM = "QRZ";
|
||||
const char qso_7[] PROGMEM = "QSL";
|
||||
const char qso_8[] PROGMEM = "QSO";
|
||||
const char qso_9[] PROGMEM = "QSY";
|
||||
const char qso_10[] PROGMEM = "QTH";
|
||||
const char qso_11[] PROGMEM = "QRX";
|
||||
const char qso_12[] PROGMEM = "ABT";
|
||||
const char qso_13[] PROGMEM = "AGE";
|
||||
const char qso_14[] PROGMEM = "ANT";
|
||||
const char qso_15[] PROGMEM = "BEAM";
|
||||
const char qso_16[] PROGMEM = "BK";
|
||||
const char qso_17[] PROGMEM = "QRP";
|
||||
const char qso_18[] PROGMEM = "AGN";
|
||||
const char qso_19[] PROGMEM = "C";
|
||||
const char qso_20[] PROGMEM = "CL";
|
||||
const char qso_21[] PROGMEM = "CPY";
|
||||
const char qso_22[] PROGMEM = "CQ";
|
||||
const char qso_23[] PROGMEM = "CUL";
|
||||
const char qso_24[] PROGMEM = "DE";
|
||||
const char qso_25[] PROGMEM = "DX";
|
||||
const char qso_26[] PROGMEM = "ES";
|
||||
const char qso_27[] PROGMEM = "EL";
|
||||
const char qso_28[] PROGMEM = "FB";
|
||||
const char qso_29[] PROGMEM = "HI";
|
||||
const char qso_30[] PROGMEM = "HW?";
|
||||
const char qso_31[] PROGMEM = "HR";
|
||||
const char qso_32[] PROGMEM = "K";
|
||||
const char qso_33[] PROGMEM = "=";
|
||||
const char qso_34[] PROGMEM = "<";
|
||||
const char qso_35[] PROGMEM = "%";
|
||||
const char qso_36[] PROGMEM = ">";
|
||||
const char qso_37[] PROGMEM = "LID";
|
||||
const char qso_38[] PROGMEM = "LOOP";
|
||||
const char qso_39[] PROGMEM = "NAME";
|
||||
const char qso_40[] PROGMEM = "OM";
|
||||
const char qso_41[] PROGMEM = "OP";
|
||||
const char qso_42[] PROGMEM = "PKT";
|
||||
const char qso_43[] PROGMEM = "PSE";
|
||||
const char qso_44[] PROGMEM = "R";
|
||||
const char qso_45[] PROGMEM = "RPT";
|
||||
const char qso_46[] PROGMEM = "RST";
|
||||
const char qso_47[] PROGMEM = "RIG";
|
||||
const char qso_48[] PROGMEM = "TEMP";
|
||||
const char qso_49[] PROGMEM = "TEST";
|
||||
const char qso_50[] PROGMEM = "TU";
|
||||
const char qso_51[] PROGMEM = "TKS";
|
||||
const char qso_52[] PROGMEM = "TNX";
|
||||
const char qso_53[] PROGMEM = "VERT";
|
||||
const char qso_54[] PROGMEM = "WATT";
|
||||
const char qso_55[] PROGMEM = "WX";
|
||||
const char qso_56[] PROGMEM = "YAGI";
|
||||
const char qso_57[] PROGMEM = "YRS";
|
||||
const char qso_58[] PROGMEM = "73";
|
||||
const char qso_59[] PROGMEM = "88";
|
||||
const char qso_60[] PROGMEM = "?";
|
||||
const char qso_61[] PROGMEM = "/";
|
||||
const char qso_62[] PROGMEM = "VY";
|
||||
const char qso_63[] PROGMEM = "YL";
|
||||
const char qso_64[] PROGMEM = "XYL";
|
||||
const char qso_65[] PROGMEM = "MY";
|
||||
const char qso_66[] PROGMEM = "UR";
|
||||
const char qso_67[] PROGMEM = "IS";
|
||||
const char qso_68[] PROGMEM = "QSB";
|
||||
const char qso_69[] PROGMEM = "QRQ";
|
||||
const char qso_70[] PROGMEM = "HVE";
|
||||
const char qso_71[] PROGMEM = "HPE";
|
||||
const char qso_72[] PROGMEM = "BEST";
|
||||
const byte qso_size = 72;
|
||||
const char* const qso_table[] PROGMEM =
|
||||
{qso_1,qso_2,qso_3,qso_4,qso_5,qso_6,qso_7,qso_8,qso_9,qso_10,qso_11,qso_12,qso_13,qso_14,qso_15,qso_16,qso_17,qso_18,qso_19,qso_20,
|
||||
qso_21,qso_22,qso_23,qso_24,qso_25,qso_26,qso_27,qso_28,qso_29,qso_30,qso_31,qso_32,qso_33,qso_34,qso_35,qso_36,qso_37,qso_38,qso_39,qso_40,
|
||||
qso_41,qso_42,qso_43,qso_44,qso_45,qso_46,qso_47,qso_48,qso_49,qso_50,qso_51,qso_52,qso_53,qso_54,qso_55,qso_56,qso_57,qso_58,qso_59,qso_60,
|
||||
qso_61,qso_62,qso_63,qso_64,qso_65,qso_66,qso_67,qso_68,qso_69,qso_70,qso_71,qso_72};
|
||||
|
||||
|
||||
|
||||
|
||||
Executable
+151
@@ -0,0 +1,151 @@
|
||||
#include "Arduino.h"
|
||||
#include "buttonarray.h"
|
||||
|
||||
/* contributed by W6IPA */
|
||||
|
||||
void Button::InitLimits(uint8_t step){
|
||||
/*
|
||||
|
||||
typical button values:
|
||||
|
||||
0: -56 - 46
|
||||
1: 47 - 131
|
||||
2: 132 - 203
|
||||
3: 203 - 264
|
||||
|
||||
*/
|
||||
|
||||
int32_t button_value;
|
||||
int32_t lower_button_value;
|
||||
int32_t higher_button_value;
|
||||
|
||||
button_value = uint32_t(max_value * (float(step * r2_value)/float((step * r2_value) + r1_value)));
|
||||
lower_button_value = uint32_t(max_value * (float((step-1) * r2_value)/float(((step-1) * r2_value) + r1_value)));
|
||||
higher_button_value = uint32_t(max_value * (float((step+1) * r2_value)/float(((step+1) * r2_value) + r1_value)));
|
||||
low_limit_= (button_value - ((button_value - lower_button_value)/2));
|
||||
high_limit_= (button_value + ((higher_button_value - button_value)/2));
|
||||
step_ = step;
|
||||
}
|
||||
|
||||
void Button::InitLimits(uint8_t step, int32_t low_limit, int32_t high_limit){
|
||||
low_limit_ = low_limit;
|
||||
high_limit_ = high_limit;
|
||||
step_ = step;
|
||||
}
|
||||
|
||||
bool Button::Pressed(int32_t analog_reading){
|
||||
if ((analog_reading > low_limit_) && (analog_reading <= high_limit_)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
int32_t Button::high_limit(){
|
||||
return high_limit_;
|
||||
}
|
||||
|
||||
int32_t Button::low_limit(){
|
||||
return low_limit_;
|
||||
}
|
||||
|
||||
// Add all buttons in incremental order
|
||||
void ButtonArray::AddAll(){
|
||||
size_t index;
|
||||
if (reversed_) {
|
||||
index = nb_buttons_ - 1;
|
||||
}
|
||||
for(size_t i = 0; i < nb_buttons_; i++)
|
||||
{
|
||||
if (reversed_) {
|
||||
Add(i, index);
|
||||
index --;
|
||||
} else {
|
||||
Add(i, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Adds a single button to the array
|
||||
// Takes a step (rank in the resistor ladder), and the index in the button array.
|
||||
void ButtonArray::Add(uint8_t step, uint8_t index){
|
||||
Button button;
|
||||
button.InitLimits(step);
|
||||
button_array_[index] = button;
|
||||
high_limit_ = max(button.high_limit() , high_limit_);
|
||||
}
|
||||
|
||||
void ButtonArray::Add(uint8_t step, uint8_t index, int32_t low_limit, int32_t high_limit){
|
||||
Button button;
|
||||
button.InitLimits(step, low_limit, high_limit);
|
||||
button_array_[index] = button;
|
||||
high_limit_ = max(high_limit, high_limit_);
|
||||
}
|
||||
|
||||
int32_t ButtonArray::high_limit(){
|
||||
return high_limit_;
|
||||
}
|
||||
|
||||
int8_t ButtonArray::ReadButtons(){
|
||||
uint32_t analog_read_temp = 0;
|
||||
uint32_t analog_line_read_average = 0;
|
||||
//uint8_t number_of_samples = 0;
|
||||
|
||||
for (byte x = 0; x < NUMBER_OF_BUTTON_READS_TO_AVERAGE; x++){
|
||||
analog_read_temp = analogRead(pin_);
|
||||
if (analog_read_temp <= high_limit_){
|
||||
analog_line_read_average = (analog_line_read_average + analog_read_temp) / 2;
|
||||
//analog_line_read_average = analog_line_read_average + analog_read_temp;
|
||||
//number_of_samples++;
|
||||
}
|
||||
}
|
||||
//analog_line_read_average = analog_line_read_average / number_of_samples;
|
||||
for (size_t x = 0; x < nb_buttons_; x++) {
|
||||
Button button = button_array_[x];
|
||||
if (button.Pressed(analog_line_read_average)) {
|
||||
last_pressed_ms = millis();
|
||||
return x;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
// returns true if analog reading indicate a pressed button
|
||||
bool ButtonArray::AnyPressed() {
|
||||
if (analogRead(pin_) <= high_limit_) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// returns the index of the pressed button or -1 if none pressed
|
||||
int8_t ButtonArray::Pressed() {
|
||||
if (AnyPressed() && ((millis() - last_pressed_ms) > DEBOUNCE_MS )){
|
||||
return ReadButtons();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
// returns true if button at the provided index is pressed
|
||||
bool ButtonArray::Pressed(uint8_t index) {
|
||||
uint32_t analog_read_temp =0;
|
||||
analog_read_temp = analogRead(pin_);
|
||||
if ((analog_read_temp <= high_limit_) && ( index < nb_buttons_)) {
|
||||
Button button = button_array_[index];
|
||||
return button.Pressed(analog_read_temp);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// Return true as long as the indicated button is held and the deadline not reached.
|
||||
bool ButtonArray::Held(uint8_t index, uint32_t deadline) {
|
||||
if (AnyPressed() &&
|
||||
(millis() < deadline) &&
|
||||
(ReadButtons() == index)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Return true as long as the indicated button is held
|
||||
bool ButtonArray::Held(uint8_t index) {
|
||||
if (AnyPressed() && (ReadButtons() == index)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Executable
+59
@@ -0,0 +1,59 @@
|
||||
#ifndef buttonarray_h
|
||||
#define buttonarray_h
|
||||
#include "Arduino.h"
|
||||
#ifndef MAX_ARRAY_BUTTONS
|
||||
#define MAX_ARRAY_BUTTONS 13
|
||||
#endif
|
||||
#define DEBOUNCE_MS 200
|
||||
#define NUMBER_OF_BUTTON_READS_TO_AVERAGE 19
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32) || defined(ARDUINO_GENERIC_STM32F103C)
|
||||
#define max_value 4095
|
||||
#else
|
||||
#define max_value 1023
|
||||
#endif
|
||||
|
||||
#define r1_value 10
|
||||
#define r2_value 1
|
||||
|
||||
/* contributed by W6IPA */
|
||||
|
||||
class Button {
|
||||
private:
|
||||
int32_t low_limit_;
|
||||
int32_t high_limit_;
|
||||
uint8_t step_;
|
||||
public:
|
||||
Button(){};
|
||||
void InitLimits(uint8_t step);
|
||||
void InitLimits(uint8_t step, int32_t low_limit, int32_t high_limit);
|
||||
bool Pressed(int32_t analog_reading);
|
||||
int32_t high_limit();
|
||||
int32_t low_limit();
|
||||
};
|
||||
|
||||
class ButtonArray {
|
||||
private:
|
||||
Button button_array_[MAX_ARRAY_BUTTONS];
|
||||
uint8_t pin_;
|
||||
uint8_t nb_buttons_;
|
||||
int32_t high_limit_;
|
||||
bool reversed_;
|
||||
int8_t ReadButtons();
|
||||
bool AnyPressed();
|
||||
|
||||
public:
|
||||
uint32_t last_pressed_ms;
|
||||
ButtonArray(uint8_t pin, uint8_t nb, bool reversed): pin_(pin), nb_buttons_(nb), reversed_(reversed){};
|
||||
void AddAll();
|
||||
void Add(uint8_t step, uint8_t index);
|
||||
void Add(uint8_t step, uint8_t index, int32_t low_limit, int32_t high_limit);
|
||||
int32_t high_limit();
|
||||
int8_t Pressed();
|
||||
bool Pressed(uint8_t index);
|
||||
bool Held(uint8_t index);
|
||||
bool Held(uint8_t index, uint32_t deadline );
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
Executable
+50
@@ -0,0 +1,50 @@
|
||||
// Button Array test
|
||||
|
||||
#include "buttonarray.h"
|
||||
|
||||
#define ARRAY_PIN A3
|
||||
#define NB_BUTTONS 2
|
||||
#define ENCODER_PIN A1
|
||||
|
||||
|
||||
int button_array_high_limit[NB_BUTTONS];
|
||||
int button_array_low_limit[NB_BUTTONS];
|
||||
long button_depress_time;
|
||||
|
||||
|
||||
|
||||
ButtonArray button_array(ARRAY_PIN, NB_BUTTONS, false);
|
||||
ButtonArray encoder(ENCODER_PIN, 1, false);
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
delay(1000);
|
||||
button_array.AddAll();
|
||||
encoder.AddAll();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
int analogbuttontemp = button_array.Pressed();
|
||||
if (encoder.Pressed() == 0) {
|
||||
Serial.println("encoder pressed ");
|
||||
}
|
||||
if (analogbuttontemp >= 0 ) {
|
||||
// button pressed.
|
||||
|
||||
button_depress_time = button_array.last_pressed_ms;
|
||||
|
||||
while (button_array.Held(analogbuttontemp, button_depress_time + 1000)) {
|
||||
|
||||
}
|
||||
if (millis() - button_depress_time < 400) {
|
||||
Serial.print("button pressed ");
|
||||
Serial.println(analogbuttontemp);
|
||||
} else {
|
||||
Serial.print("button ");
|
||||
Serial.print(analogbuttontemp);
|
||||
Serial.print(" held for ");
|
||||
Serial.println(millis() - button_depress_time);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user