removed Morrty preconfigurations - all Mortty configurations are in hardware profiles now

pull/77/head
k3ng 2019-10-26 08:33:10 -04:00
rodzic 4f13d33b58
commit ebab6e3bd1
48 zmienionych plików z 0 dodań i 93228 usunięć

Wyświetl plik

@ -1,223 +0,0 @@
#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
#ifdef FEATURE_WINKEY_EMULATION
#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
#ifdef OPTION_WINKEY_2_SUPPORT
#define WINKEY_SEND_MSG 35
#endif //OPTION_WINKEY_2_SUPPORT
#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
#endif //FEATURE_WINKEY_EMULATION
#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
#endif //keyer_h

Wyświetl plik

@ -1,414 +0,0 @@
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*/
};

Wyświetl plik

@ -1,59 +0,0 @@
// 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_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 OPTION_WINKEY_IGNORE_FIRST_STATUS_REQUEST

Wyświetl plik

@ -1,49 +0,0 @@
#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)
#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_SINEWAVE_SIDETONE_USING_TIMER_1) && defined(FEATURE_SINEWAVE_SIDETONE_USING_TIMER_3)
#error "You can't use both FEATURE_SINEWAVE_SIDETONE_USING_TIMER_1 and FEATURE_SINEWAVE_SIDETONE_USING_TIMER_3 simultaneously"
#endif
#if defined(FEATURE_SINEWAVE_SIDETONE_USING_TIMER_1) || defined(FEATURE_SINEWAVE_SIDETONE_USING_TIMER_3)
#define FEATURE_SINEWAVE_SIDETONE
#endif

Wyświetl plik

@ -1,101 +0,0 @@
// 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_COMMAND_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
// #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_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_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_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_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

Wyświetl plik

@ -1,74 +0,0 @@
/* 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_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_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 - Kees Talen K5BCQ - Documentation: https://groups.io/g/radioartisan/files/K5BCQ
// #define HARDWARE_MEGAKEYER // https://github.com/w6ipa/megakeyer files: keyer_pin_settings_megakeyer.h, keyer_features_and_options_megakeyer.h, keyer_settings_megakeyer.h - https://projects.w6ipa.com/megakeyer/Mega%20Keyer%20Build%20Instructions.html
// #define HARDWARE_TEST_EVERYTHING // Goody K3NG uses this to test
// #define HARDWARE_TEST // Goody K3NG uses this to 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
*/
// Do not touch anything below this line!
// 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)
#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
#else
#define PRIMARY_SERIAL_CLS HardwareSerial
#define SECONDARY_SERIAL_CLS HardwareSerial
#endif

Wyświetl plik

@ -1,155 +0,0 @@
/* 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_COMMAND_BUTTONS
#define analog_buttons_pin A1
#define command_mode_active_led 0
#endif //FEATURE_COMMAND_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
#ifdef FEATURE_ALPHABET_SEND_PRACTICE
#define correct_answer_led 0
#define wrong_answer_led 0
#endif //FEATURE_ALPHABET_SEND_PRACTICE
#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
#ifdef FEATURE_CW_DECODER
#define cw_decoder_pin A3//A11 //A5 //A3
#ifdef OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
#define cw_decoder_audio_input_pin 0 // this must be an analog pin!
#endif //OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
#define cw_decoder_indicator 24
#endif //FEATURE_CW_DECODER
#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_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

Wyświetl plik

@ -1,280 +0,0 @@
// 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 memory_area_start 60 // the eeprom location where memory space starts
#define memory_area_end 1023 // the eeprom location where memory space ends
#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 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_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_COMMAND_BUTTONS
#define analog_buttons_number_of_buttons 4
#define analog_buttons_r1 10
#define analog_buttons_r2 1
#endif
#if defined(FEATURE_COMMAND_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 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
#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

Wyświetl plik

@ -1,266 +0,0 @@
// 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};

Wyświetl plik

@ -1,264 +0,0 @@
// 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};

Wyświetl plik

@ -1,248 +0,0 @@
// 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 = "";
const char s2_3[] PROGMEM = "";
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 = "";
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 = "";
const char s2_17[] PROGMEM = "NY";
const char s2_18[] PROGMEM = "HA";
const char s2_19[] PROGMEM = "ÅR";
const char s2_20[] PROGMEM = "";
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};

Wyświetl plik

@ -1,223 +0,0 @@
#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
#ifdef FEATURE_WINKEY_EMULATION
#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
#ifdef OPTION_WINKEY_2_SUPPORT
#define WINKEY_SEND_MSG 35
#endif //OPTION_WINKEY_2_SUPPORT
#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
#endif //FEATURE_WINKEY_EMULATION
#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
#endif //keyer_h

Wyświetl plik

@ -1,414 +0,0 @@
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*/
};

