-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkeyer_settings_generic_STM32F103C.h
326 lines (278 loc) · 13.9 KB
/
keyer_settings_generic_STM32F103C.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
/*
GENERIC STM32F103C
*/
// Initial and hardcoded settings
#define initial_speed_wpm 26 // "factory default" keyer speed setting
#define initial_command_mode_speed_wpm 20 // "factory default" command mode speed setting
#define initial_sidetone_freq 600 // "factory default" sidetone frequency setting
#define sidetone_hz_limit_low 299
#define sidetone_hz_limit_high 2001
#define hz_high_beep 1500 // frequency in hertz of high beep
#define hz_low_beep 400 // frequency in hertz of low beep
#define initial_dah_to_dit_ratio 300 // 300 = 3 / normal 3:1 ratio
#define initial_ptt_lead_time_tx1 0 // PTT lead time in mS
#define initial_ptt_tail_time_tx1 10 // PTT tail time in mS
#define initial_ptt_lead_time_tx2 0 // PTT lead time in mS
#define initial_ptt_tail_time_tx2 10 // PTT tail time in mS
#define initial_ptt_lead_time_tx3 0 // PTT lead time in mS
#define initial_ptt_tail_time_tx3 10 // PTT tail time in mS
#define initial_ptt_lead_time_tx4 0 // PTT lead time in mS
#define initial_ptt_tail_time_tx4 10 // PTT tail time in mS
#define initial_ptt_lead_time_tx5 0 // PTT lead time in mS
#define initial_ptt_tail_time_tx5 10 // PTT tail time in mS
#define initial_ptt_lead_time_tx6 0 // PTT lead time in mS
#define initial_ptt_tail_time_tx6 10 // PTT tail time in mS
#define initial_qrss_dit_length 1 // QRSS dit length in seconds
#define initial_pot_wpm_low_value 13 // Potentiometer WPM fully CCW
#define initial_pot_wpm_high_value 35 // Potentiometer WPM fully CW
#define wpm_limit_low 5
#define wpm_limit_high 60
#define potentiometer_change_threshold 0.9 // don't change the keyer speed until pot wpm has changed more than this
#define send_buffer_size 150
#define default_length_letterspace 3
#define default_length_wordspace 7
#define default_keying_compensation 0 // number of milliseconds to extend all dits and dahs - for QSK on boatanchors
#define default_first_extension_time 0 // number of milliseconds to extend first sent dit or dah
//#define default_pot_full_scale_reading 1023 //For AVR boards
#define default_pot_full_scale_reading 4095 //SP5IOU 20180329 FOR stm32 Boards.
#define default_weighting 50 // 50 = weighting factor of 1 (normal)
#define default_ptt_hang_time_wordspace_units 0.0
#define winkey_c0_wait_time 1 // the number of milliseconds to wait to send 0xc0 byte after send buffer has been sent
#define winkey_command_timeout_ms 5000
#define winkey_discard_bytes_startup 3 // this is used if OPTION_WINKEY_DISCARD_BYTES_AT_STARTUP is enabled above
#define winkey_xoff_threshold 20 // the number of chars in the buffer when we begin sending XOFFs
#define winkey_xon_threshold 10 // the number of chars in the buffer below which we deactivate XOFF
#define default_memory_repeat_time 3000 // time in milliseconds
#define LCD_COLUMNS 16
#define LCD_ROWS 2
#define lcd_i2c_address_mathertel_PCF8574 0x27 // I2C address of display for FEATURE_LCD_MATHERTEL_PCF8574
#define lcd_i2c_address_fdebrander_lcd 0x27 // I2C address of display for FEATURE_LCD_I2C_FDEBRABANDER
#define lcd_i2c_address_ydv1_lcd 0x27 // I2C address of display for FEATURE_LCD_YDv1
//#define lcd_i2c_address_ydv1_lcd 0x38 // I2C address of display for FEATURE_LCD_YDv1
#define lcd_i2c_address_sainsmart_lcd 0x27 // I2C address of display for FEATURE_LCD_SAINSMART_I2C
#define hell_pixel_microseconds 4025
#define program_memory_limit_consec_spaces 1
#define serial_leading_zeros 1 // set to 1 to activate leading zeros in serial numbers (i.e. #1 = 001)
#define serial_cut_numbers 0 // set to 1 to activate cut numbers in serial numbers (i.e. #10 = 1T, #19 = 1N)
#define go_to_sleep_inactivity_time 10 // minutes - FEATURE_SLEEP
#define dim_backlight_inactive_time 5 // minutes - FEATURE_LCD_BACKLIGHT_AUTO_DIM
#define default_cmos_super_keyer_iambic_b_timing_percent 33 // use with FEATURE_CMOS_SUPER_KEYER_IAMBIC_B_TIMING; should be between 0 to 99 % (0% = true iambic b;100% = iambic a behavior)
#define default_cw_echo_timing_factor 1.75 // "factory default" setting
#define default_autospace_timing_factor 2.0 // "factory default" setting
#define winkey_paddle_echo_buffer_decode_timing_factor 0.25
#define potentiometer_always_on 0
#define ptt_interlock_check_every_ms 100
#define ptt_interlock_active_state HIGH
#define unknown_cw_character '*'
#define cli_paddle_echo_on_at_boot 1
#define cli_straight_key_echo_on_at_boot 1
#define tx_key_dit_and_dah_pins_active_state HIGH
#define tx_key_dit_and_dah_pins_inactive_state LOW
#define potentiometer_check_interval_ms 150
#define potentiometer_reading_threshold 1
#define default_paddle_interruption_quiet_time_element_lengths 0
#define default_wordsworth_wordspace 6
#define default_wordsworth_repetition 1
#define serial_program_memory_buffer_size 500
#define eeprom_write_time_ms 30000
#ifdef FEATURE_BUTTONS
#define analog_buttons_number_of_buttons 1 // For Keypad only command butrton is neaded 6 //4 // includes the command button (command button + 3 memory buttons = 4) //sp5iou 20180319
#define analog_buttons_r1 10
#define analog_buttons_r2 1
#endif
#if defined(FEATURE_BUTTONS) && !defined(FEATURE_PS2_KEYBOARD) && !defined(FEATURE_USB_KEYBOARD) && !defined(FEATURE_COMMAND_LINE_INTERFACE) && !defined(FEATURE_WINKEY_EMULATION)
#define number_of_memories byte(analog_buttons_number_of_buttons-1)
#else
// #define number_of_memories byte(12)
#define number_of_memories byte(10) //sp5iou 20180329 With many memories, be carefull to not put to much content. It caould disable memory programming and eeprom formatting is then necessary
#endif
#ifdef FEATURE_CAPACITIVE_PADDLE_PINS
#define capacitance_threshold 2
#endif //FEATURE_CAPACITIVE_PADDLE_PINS
#ifdef FEATURE_LED_RING
#define led_ring_low_limit 10
#define led_ring_high_limit 50
#endif //FEATURE_LED_RING
#ifdef FEATURE_QLF
#define qlf_dit_max 125
#define qlf_dit_min 75
#define qlf_dah_max 200
#define qlf_dah_min 100
#define qlf_on_by_default 0
#endif //FEATURE_QLF
#ifdef FEATURE_WINKEY_EMULATION
#ifdef OPTION_WINKEY_UCXLOG_9600_BAUD
#define WINKEY_DEFAULT_BAUD 9600
#else
#define WINKEY_DEFAULT_BAUD 1200
#endif //OPTION_WINKEY_UCXLOG_9600_BAUD
// alter these below to map alternate sidetones for Winkey interface protocol emulation
#ifdef OPTION_WINKEY_2_SUPPORT
#define WINKEY_SIDETONE_1 3759
#define WINKEY_SIDETONE_2 1879
#define WINKEY_SIDETONE_3 1252
#define WINKEY_SIDETONE_4 940
#define WINKEY_SIDETONE_5 752
#define WINKEY_SIDETONE_6 625
#define WINKEY_SIDETONE_7 535
#define WINKEY_SIDETONE_8 469
#define WINKEY_SIDETONE_9 417
#define WINKEY_SIDETONE_10 375
#else //OPTION_WINKEY_2_SUPPORT
#define WINKEY_SIDETONE_1 4000
#define WINKEY_SIDETONE_2 2000
#define WINKEY_SIDETONE_3 1333
#define WINKEY_SIDETONE_4 1000
#define WINKEY_SIDETONE_5 800
#define WINKEY_SIDETONE_6 666
#define WINKEY_SIDETONE_7 571
#define WINKEY_SIDETONE_8 500
#define WINKEY_SIDETONE_9 444
#define WINKEY_SIDETONE_10 400
#endif //OPTION_WINKEY_2_SUPPORT
#define WINKEY_1_REPORT_VERSION_NUMBER 10
#define WINKEY_2_REPORT_VERSION_NUMBER 23
// alter these to map to alternate hang time wordspace units
#define WINKEY_HANG_TIME_1_0 1.0
#define WINKEY_HANG_TIME_1_33 1.33
#define WINKEY_HANG_TIME_1_66 1.66
#define WINKEY_HANG_TIME_2_0 2.0
#define WINKEY_RETURN_THIS_FOR_ADMIN_GET_CAL 0x16
#define WINKEY_RETURN_THIS_FOR_ADMIN_PADDLE_A2D 0xEE
#define WINKEY_RETURN_THIS_FOR_ADMIN_SPEED_A2D 0x00
#endif //FEATURE_WINKEY_EMULATION
#define PRIMARY_SERIAL_PORT &Serial
#define PRIMARY_SERIAL_PORT_BAUD 115200 // This applies only when the port is in Command Line Interface mode. In Winkey mode it will default to 1200.
#ifdef FEATURE_COMMAND_LINE_INTERFACE_ON_SECONDARY_PORT
#define SECONDARY_SERIAL_PORT &Serial1
#define SECONDARY_SERIAL_PORT_BAUD 115200
#endif
#define CW_DECODER_SCREEN_COLUMNS 120 // word wrap at this many columns
#define CW_DECODER_SPACE_PRINT_THRESH 4.5 // print space if no tone for this many element lengths
#define CW_DECODER_SPACE_DECODE_THRESH 2.0 // invoke character decode if no tone for this many element lengths
#define CW_DECODER_NOISE_FILTER 20 // ignore elements shorter than this (mS)
#define STRAIGHT_KEY_ACTIVE_STATE LOW
#ifdef FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_WPM 30
#define DYNAMIC_DAH_TO_DIT_RATIO_LOWER_LIMIT_RATIO 300 // 300 = 3:1 ratio
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_WPM 70
#define DYNAMIC_DAH_TO_DIT_RATIO_UPPER_LIMIT_RATIO 240 // 240 = 2.4:1 ratio
#endif //FEATURE_DYNAMIC_DAH_TO_DIT_RATIO
#if defined(FEATURE_COMPETITION_COMPRESSION_DETECTION)
#define COMPETITION_COMPRESSION_DETECTION_ARRAY_SIZE 16
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_LOWER_LIMIT 1
#define COMPETITION_COMPRESSION_DETECTION_TIME_INTERCHAR_UPPER_LIMIT 6.0
#define COMPETITION_COMPRESSION_DETECTION_AVERAGE_ALARM_THRESHOLD 3.0
#endif //FEATURE_COMPETITION_COMPRESSION_DETECTION
#if defined(FEATURE_SLEEP)
#define KEYER_AWAKE_PIN_AWAKE_STATE HIGH
#define KEYER_AWAKE_PIN_ASLEEP_STATE LOW
#endif
#if defined(FEATURE_LCD_BACKLIGHT_AUTO_DIM)
#define keyer_power_led_awake_duty 255 // PWM duty cycle. 0 is 0%, 255 is 100%
#define keyer_power_led_asleep_duty 25 // 25 is quite dim. Use 0 for off
#endif
#if defined(FEATURE_ETHERNET)
// #define FEATURE_ETHERNET_IP {192,168,1,178} // default IP address ("192.168.1.178")
// #define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xED}
#define FEATURE_ETHERNET_IP {192,168,1,179} // default IP address ("192.168.1.179")
#define FEATURE_ETHERNET_MAC {0xDE,0xAD,0xBE,0xEF,0xFE,0xEE}
#define FEATURE_ETHERNET_DNS {8,8,8,8}
#define FEATURE_ETHERNET_GATEWAY {192,168,1,1} // default gateway
#define FEATURE_ETHERNET_SUBNET_MASK {255,255,255,0} // default subnet mask
#define FEATURE_ETHERNET_WEB_LISTENER_PORT 80
#define FEATURE_UDP_SEND_BUFFER_SIZE 128
#define FEATURE_UDP_RECEIVE_BUFFER_SIZE 128
#endif //FEATURE_ETHERNET
#define WEB_SERVER_CONTROL_TX_KEY_TIME_LIMIT_SECS 10
#define FEATURE_INTERNET_LINK_MAX_LINKS 2
#define FEATURE_INTERNET_LINK_DEFAULT_RCV_UDP_PORT 8888
#define FEATURE_INTERNET_LINK_BUFFER_TIME_MS 500
#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
#define KEYPAD_ROWS 4 //KeyPad Rows
#if defined(FEATURE_4x4_KEYPAD)
#define KEYPAD_COLS 4 //keypad Columns
#else
#define KEYPAD_COLS 3
#endif
#define mem1 0 //Memory numbers for Keypad: Actual memory numbers start with "0"
#define mem2 1
#define mem3 2
#define mem4 3
#define mem5 4
#define mem6 5
#define mem7 6
#define mem8 7
#define mem9 8
#define mem10 9
#define mem11 10
#define mem12 11
#endif //#if defined(FEATURE_4x4_KEYPAD)|| defined (FEATURE_3x4_KEYPAD)
#define initial_sidetone_mode 1 // Sidetone mode, 0=OFF, 1=ON, 2=PADDLE_ONLY
#define sd_card_spi_ss_line 4
#if defined(OPTION_DFROBOT_LCD_COMMAND_BUTTONS)
// For V1.1 board use these values
#define dfrobot_btnRIGHT_analog 50
#define dfrobot_btnUP_analog 250
#define dfrobot_btnDOWN_analog 450
#define dfrobot_btnLEFT_analog 650
#define dfrobot_btnSELECT_analog 850
// For V1.0 board use these values
// #define dfrobot_btnRIGHT_analog 50
// #define dfrobot_btnUP_analog 195
// #define dfrobot_btnDOWN_analog 380
// #define dfrobot_btnLEFT_analog 555
// #define dfrobot_btnSELECT_analog 790
// button to memory mappings (0 = command button, 1 = memory 1, 2 = memory 2, etc.)
#define dfrobot_btnRIGHT 2
#define dfrobot_btnUP 1
#define dfrobot_btnDOWN 3
#define dfrobot_btnLEFT 4
#define dfrobot_btnSELECT 0
#define dfrobot_btnNONE 255 // do not change
#endif
#define sequencer_pins_active_state HIGH
#define sequencer_pins_inactive_state LOW
#define ptt_line_active_state HIGH
#define ptt_line_inactive_state LOW
#define tx_key_line_active_state HIGH
#define tx_key_line_inactive_state LOW
#define ptt_input_pin_active_state LOW
#define ptt_input_pin_inactive_state HIGH
#define tx_inhibit_pin_active_state LOW
#define tx_inhibit_pin_inactive_state HIGH
#define tx_pause_pin_active_state LOW
#define tx_pause_pin_inactive_state HIGH
#define sidetone_line_active_state HIGH
#define sidetone_line_inactive_state LOW
#if defined(ARDUINO_MAPLE_MINI) || defined(ARDUINO_GENERIC_STM32f103C) //sp5iou 20180329
#define button_value_factor 4095 //sp5iou contributed
#else
#define button_value_factor 1023
#endif
#define farnsworth_timing_calibration 1.15
#define sidetone_volume_low_limit 10
#define sidetone_volume_high_limit 500
#define custom_startup_field "your custom text here" // an example could be callsign and name, eg. "AB1XYZ Bob", (or "Worlds best operator" which requires a 20 column display), string length shouldo be no more than the number of columns on the display
#define command_mode_acknowledgement_character 'E'
#if defined(FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT)
#define command_a_iambic_a "A"
#define command_b_iambic_b "B"
#define command_c_single_paddle "SINGLE"
#define command_d_ultimatic "ULT"
#define command_h_weight_dit_dah_ratio_default "R"
#define command_i_tx_on "TX ON"
#define command_i_tx_off "TX OFF"
#define command_k_dit_dah_buffers_on "ON"
#define command_k_dit_dah_buffers_off "OFF"
#define command_n_paddle_reverse "REV"
#define command_n_paddle_normal "NORM"
#define command_o_sidetone_off "ST OFF"
#define command_o_sidetone_paddle_only "ST PD ONLY"
#define command_o_sidetone_on "ST ON"
#define command_t_tune_mode "TUNE"
#define command_v_potentiometer_on "POT ON"
#define command_v_potentiometer_off "POT OFF"
#define command_error "ERR"
#endif //FEATURE_COMMAND_MODE_ENHANCED_CMD_ACKNOWLEDGEMENT
#define HI_TEXT "HI" // Must be in UPPER case