Wyświetl plik

@ -1,59 +0,0 @@
// 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_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 OPTION_WINKEY_IGNORE_FIRST_STATUS_REQUEST

Wyświetl plik

@ -1,49 +0,0 @@
#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)
#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_SINEWAVE_SIDETONE_USING_TIMER_1) && defined(FEATURE_SINEWAVE_SIDETONE_USING_TIMER_3)
#error "You can't use both FEATURE_SINEWAVE_SIDETONE_USING_TIMER_1 and FEATURE_SINEWAVE_SIDETONE_USING_TIMER_3 simultaneously"
#endif
#if defined(FEATURE_SINEWAVE_SIDETONE_USING_TIMER_1) || defined(FEATURE_SINEWAVE_SIDETONE_USING_TIMER_3)
#define FEATURE_SINEWAVE_SIDETONE
#endif

Wyświetl plik

@ -1,101 +0,0 @@
// 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_COMMAND_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
// #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_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_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_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_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

Wyświetl plik

@ -1,74 +0,0 @@
/* 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_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_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 - Kees Talen K5BCQ - Documentation: https://groups.io/g/radioartisan/files/K5BCQ
// #define HARDWARE_MEGAKEYER // https://github.com/w6ipa/megakeyer files: keyer_pin_settings_megakeyer.h, keyer_features_and_options_megakeyer.h, keyer_settings_megakeyer.h - https://projects.w6ipa.com/megakeyer/Mega%20Keyer%20Build%20Instructions.html
// #define HARDWARE_TEST_EVERYTHING // Goody K3NG uses this to test
// #define HARDWARE_TEST // Goody K3NG uses this to 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
*/
// Do not touch anything below this line!
// 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)
#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
#else
#define PRIMARY_SERIAL_CLS HardwareSerial
#define SECONDARY_SERIAL_CLS HardwareSerial
#endif

Wyświetl plik

@ -1,155 +0,0 @@
/* 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_COMMAND_BUTTONS
#define analog_buttons_pin A1
#define command_mode_active_led 0
#endif //FEATURE_COMMAND_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
#ifdef FEATURE_ALPHABET_SEND_PRACTICE
#define correct_answer_led 0
#define wrong_answer_led 0
#endif //FEATURE_ALPHABET_SEND_PRACTICE
#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
#ifdef FEATURE_CW_DECODER
#define cw_decoder_pin A3//A11 //A5 //A3
#ifdef OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
#define cw_decoder_audio_input_pin 0 // this must be an analog pin!
#endif //OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
#define cw_decoder_indicator 24
#endif //FEATURE_CW_DECODER
#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_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

Wyświetl plik

@ -1,280 +0,0 @@
// 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 memory_area_start 60 // the eeprom location where memory space starts
#define memory_area_end 1023 // the eeprom location where memory space ends
#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 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_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_COMMAND_BUTTONS
#define analog_buttons_number_of_buttons 4
#define analog_buttons_r1 10
#define analog_buttons_r2 1
#endif
#if defined(FEATURE_COMMAND_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 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
#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

Wyświetl plik

@ -1,266 +0,0 @@
// 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};

Wyświetl plik

@ -1,264 +0,0 @@
// 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};

Wyświetl plik

@ -1,248 +0,0 @@
// 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 = "";
const char s2_3[] PROGMEM = "";
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 = "";
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 = "";
const char s2_17[] PROGMEM = "NY";
const char s2_18[] PROGMEM = "HA";
const char s2_19[] PROGMEM = "ÅR";
const char s2_20[] PROGMEM = "";
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};

Wyświetl plik

@ -1,223 +0,0 @@
#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
#ifdef FEATURE_WINKEY_EMULATION
#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
#ifdef OPTION_WINKEY_2_SUPPORT
#define WINKEY_SEND_MSG 35
#endif //OPTION_WINKEY_2_SUPPORT
#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
#endif //FEATURE_WINKEY_EMULATION
#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
#endif //keyer_h

Wyświetl plik

@ -1,414 +0,0 @@
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*/
};

Wyświetl plik

@ -1,59 +0,0 @@
// 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_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 OPTION_WINKEY_IGNORE_FIRST_STATUS_REQUEST

Wyświetl plik

@ -1,49 +0,0 @@
#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)
#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_SINEWAVE_SIDETONE_USING_TIMER_1) && defined(FEATURE_SINEWAVE_SIDETONE_USING_TIMER_3)
#error "You can't use both FEATURE_SINEWAVE_SIDETONE_USING_TIMER_1 and FEATURE_SINEWAVE_SIDETONE_USING_TIMER_3 simultaneously"
#endif
#if defined(FEATURE_SINEWAVE_SIDETONE_USING_TIMER_1) || defined(FEATURE_SINEWAVE_SIDETONE_USING_TIMER_3)
#define FEATURE_SINEWAVE_SIDETONE
#endif

Wyświetl plik

@ -1,101 +0,0 @@
// 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_COMMAND_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
// #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_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_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_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_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

Wyświetl plik

@ -1,74 +0,0 @@
/* 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_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_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 - Kees Talen K5BCQ - Documentation: https://groups.io/g/radioartisan/files/K5BCQ
// #define HARDWARE_MEGAKEYER // https://github.com/w6ipa/megakeyer files: keyer_pin_settings_megakeyer.h, keyer_features_and_options_megakeyer.h, keyer_settings_megakeyer.h - https://projects.w6ipa.com/megakeyer/Mega%20Keyer%20Build%20Instructions.html
// #define HARDWARE_TEST_EVERYTHING // Goody K3NG uses this to test
// #define HARDWARE_TEST // Goody K3NG uses this to 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
*/
// Do not touch anything below this line!
// 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)
#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
#else
#define PRIMARY_SERIAL_CLS HardwareSerial
#define SECONDARY_SERIAL_CLS HardwareSerial
#endif

Wyświetl plik

@ -1,155 +0,0 @@
/* 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_COMMAND_BUTTONS
#define analog_buttons_pin A1
#define command_mode_active_led 0
#endif //FEATURE_COMMAND_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
#ifdef FEATURE_ALPHABET_SEND_PRACTICE
#define correct_answer_led 0
#define wrong_answer_led 0
#endif //FEATURE_ALPHABET_SEND_PRACTICE
#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
#ifdef FEATURE_CW_DECODER
#define cw_decoder_pin A3//A11 //A5 //A3
#ifdef OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
#define cw_decoder_audio_input_pin 0 // this must be an analog pin!
#endif //OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
#define cw_decoder_indicator 24
#endif //FEATURE_CW_DECODER
#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_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

Wyświetl plik

@ -1,280 +0,0 @@
// 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 memory_area_start 60 // the eeprom location where memory space starts
#define memory_area_end 1023 // the eeprom location where memory space ends
#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 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_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_COMMAND_BUTTONS
#define analog_buttons_number_of_buttons 4
#define analog_buttons_r1 10
#define analog_buttons_r2 1
#endif
#if defined(FEATURE_COMMAND_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 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
#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

Wyświetl plik

@ -1,266 +0,0 @@
// 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};

Wyświetl plik

@ -1,264 +0,0 @@
// 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};

Wyświetl plik

@ -1,248 +0,0 @@
// 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 = "";
const char s2_3[] PROGMEM = "";
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 = "";
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 = "";
const char s2_17[] PROGMEM = "NY";
const char s2_18[] PROGMEM = "HA";
const char s2_19[] PROGMEM = "ÅR";
const char s2_20[] PROGMEM = "";
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};

Wyświetl plik

@ -1,223 +0,0 @@
#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
#ifdef FEATURE_WINKEY_EMULATION
#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
#ifdef OPTION_WINKEY_2_SUPPORT
#define WINKEY_SEND_MSG 35
#endif //OPTION_WINKEY_2_SUPPORT
#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
#endif //FEATURE_WINKEY_EMULATION
#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
#endif //keyer_h

Wyświetl plik

@ -1,414 +0,0 @@
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*/
};

Wyświetl plik

@ -1,59 +0,0 @@
// 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_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 OPTION_WINKEY_IGNORE_FIRST_STATUS_REQUEST

Wyświetl plik

@ -1,49 +0,0 @@
#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)
#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_SINEWAVE_SIDETONE_USING_TIMER_1) && defined(FEATURE_SINEWAVE_SIDETONE_USING_TIMER_3)
#error "You can't use both FEATURE_SINEWAVE_SIDETONE_USING_TIMER_1 and FEATURE_SINEWAVE_SIDETONE_USING_TIMER_3 simultaneously"
#endif
#if defined(FEATURE_SINEWAVE_SIDETONE_USING_TIMER_1) || defined(FEATURE_SINEWAVE_SIDETONE_USING_TIMER_3)
#define FEATURE_SINEWAVE_SIDETONE
#endif

Wyświetl plik

@ -1,101 +0,0 @@
// 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_COMMAND_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
// #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_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_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_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_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

Wyświetl plik

@ -1,74 +0,0 @@
/* 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_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_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 - Kees Talen K5BCQ - Documentation: https://groups.io/g/radioartisan/files/K5BCQ
// #define HARDWARE_MEGAKEYER // https://github.com/w6ipa/megakeyer files: keyer_pin_settings_megakeyer.h, keyer_features_and_options_megakeyer.h, keyer_settings_megakeyer.h - https://projects.w6ipa.com/megakeyer/Mega%20Keyer%20Build%20Instructions.html
// #define HARDWARE_TEST_EVERYTHING // Goody K3NG uses this to test
// #define HARDWARE_TEST // Goody K3NG uses this to 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
*/
// Do not touch anything below this line!
// 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)
#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
#else
#define PRIMARY_SERIAL_CLS HardwareSerial
#define SECONDARY_SERIAL_CLS HardwareSerial
#endif

Wyświetl plik

@ -1,155 +0,0 @@
/* 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_COMMAND_BUTTONS
#define analog_buttons_pin A1
#define command_mode_active_led 0
#endif //FEATURE_COMMAND_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
#ifdef FEATURE_ALPHABET_SEND_PRACTICE
#define correct_answer_led 0
#define wrong_answer_led 0
#endif //FEATURE_ALPHABET_SEND_PRACTICE
#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
#ifdef FEATURE_CW_DECODER
#define cw_decoder_pin A3//A11 //A5 //A3
#ifdef OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
#define cw_decoder_audio_input_pin 0 // this must be an analog pin!
#endif //OPTION_CW_DECODER_GOERTZEL_AUDIO_DETECTOR
#define cw_decoder_indicator 24
#endif //FEATURE_CW_DECODER
#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_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

Wyświetl plik

@ -1,280 +0,0 @@
// 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 memory_area_start 60 // the eeprom location where memory space starts
#define memory_area_end 1023 // the eeprom location where memory space ends
#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 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_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_COMMAND_BUTTONS
#define analog_buttons_number_of_buttons 4
#define analog_buttons_r1 10
#define analog_buttons_r2 1
#endif
#if defined(FEATURE_COMMAND_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 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
#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

Wyświetl plik

@ -1,266 +0,0 @@
// 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};

Wyświetl plik

@ -1,264 +0,0 @@
// 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};

Wyświetl plik

@ -1,248 +0,0 @@
// 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 = "";
const char s2_3[] PROGMEM = "";
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 = "";
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 = "";
const char s2_17[] PROGMEM = "NY";
const char s2_18[] PROGMEM = "HA";
const char s2_19[] PROGMEM = "ÅR";
const char s2_20[] PROGMEM = "";
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};