UHSDR/UHSDR-active-devel/mchf-eclipse/drivers/ui/ui_configuration.h
2022-11-08 16:13:55 +01:00

713 lines
36 KiB
C

/* -*- mode: c; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4; coding: utf-8 -*- */
/************************************************************************************
** **
** UHSDR **
** a powerful firmware for STM32 based SDR transceivers **
** **
**---------------------------------------------------------------------------------**
** **
** File name: **
** Description: **
** Last Modified: **
** Licence: GNU GPLv3 **
************************************************************************************/
#ifndef DRIVERS_UI_UI_CONFIGURATION_H_
#define DRIVERS_UI_UI_CONFIGURATION_H_
#include "uhsdr_board.h"
enum
{
ConfigEntry_Stop = 0,
ConfigEntry_UInt8,
ConfigEntry_UInt16,
ConfigEntry_UInt32_16,
ConfigEntry_Int32_16,
ConfigEntry_Int16,
ConfigEntry_Int32, //this type saves and reads two subsequent 16bit words
ConfigEntry_UInt8x2, // this type saves and reads two indepent 8 bit values stored in a 16bit structure. This is relevant for defaults, which are independent
// ConfigEntry_Bool,
Calib_Val = 0x10000000, // if this is "or"ed with a normal ConfigEntry_... value, it indicates this parameter is a hardware calibration parameter.
ConfigEntry_TypeMask = 0x0000ffff, // we support 2^16 different types, this is plenty.
};
typedef struct
{
int typeId;
uint16_t id;
volatile void* val_ptr;
int32_t val_default;
int32_t val_min;
int32_t val_max;
// uint16_t item_count; // 0 or 1 indicates single value; higher values indicate arrays
// uint16_t item_data_spacing; // only used for 32bit values; indicates the distance of the higher 16 bits from the lower 16bits
} ConfigEntryDescriptor;
const ConfigEntryDescriptor* UiConfiguration_GetEntry(uint16_t id);
void UiConfiguration_LoadEepromValues(bool load_freq_mode_defaults, bool load_eeprom_defaults);
uint16_t UiConfiguration_SaveEepromValues(void);
void UiConfiguration_UpdateMacroCap(void);
// Configuration Value Definitions Follow
//
//
#define SIDETONE_MAX_GAIN 15 // Maximum sidetone gain
#define DEFAULT_SIDETONE_GAIN 5 // Default sidetone gain
//
#define CW_KEYER_SPEED_MIN 5 // Minimum keyer speed
#define CW_KEYER_SPEED_MAX 48 // Maximum keyer speed
#define CW_KEYER_SPEED_DEFAULT 20 // Default keyer speed
//
//
#define USB_FREQ_THRESHOLD (10000000) // dial frequency at and above which the default is USB, Hz
//
//
#define MIN_RIT_VALUE -60 // Minimum RIT Value -1.2 kHz
#define MAX_RIT_VALUE 60 // Maximum RIT Value +1.2 kHz
#define LINEOUT_GAIN_DEFAULT 0x49 // Default lineout gain setting in dB steps
#define LINEOUT_GAIN_MIN 1 // min lineout gain setting in dB steps
#define LINEOUT_GAIN_MAX 0x50 // max lineout gain setting in dB steps
#define AUDIO_GAIN_DEFAULT 16 // Default audio gain
#define AUDIO_GAIN_MAX 30 // Maximum audio gain setting
#define DIG_GAIN_MAX 31 // Maximum audio gain setting
#define DIG_GAIN_DEFAULT 16 // Default audio gain
//
// The following are used in the max volume setting in the menu system
//
#define MAX_VOLUME_MIN 8 // Minimum setting for maximum volume
#define MAX_VOLUME_MAX AUDIO_GAIN_MAX // Maximum setting for maximum volume
#define MAX_VOLUME_DEFAULT AUDIO_GAIN_DEFAULT
//
#define MAX_VOLUME_RED_THRESH 10 // "MAX VOLUME" setting at or below which number will be RED to warn user
#define MAX_VOLUME_YELLOW_THRESH 16 // "MAX VOLUME" setting at or below which number will be YELLOW to warn user
#define MAGNIFY_MIN 0
#define MAGNIFY_MAX 5
#define MAGNIFY_DEFAULT 0
#define MAGNIFY_NUM (MAGNIFY_MAX+1)
//
#define PA_BIAS_MAX 115 // Maximum PA Bias Setting
#define PA_BIAS_DEFAULT 0 // Default PA Bias setting
#define PA_BIAS_LOW_LIMIT 20 // Minimum bias setting. (Below this, number is red)
//
#define BIAS_OFFSET 25 // Offset value to be added to bias setting
// DA value = (OFFSET + (2*setting)) where DA value is 0-255
//
#define XVERTER_MULT_MAX 10 // maximum LO multipler in xverter mode
//#define XVERTER_OFFSET_MAX 999000000 // Maximum transverter offset (999 MHz)
#define XVERTER_OFFSET_MAX_HZ 499999999 // Maximum transverter offset, setting in Hz. More - in kHz
#define XVERTER_OFFSET_MAX 1999999999 // Maximum transverter offset
//
#define AUTO_LSB_USB_OFF 0
#define AUTO_LSB_USB_ON 1
#define AUTO_LSB_USB_60M 2
#define AUTO_LSB_USB_MAX 2
#define AUTO_LSB_USB_DEFAULT AUTO_LSB_USB_60M
// used to limit the voltmeter calibration parameters
//
#define POWER_VOLTMETER_CALIBRATE_DEFAULT 100
#define POWER_VOLTMETER_CALIBRATE_MIN 00
#define POWER_VOLTMETER_CALIBRATE_MAX 200
#define LOW_POWER_CONFIG_DEFAULT (90-LOW_POWER_THRESHOLD_OFFSET)
#define LOW_POWER_CONFIG_MIN 0
#define LOW_POWER_CONFIG_MAX (LOW_POWER_ENABLE_MASK + LOW_POWER_THRESHOLD_MAX)
#define SWR_CAL_MIN 75
#define SWR_CAL_MAX 150
#define SWR_CAL_DEFAULT 100
//
#define SENSOR_NULL_MIN 75
#define SENSOR_NULL_MAX 125
#define SENSOR_NULL_DEFAULT 100
#define SPEC_COLOUR_TRACE_DEFAULT SPEC_WHITE
#define SPEC_COLOUR_TRACEBW_DEFAULT SPEC_WHITE
#define SPEC_COLOUR_BACKGRBW_DEFAULT 20
#define SPEC_COLOUR_GRID_DEFAULT SPEC_GREY4
#define SPEC_COLOUR_SCALE_DEFAULT SPEC_GREY4
#define FILTER_DISP_COLOUR_DEFAULT SPEC_GREY4
//
// *************************************************************************************************************************
//
// EEPROM Items IDs
//
// These do NOT use "enum" as it is important that the number *NOT* change
// by the insertion of new variables: All NEW variable should be placed at
// the END of the list to maintain compatibility with older versions and the settings!
// If a firmware no longer uses an ID, do not delete the ID entry, just comment it out!
// This allows to track former use of an ID for a particular purpose.
// DO NOT REUSE PREVIOUSLY USED IDs without thinking twice. Old entries from former
// use may cause unexpected behavior with the new firmware and vice versa
// if downgrading from a new one to an old firmware.
//
//
#define EEPROM_ZERO_LOC 0
#define EEPROM_BAND_MODE 1
#define EEPROM_FREQ_HIGH 2
#define EEPROM_FREQ_LOW 3
#define EEPROM_FREQ_STEP 4
#define EEPROM_TX_AUDIO_SRC 5
#define EEPROM_TCXO_STATE 6
#define EEPROM_PA_BIAS 7
#define EEPROM_AUDIO_GAIN 8
#define EEPROM_RX_CODEC_GAIN 9
#define EEPROM_MAX_VOLUME 10
#define EEPROM_POWER_STATE 11
#define EEPROM_TX_POWER_LEVEL 12
#define EEPROM_CW_KEYER_SPEED 13
#define EEPROM_CW_KEYER_MODE 14
#define EEPROM_CW_SIDETONE_GAIN 15
#define EEPROM_MIC_BOOST 16
#define EEPROM_TX_IQ_80M_GAIN_BALANCE 17 // TX gain balance
#define EEPROM_TX_IQ_80M_PHASE_BALANCE 18 // TX phase balance
#define EEPROM_RX_IQ_80M_GAIN_BALANCE 19
#define EEPROM_RX_IQ_80M_PHASE_BALANCE 20
#if 0 /* config value locations below are no longer in use since 2.5.18 */
#define EEPROM_BAND0_MODE 21 // Band/mode/filter memory per-band - bands indexed from here
#define EEPROM_BAND1_MODE 22
#define EEPROM_BAND2_MODE 23
#define EEPROM_BAND3_MODE 24
#define EEPROM_BAND4_MODE 25
#define EEPROM_BAND5_MODE 26
#define EEPROM_BAND6_MODE 27
#define EEPROM_BAND7_MODE 28
#define EEPROM_BAND8_MODE 29
#define EEPROM_BAND9_MODE 30
#define EEPROM_BAND10_MODE 31
#define EEPROM_BAND11_MODE 32
#define EEPROM_BAND12_MODE 33
#define EEPROM_BAND13_MODE 34
#define EEPROM_BAND14_MODE 35
#define EEPROM_BAND15_MODE 36
#define EEPROM_BAND16_MODE 37
#define EEPROM_BAND17_MODE 38 // "Floating" General coverage band
//
//
#define EEPROM_BAND0_FREQ_HIGH 39 // Per-band frequency, high word - bands indexed from here
#define EEPROM_BAND1_FREQ_HIGH 40
#define EEPROM_BAND2_FREQ_HIGH 41
#define EEPROM_BAND3_FREQ_HIGH 42
#define EEPROM_BAND4_FREQ_HIGH 43
#define EEPROM_BAND5_FREQ_HIGH 44
#define EEPROM_BAND6_FREQ_HIGH 45
#define EEPROM_BAND7_FREQ_HIGH 46
#define EEPROM_BAND8_FREQ_HIGH 47
#define EEPROM_BAND9_FREQ_HIGH 48
#define EEPROM_BAND10_FREQ_HIGH 49
#define EEPROM_BAND11_FREQ_HIGH 50
#define EEPROM_BAND12_FREQ_HIGH 51
#define EEPROM_BAND13_FREQ_HIGH 52
#define EEPROM_BAND14_FREQ_HIGH 53
#define EEPROM_BAND15_FREQ_HIGH 54
#define EEPROM_BAND16_FREQ_HIGH 55
#define EEPROM_BAND17_FREQ_HIGH 56 // "Floating" General coverage band
//
//
#define EEPROM_BAND0_FREQ_LOW 57 // Per-band frequency, high word - bands indexed from here
#define EEPROM_BAND1_FREQ_LOW 58
#define EEPROM_BAND2_FREQ_LOW 59
#define EEPROM_BAND3_FREQ_LOW 60
#define EEPROM_BAND4_FREQ_LOW 61
#define EEPROM_BAND5_FREQ_LOW 62
#define EEPROM_BAND6_FREQ_LOW 63
#define EEPROM_BAND7_FREQ_LOW 64
#define EEPROM_BAND8_FREQ_LOW 65
#define EEPROM_BAND9_FREQ_LOW 66
#define EEPROM_BAND10_FREQ_LOW 67
#define EEPROM_BAND11_FREQ_LOW 68
#define EEPROM_BAND12_FREQ_LOW 69
#define EEPROM_BAND13_FREQ_LOW 70
#define EEPROM_BAND14_FREQ_LOW 71
#define EEPROM_BAND15_FREQ_LOW 72
#define EEPROM_BAND16_FREQ_LOW 73
#define EEPROM_BAND17_FREQ_LOW 74 // "Floating" General coverage band
#endif
//
//
#define EEPROM_FREQ_CAL 75 // Frequency calibration
#define EEPROM_NB_SETTING 76 // Noise Blanker Setting
//#define EEPROM_AGC_MODE 77 // AGC setting
#define EEPROM_MIC_GAIN 78 // Mic gain setting
#define EEPROM_LINE_GAIN 79 // Line gain setting
#define EEPROM_SIDETONE_FREQ 80 // Sidetone frequency (Hz)
#define EEPROM_SPEC_SCOPE_SPEED 81 // Spectrum Scope Speed
#define EEPROM_SPECTRUM_FILTER 82 // Spectrum Scope filter strength
//#define EEPROM_RX_GAIN 83 // RX Gain setting (e.g. minimum RF gain as might be used for manual AGC)
//#define EEPROM_AGC_CUSTOM_DECAY 84 // Custom setting for AGC decay rate
#define EEPROM_SPECTRUM_TRACE_COLOUR 85 // Custom setting for spectrum scope trace colour
#define EEPROM_SPECTRUM_GRID_COLOUR 86 // Custom setting for spectrum scope grid colour
#define EEPROM_SPECTRUM_SCALE_COLOUR 87 // Custom setting for spectrum scope frequency scale colour
#define EEPROM_PADDLE_REVERSE 88 // TRUE if paddle is to be reversed
#define EEPROM_CW_RX_DELAY 89 // Delay after last CW element before returning to receive
#define EEPROM_SPECTRUM_CENTRE_LINE_COLOUR 90 // Custom setting for spectrum scope grid center marker colour
//
#define EEPROM_DETECTOR_COUPLING_COEFF_2200M 91 // Calibration coupling coefficient for FWD/REV power sensor for 80 meters
#define EEPROM_DETECTOR_COUPLING_COEFF_630M 92 // Calibration coupling coefficient for FWD/REV power sensor for 80 meters
#define EEPROM_DETECTOR_COUPLING_COEFF_80M 93 // Calibration coupling coefficient for FWD/REV power sensor for 80 meters
#define EEPROM_DETECTOR_COUPLING_COEFF_40M 94 // Calibration coupling coefficient for FWD/REV power sensor for 60/40 meters
#define EEPROM_DETECTOR_COUPLING_COEFF_20M 95 // Calibration coupling coefficient for FWD/REV power sensor for 30/20/17 meters
#define EEPROM_DETECTOR_COUPLING_COEFF_15M 96 // Calibration coupling coefficient for FWD/REV power sensor for 15/12 meters
//
// The following are the coefficients used to set the RF output power settings
//
#define EEPROM_BAND0_5W 97 // 5 watt power setting, 80m
#define EEPROM_BAND1_5W 98 // 5 watt power setting, 60m
#define EEPROM_BAND2_5W 99 // 5 watt power setting, 40m
#define EEPROM_BAND3_5W 100 // 5 watt power setting, 30m
#define EEPROM_BAND4_5W 101 // 5 watt power setting, 20m
#define EEPROM_BAND5_5W 102 // 5 watt power setting, 17m
#define EEPROM_BAND6_5W 103 // 5 watt power setting, 15m
#define EEPROM_BAND7_5W 104 // 5 watt power setting, 12m
#define EEPROM_BAND8_5W 105 // 5 watt power setting, 10m
#define EEPROM_BAND9_5W 106 // 5 watt power setting, 6m
#define EEPROM_BAND10_5W 107 // 5 watt power setting, 4m
#define EEPROM_BAND11_5W 108 // 5 watt power setting, 2m
#define EEPROM_BAND12_5W 109 // 5 watt power setting, 70cm
#define EEPROM_BAND13_5W 110 // 5 watt power setting, 23cm
#define EEPROM_BAND14_5W 111 // 5 watt power setting, 2200m
#define EEPROM_BAND15_5W 112 // 5 watt power setting, 630m
#define EEPROM_BAND16_5W 113 // 5 watt power setting, 160m
#define EEPROM_BAND17_5W 114 // reserved
//
#define EEPROM_BAND0_FULL 115 // "FULL" power setting, 80m
#define EEPROM_BAND1_FULL 116 // "FULL" power setting, 60m
#define EEPROM_BAND2_FULL 117 // "FULL" power setting, 40m
#define EEPROM_BAND3_FULL 118 // "FULL" power setting, 30m
#define EEPROM_BAND4_FULL 119 // "FULL" power setting, 20m
#define EEPROM_BAND5_FULL 120 // "FULL" power setting, 17m
#define EEPROM_BAND6_FULL 121 // "FULL" power setting, 15m
#define EEPROM_BAND7_FULL 122 // "FULL" power setting, 12m
#define EEPROM_BAND8_FULL 123 // "FULL" power setting, 10m
#define EEPROM_BAND9_FULL 124 // "FULL" power setting, 6m
#define EEPROM_BAND10_FULL 125 // "FULL" power setting, 4m
#define EEPROM_BAND11_FULL 126 // "FULL" power setting, 2m
#define EEPROM_BAND12_FULL 127 // "FULL" power setting, 70cm
#define EEPROM_BAND13_FULL 128 // "FULL" power setting, 23cm
#define EEPROM_BAND14_FULL 129 // "FULL" power setting, 2200m
#define EEPROM_BAND15_FULL 130 // "FULL" power setting, 630m
#define EEPROM_BAND16_FULL 131 // "FULL" power setting, 160m
#define EEPROM_BAND17_FULL 132 // reserved
//
#if 0 // No longer being used, superseded by filter path
#define EEPROM_FILTER_300HZ_SEL 133 // Selection of 300 Hz filter
#define EEPROM_FILTER_500HZ_SEL 134 // Selection of 500 Hz filter
#define EEPROM_FILTER_1K8_SEL 135 // Selection of 1.8 kHz filter
#define EEPROM_FILTER_2K3_SEL 136 // Selection of 2.3 kHz filter
#define EEPROM_FILTER_3K6_SEL 137 // Selection of 3.6 kHz filter
#define EEPROM_FILTER_WIDE_SEL 138 // Selection of "Wide" filter (>3.6kHz)
//
#endif
#define EEPROM_TX_IQ_10M_GAIN_BALANCE 139 // TX gain balance
#define EEPROM_TX_IQ_10M_PHASE_BALANCE 140 // TX phase balance
#define EEPROM_RX_IQ_10M_GAIN_BALANCE 141
#define EEPROM_RX_IQ_10M_PHASE_BALANCE 142
#define EEPROM_SENSOR_NULL 143 // Power meter sensor null calibrate
//#define EEPROM_REV_PWR_CAL 144 // REV power meter calibrate
//
#define EEPROM_XVERTER_DISP 145 // TRUE if display is offset with transverter frequency offset
#define EEPROM_XVERTER_OFFSET_HIGH 146 // Frequency by which the display is offset for transverter use, high byte
//
#define EEPROM_VFO_MEM_MODE 147 // settings of VFO/SPLIT/Memory configuration bits - see variable "vfo_mem_mode" for information.
//
#define EEPROM_XVERTER_OFFSET_LOW 148 // Low byte of above
//
#define EEPROM_SPECTRUM_MAGNIFY 149 // TRUE if spectrum scope is to be magnified
//
//#define EEPROM_WIDE_FILT_CW_DISABLE 150 // TRUE if wide filters are to be disabled in CW mode
//#define EEPROM_NARROW_FILT_SSB_DISABLE 151 // TRUE if narrow filters are to be disabled in SSB mode
//
#define EEPROM_AM_MODE_DISABLE 152 // TRUE if AM mode is to be disabled
//
#define EEPROM_PA_CW_BIAS 153 // If non-zero, this is the PA bias setting when in CW mode
//
#define EEPROM_SPECTRUM_DB_DIV 154 // Spectrum Scope dB/Division
#define EEPROM_SPECTRUM_AGC_RATE 155 // AGC setting for spectrum scope
//
#define EEPROM_METER_MODE 156 // Stored setting of meter mode
//
#define EEPROM_ALC_DECAY_TIME 157 // ALC Decay time
#define EEPROM_ALC_POSTFILT_TX_GAIN 158 // ALC post-filter TX audio gain
//
#define EEPROM_STEP_SIZE_CONFIG 159 // TRUE if there is to be a line under the frequency digit indicating step size
//
#define EEPROM_DSP_MODE 160 // Stores the DSP operational mode
#define EEPROM_DSP_NR_STRENGTH 161 // Stores the DSP Noise Reduction operational strength
#ifdef OBSOLETE_NR
#define EEPROM_DSP_NR_DECOR_BUFLEN 162 // DSP Noise Reduction De-correlator buffer length
#define EEPROM_DSP_NR_FFT_NUMTAPS 163 // DSP Noise Reduction FFT number of taps
#define EEPROM_DSP_NOTCH_DECOR_BUFLEN 164 // DSP Notch De-correlator buffer length
#define EEPROM_DSP_NOTCH_CONV_RATE 165 // DSP Notch convergence rate
#endif
#ifdef USE_LMS_AUTONOTCH
#define EEPROM_DSP_NOTCH_DECOR_BUFLEN 164 // DSP Notch De-correlator buffer length
#define EEPROM_DSP_NOTCH_CONV_RATE 165 // DSP Notch convergence rate
#endif
//
//#define EEPROM_MAX_RX_GAIN 166 // Maximum RX gain - adjusts maximum allowed AGC gain in S-units
#define EEPROM_TX_AUDIO_COMPRESS 167 // TX audio compressor setting, used to calculate other values
//
#define EEPROM_TX_IQ_80M_GAIN_BALANCE_TRANS_OFF 168 // IQ Gain balance for AM reception
//
#define EEPROM_TX_DISABLE 169 // TRUE of transmit is to be disabled
#define EEPROM_FLAGS1 170 // Miscellaneous status flag, saved in EEPROM - see variable "flags1"
#define EEPROM_VERSION_RELEASE 171 // Storage of current version release - used to detect change of firmware
#define EEPROM_NB_AGC_TIME_CONST 172 // Noise blanker AGC time constant setting
#define EEPROM_CW_OFFSET_MODE 173 // CW Offset mode
#define EEPROM_FREQ_CONV_MODE 174 // Frequency Conversion Mode (e.g. I/Q frequency conversion done in receive/transmit to offset from zero)
#define EEPROM_LSB_USB_AUTO_SELECT 175 // Auto selection of LSB/USB above/below 10 MHz (including 60 meters)
#define EEPROM_VERSION_MAJOR 176 // Storage of current version build number - used to detect change of firmware
#define EEPROM_LCD_BLANKING_CONFIG 177 // Configuration of automatic LCD blanking mode settings
#define EEPROM_VOLTMETER_CALIBRATE 178 // Holder for calibration of the on-screen voltmeter
#define EEPROM_WATERFALL_COLOR_SCHEME 179 // Color scheme for waterfall display
#define EEPROM_WATERFALL_VERTICAL_STEP_SIZE 180 // Number of vertical steps of waterfall per iteration
#define EEPROM_WATERFALL_OFFSET 181 // Palette offset for waterfall
#define EEPROM_WATERFALL_CONTRAST 182 // Palette contrast multiplier for waterfall
//
// VFO A storage
//
#define EEPROM_BAND0_MODE_A 183 // Band/mode/filter memory per-band - bands indexed from here
#define EEPROM_BAND1_MODE_A 184
#define EEPROM_BAND2_MODE_A 185
#define EEPROM_BAND3_MODE_A 186
#define EEPROM_BAND4_MODE_A 187
#define EEPROM_BAND5_MODE_A 188
#define EEPROM_BAND6_MODE_A 189
#define EEPROM_BAND7_MODE_A 190
#define EEPROM_BAND8_MODE_A 191
#define EEPROM_BAND9_MODE_A 192
#define EEPROM_BAND10_MODE_A 193
#define EEPROM_BAND11_MODE_A 194
#define EEPROM_BAND12_MODE_A 195
#define EEPROM_BAND13_MODE_A 196
#define EEPROM_BAND14_MODE_A 197
#define EEPROM_BAND15_MODE_A 198
#define EEPROM_BAND16_MODE_A 199
#define EEPROM_BAND17_MODE_A 200 // "Floating" General coverage band
//
#define EEPROM_BAND0_FREQ_HIGH_A 201 // Per-band frequency, high word - bands indexed from here
#define EEPROM_BAND1_FREQ_HIGH_A 202
#define EEPROM_BAND2_FREQ_HIGH_A 203
#define EEPROM_BAND3_FREQ_HIGH_A 204
#define EEPROM_BAND4_FREQ_HIGH_A 205
#define EEPROM_BAND5_FREQ_HIGH_A 206
#define EEPROM_BAND6_FREQ_HIGH_A 207
#define EEPROM_BAND7_FREQ_HIGH_A 208
#define EEPROM_BAND8_FREQ_HIGH_A 209
#define EEPROM_BAND9_FREQ_HIGH_A 210
#define EEPROM_BAND10_FREQ_HIGH_A 211
#define EEPROM_BAND11_FREQ_HIGH_A 212
#define EEPROM_BAND12_FREQ_HIGH_A 213
#define EEPROM_BAND13_FREQ_HIGH_A 214
#define EEPROM_BAND14_FREQ_HIGH_A 215
#define EEPROM_BAND15_FREQ_HIGH_A 216
#define EEPROM_BAND16_FREQ_HIGH_A 217
#define EEPROM_BAND17_FREQ_HIGH_A 218 // "Floating" General coverage band
//
#define EEPROM_BAND0_FREQ_LOW_A 219 // Per-band frequency, high word - bands indexed from here
#define EEPROM_BAND1_FREQ_LOW_A 220
#define EEPROM_BAND2_FREQ_LOW_A 221
#define EEPROM_BAND3_FREQ_LOW_A 222
#define EEPROM_BAND4_FREQ_LOW_A 223
#define EEPROM_BAND5_FREQ_LOW_A 224
#define EEPROM_BAND6_FREQ_LOW_A 225
#define EEPROM_BAND7_FREQ_LOW_A 226
#define EEPROM_BAND8_FREQ_LOW_A 227
#define EEPROM_BAND9_FREQ_LOW_A 228
#define EEPROM_BAND10_FREQ_LOW_A 229
#define EEPROM_BAND11_FREQ_LOW_A 230
#define EEPROM_BAND12_FREQ_LOW_A 231
#define EEPROM_BAND13_FREQ_LOW_A 232
#define EEPROM_BAND14_FREQ_LOW_A 233
#define EEPROM_BAND15_FREQ_LOW_A 234
#define EEPROM_BAND16_FREQ_LOW_A 235
#define EEPROM_BAND17_FREQ_LOW_A 236 // "Floating" General coverage band
//
// VFO B storage
//
#define EEPROM_BAND0_MODE_B 237 // Band/mode/filter memory per-band - bands indexed from here
#define EEPROM_BAND1_MODE_B 238
#define EEPROM_BAND2_MODE_B 239
#define EEPROM_BAND3_MODE_B 240
#define EEPROM_BAND4_MODE_B 241
#define EEPROM_BAND5_MODE_B 242
#define EEPROM_BAND6_MODE_B 243
#define EEPROM_BAND7_MODE_B 244
#define EEPROM_BAND8_MODE_B 245
#define EEPROM_BAND9_MODE_B 246
#define EEPROM_BAND10_MODE_B 247
#define EEPROM_BAND11_MODE_B 248
#define EEPROM_BAND12_MODE_B 249
#define EEPROM_BAND13_MODE_B 250
#define EEPROM_BAND14_MODE_B 251
#define EEPROM_BAND15_MODE_B 252
#define EEPROM_BAND16_MODE_B 253
#define EEPROM_BAND17_MODE_B 254 // "Floating" General coverage band
//
//
#define EEPROM_BAND0_FREQ_HIGH_B 255 // Per-band frequency, high word - bands indexed from here
#define EEPROM_BAND1_FREQ_HIGH_B 256
#define EEPROM_BAND2_FREQ_HIGH_B 257
#define EEPROM_BAND3_FREQ_HIGH_B 258
#define EEPROM_BAND4_FREQ_HIGH_B 259
#define EEPROM_BAND5_FREQ_HIGH_B 260
#define EEPROM_BAND6_FREQ_HIGH_B 261
#define EEPROM_BAND7_FREQ_HIGH_B 262
#define EEPROM_BAND8_FREQ_HIGH_B 263
#define EEPROM_BAND9_FREQ_HIGH_B 264
#define EEPROM_BAND10_FREQ_HIGH_B 265
#define EEPROM_BAND11_FREQ_HIGH_B 266
#define EEPROM_BAND12_FREQ_HIGH_B 267
#define EEPROM_BAND13_FREQ_HIGH_B 268
#define EEPROM_BAND14_FREQ_HIGH_B 269
#define EEPROM_BAND15_FREQ_HIGH_B 270
#define EEPROM_BAND16_FREQ_HIGH_B 271
#define EEPROM_BAND17_FREQ_HIGH_B 272 // "Floating" General coverage band
//
//
#define EEPROM_BAND0_FREQ_LOW_B 273 // Per-band frequency, high word - bands indexed from here
#define EEPROM_BAND1_FREQ_LOW_B 274
#define EEPROM_BAND2_FREQ_LOW_B 275
#define EEPROM_BAND3_FREQ_LOW_B 276
#define EEPROM_BAND4_FREQ_LOW_B 277
#define EEPROM_BAND5_FREQ_LOW_B 278
#define EEPROM_BAND6_FREQ_LOW_B 279
#define EEPROM_BAND7_FREQ_LOW_B 280
#define EEPROM_BAND8_FREQ_LOW_B 281
#define EEPROM_BAND9_FREQ_LOW_B 282
#define EEPROM_BAND10_FREQ_LOW_B 283
#define EEPROM_BAND11_FREQ_LOW_B 284
#define EEPROM_BAND12_FREQ_LOW_B 285
#define EEPROM_BAND13_FREQ_LOW_B 286
#define EEPROM_BAND14_FREQ_LOW_B 287
#define EEPROM_BAND15_FREQ_LOW_B 288
#define EEPROM_BAND16_FREQ_LOW_B 289
#define EEPROM_BAND17_FREQ_LOW_B 290 // "Floating" General coverage band
//
#define EEPROM_WATERFALL_SPEED 291 // Spectrum Scope Speed
#define EEPROM_SPECTRUM_SCOPE_NOSIG_ADJUST 292 // adjustment for no-signal conditions of spectrum scope
#define EEPROM_WATERFALL_NOSIG_ADJUST 293 // adjustment for no-signal conditions of waterfall
#define EEPROM_DSP_NOTCH_FFT_NUMTAPS 294 // DSP Notch FFT number of taps
#define EEPROM_SPECTRUM_SIZE 295 // size of waterfall display (and other parameters) - size setting is in lower nybble, upper nybble/byte reserved
#define EEPROM_FFT_WINDOW 296 // FFT Window information (lower nybble currently used - upper nybble reserved)
#define EEPROM_TXRX_SWITCH_AUDIO_MUTE_DELAY 297 // timer used for muting TX audio when keying PTT to suppress "click" or "thump"
#define EEPROM_FLAGS2 298 // Miscellaneous status flag, saved in EEPROM - see variable "flags2"
#define EEPROM_FILTER_DISP_COLOUR 299 // This contains the color of the line under the spectrum/waterfall display
#define EEPROM_TX_IQ_10M_GAIN_BALANCE_TRANS_OFF 300 // IQ Gain balance for AM transmission
#define EEPROM_TX_IQ_10M_PHASE_BALANCE_TRANS_OFF 301 // IQ Gain balance for FM transmission
#define EEPROM_FM_SUBAUDIBLE_TONE_GEN 302 // index for storage of subaudible tone generation
#define EEPROM_FM_TONE_BURST_MODE 303 // tone burst mode
#define EEPROM_FM_SQUELCH_SETTING 304 // FM squelch setting
#define EEPROM_FM_RX_BANDWIDTH 305 // bandwidth setting for FM reception
#define EEPROM_RX_IQ_FM_GAIN_BALANCE 306 // IQ Gain balance for AM reception
#define EEPROM_FM_SUBAUDIBLE_TONE_DET 307 // index for storage of subaudible tone detection
#define EEPROM_KEYBOARD_BEEP_FREQ 308 // keyboard beep frequency (in Hz)
#define EEPROM_BEEP_LOUDNESS 309 // loudness of beep (keyboard, sidetone test)
#define EEPROM_VERSION_MINOR 310 // Storage of current minor version number - used to detect change of firmware
#define EEPROM_DETECTOR_COUPLING_COEFF_160M 311 // Calibration coupling coefficient for FWD/REV power sensor for 160 meters
#define EEPROM_DETECTOR_COUPLING_COEFF_6M 312 // Calibration coupling coefficient for FWD/REV power sensor for 6 meters
#define EEPROM_TUNE_POWER_LEVEL 313
// #define EEPROM_CAT_MODE_ACTIVE 314
#define EEPROM_CAT_XLAT 315
//#define EEPROM_CAT_IN_SANDBOX 316
#define EEPROM_METER_COLOUR_UP 327
#define EEPROM_METER_COLOUR_DOWN 328
#define EEPROM_FILTER_PATH_MAP_BASE 329 //
#define EEPROM_FILTER_PATH_MAP_END (329 + FILTER_MODE_MAX*FILTER_PATH_MEM_MAX) // this is currently 5*5 = 25
//#define EEPROM_SPECTRUM_LIGHT_ENABLE 355
#define EEPROM_MANUAL_NOTCH 356
#define EEPROM_MANUAL_PEAK 357
#define EEPROM_TX_IQ_80M_PHASE_BALANCE_TRANS_OFF 358 // IQ Gain balance for AM reception
#define EEPROM_DISPLAY_DBM 359 // dbm display
#define EEPROM_BASS_GAIN 360 // bass gain lowShelf filter
#define EEPROM_TREBLE_GAIN 361 // treble gain highShelf filter
//#define EEPROM_S_METER 362 // S-Meter configuration
#define EEPROM_TX_FILTER 363 // TX_Filter configuration
//#define EEPROM_TX_BASS_GAIN 364 // TX bass gain lowShelf filter
//#define EEPROM_TX_TREBLE_GAIN 365 // TX treble gain highShelf filter
#define EEPROM_TX_EQ0_GAIN 364 // TX bass EQ filter
#define EEPROM_TX_EQ4_GAIN 365 // TX treble EQ filter
#define EEPROM_SAM_PLL_LOCKING_RANGE 366 //
#define EEPROM_SAM_PLL_STEP_RESPONSE 367 //
#define EEPROM_SAM_PLL_BANDWIDTH 368 //
#define EEPROM_I2C1_SPEED 369 //
#define EEPROM_I2C2_SPEED 370 //
#define EEPROM_SAM_FADE_LEVELER 371
#define EEPROM_LINEOUT_GAIN 372
#define EEPROM_IQ_AUTO_CORRECTION 373 // Receive IQ auto correction ON/OFF
//#define EEPROM_AGC_WDSP_SWITCH 374
#define EEPROM_AGC_WDSP_MODE 375
#define EEPROM_AGC_WDSP_THRESH 376
#define EEPROM_AGC_WDSP_SLOPE 377
#define EEPROM_AGC_WDSP_HANG 378
#define EEPROM_DBM_CALIBRATE 379
#define EEPROM_AGC_WDSP_TAU_DECAY_0 380
#define EEPROM_AGC_WDSP_TAU_HANG_DECAY 381
#define EEPROM_RTC_CALIB 382
#define EEPROM_AGC_WDSP_TAU_DECAY_1 383
#define EEPROM_AGC_WDSP_TAU_DECAY_2 384
#define EEPROM_AGC_WDSP_TAU_DECAY_3 385
#define EEPROM_AGC_WDSP_TAU_DECAY_4 386
#define EEPROM_LOW_POWER_CONFIG 387
#define EEPROM_CW_KEYER_WEIGHT 388
#define EEPROM_DIGI_MODE_CONF 389
#define EEPROM_Scope_TRACE_HL_BW 390
#define EEPROM_Scope_TRACE_HL_BW_BGR 391
#define EEPROM_TScal0_High 392 //callibration data for touchscreen (all data are int32_t divided in two 16bit chunks)
#define EEPROM_TScal0_Low 393
#define EEPROM_TScal1_High 394
#define EEPROM_TScal1_Low 395
#define EEPROM_TScal2_High 396
#define EEPROM_TScal2_Low 397
#define EEPROM_TScal3_High 398
#define EEPROM_TScal3_Low 399
#define EEPROM_TScal4_High 400
#define EEPROM_TScal4_Low 401
#define EEPROM_TScal5_High 402
#define EEPROM_TScal5_Low 403
#define EEPROM_CW_DECODER_ENABLE 404
#define EEPROM_Scope_Graticule_Ypos 405
#define EEPROM_Freq_Display_Font 406
#define EEPROM_NUMBER_OF_ENTRIES 407 // this is the index of the config value which holds the number of used config entries
// , not the value itself (which is in fact EEPROM_FIRST_UNUSED)
#define EEPROM_DSP_MODE_MASK 408
#define EEPROM_ENABLE_PTT_RTS 409
#define EEPROM_CW_DECODER_THRESH 410
#define EEPROM_CW_DECODER_BLOCKSIZE 411
#define EEPROM_SMETER_ALPHAS 412
#define EEPROM_ADJ_TX_IQ_SOMEBANDS 413 // unused, may be reused due to short usage time in its original
#define EEPROM_TX_IQ_20M_GAIN_BALANCE 414
#define EEPROM_TX_IQ_20M_PHASE_BALANCE 415
#define EEPROM_TX_IQ_15M_GAIN_BALANCE 416
#define EEPROM_TX_IQ_15M_PHASE_BALANCE 417
#define EEPROM_TX_IQ_10M_UP_GAIN_BALANCE 418
#define EEPROM_TX_IQ_10M_UP_PHASE_BALANCE 419
#define EEPROM_TX_IQ_20M_GAIN_BALANCE_TRANS_OFF 420
#define EEPROM_TX_IQ_20M_PHASE_BALANCE_TRANS_OFF 421
#define EEPROM_TX_IQ_15M_GAIN_BALANCE_TRANS_OFF 422
#define EEPROM_TX_IQ_15M_PHASE_BALANCE_TRANS_OFF 423
#define EEPROM_TX_IQ_10M_UP_GAIN_BALANCE_TRANS_OFF 424
#define EEPROM_TX_IQ_10M_UP_PHASE_BALANCE_TRANS_OFF 425
#define EEPROM_VSWR_PROTECTION_THRESHOLD 426
#define EEPROM_EXPFLAGS1 427 // Flags for options in Debug/Expert menu - see variable "expflags1"
//#define EEPROM_FIRST_UNUSED 428 // change this if new value ids are introduced, must be correct at any time
#define EEPROM_LO_TX_SUPR0_0 428
#define EEPROM_LO_TX_SUPR0_1 429
#define EEPROM_LO_TX_SUPR0_2 430
#define EEPROM_LO_TX_SUPR0_3 431
#define EEPROM_LO_TX_SUPR0_4 432
#define EEPROM_LO_TX_SUPR0_5 433
#define EEPROM_LO_TX_SUPR0_6 434
#define EEPROM_LO_TX_SUPR0_7 435
#define EEPROM_LO_TX_SUPR0_8 436
#define EEPROM_LO_TX_SUPR0_9 437
#define EEPROM_LO_TX_SUPR0_10 438
#define EEPROM_LO_TX_SUPR0_11 439
#define EEPROM_LO_TX_SUPR0_12 440
#define EEPROM_LO_TX_SUPR1_0 441
#define EEPROM_LO_TX_SUPR1_1 442
#define EEPROM_LO_TX_SUPR1_2 443
#define EEPROM_LO_TX_SUPR1_3 444
#define EEPROM_LO_TX_SUPR1_4 445
#define EEPROM_LO_TX_SUPR1_5 446
#define EEPROM_LO_TX_SUPR1_6 447
#define EEPROM_LO_TX_SUPR1_7 448
#define EEPROM_LO_TX_SUPR1_8 449
#define EEPROM_LO_TX_SUPR1_9 450
#define EEPROM_LO_TX_SUPR1_10 451
#define EEPROM_LO_TX_SUPR1_11 452
#define EEPROM_LO_TX_SUPR1_12 453
#define EEPROM_BOX_COLOUR 454
#define EEPROM_DETECTOR_COUPLING_COEFF_10M 455 // Calibration coupling coefficient for FWD/REV power sensor for 10 meters
#define EEPROM_TX_IQ_6M_GAIN_BALANCE 456
#define EEPROM_TX_IQ_6M_PHASE_BALANCE 457
#define EEPROM_TX_IQ_6M_GAIN_BALANCE_TRANS_OFF 458
#define EEPROM_TX_IQ_6M_PHASE_BALANCE_TRANS_OFF 459
#define EEPROM_TX_IQ_6M_PHASE_BALANCE_TRANS_OFF 459
#define EEPROM_PEAK_IND_TUNE 460 // in 1/4 sec, 0 is OFF
#define EEPROM_XVERTER_OFFSET_TX_HIGH 461 // Secondary frequency by which the display is offset for transverter use, high word
#define EEPROM_XVERTER_OFFSET_TX_LOW 462 // Secondary frequency by which the display is offset for transverter use, low word
#define EEPROM_LO_TX_SUPR0_13 463 // Wild zone
#define EEPROM_LO_TX_SUPR1_13 464 // Wild zone
#define EEPROM_LO_TX_SUPR0_14 465 // 28 MHz Up
#define EEPROM_LO_TX_SUPR1_14 466 // 28 MHz Up
#define EEPROM_TXTLINE_COLOUR 467 // Ticker colour
#define EEPROM_CW_SMOOTH 468 // Smooth of CW signal edges
#define EEPROM_PWR_SCALE_GEN 469 // Power scale for Gen band 5W
#define EEPROM_EXPFLAGS2 470 // Flags for options in the system menu - see variable "expflags2"
#define EEPROM_PWR_SCALE_GEN_FULL 471 // Power scale for Gen band FULL POWER
#define EEPROM_AMBER_BANDCODE 472
#define EEPROM_ANR_N_TAPS 473
#define EEPROM_ANR_DELAY 474
#define EEPROM_ANR_TWO_MU_INT 475
#define EEPROM_ANR_GAMMA_INT 476
#define EEPROM_CW_DECODER_FLAGS 477 // Various flags controlling operation of CW decoder
#define EEPROM_BAND_REGION 478 // store which region the TRX is being used in
#define EEPROM_TX_IQ_160M_GAIN_BALANCE 479 // Advanced I/Q justify
#define EEPROM_TX_IQ_160M_PHASE_BALANCE 480
#define EEPROM_TX_IQ_40M_GAIN_BALANCE 481
#define EEPROM_TX_IQ_40M_PHASE_BALANCE 482
#define EEPROM_TX_IQ_30M_GAIN_BALANCE 483
#define EEPROM_TX_IQ_30M_PHASE_BALANCE 484
#define EEPROM_TX_IQ_17M_GAIN_BALANCE 485
#define EEPROM_TX_IQ_17M_PHASE_BALANCE 486
#define EEPROM_TX_IQ_12M_GAIN_BALANCE 487
#define EEPROM_TX_IQ_12M_PHASE_BALANCE 488
#define EEPROM_TX_IQ_160M_GAIN_BALANCE_TRANS_OFF 489
#define EEPROM_TX_IQ_160M_PHASE_BALANCE_TRANS_OFF 490
#define EEPROM_TX_IQ_40M_GAIN_BALANCE_TRANS_OFF 491
#define EEPROM_TX_IQ_40M_PHASE_BALANCE_TRANS_OFF 492
#define EEPROM_TX_IQ_30M_GAIN_BALANCE_TRANS_OFF 493
#define EEPROM_TX_IQ_30M_PHASE_BALANCE_TRANS_OFF 494
#define EEPROM_TX_IQ_17M_GAIN_BALANCE_TRANS_OFF 495
#define EEPROM_TX_IQ_17M_PHASE_BALANCE_TRANS_OFF 496
#define EEPROM_TX_IQ_12M_GAIN_BALANCE_TRANS_OFF 497
#define EEPROM_TX_IQ_12M_PHASE_BALANCE_TRANS_OFF 498
#define EEPROM_TX_REVERB_GAIN 499
#define EEPROM_TX_REVERB_DELAY 500
#define EEPROM_TX_EQ1_GAIN 501
#define EEPROM_TX_EQ2_GAIN 502
#define EEPROM_TX_EQ3_GAIN 503
#define EEPROM_IQ_FREQ_DELTA 504
#define EEPROM_EXPFLAGS3 505 // Flags for options in the system menu - see variable "expflags3"
#define EEPROM_INPUT_STATE 506 // State of input group - TRX Amber etc.
//#define EEPROM_CQ_COLOUR 507
#define EEPROM_FIRST_UNUSED 507 // change this if new value ids are introduced, must be correct at any time
#define MAX_VAR_ADDR (EEPROM_FIRST_UNUSED - 1) // Max 511
// Note: EEPROM addresses up to 383 are currently defined. If this value is passed you
// need to modify virtual EEPROM routines otherwise system may crash
//#define EEPROM_KEYER_MEMORY_ADDRESS 0x1000
#define EEPROM_KEYER_MEMORY_ADDRESS 0x3C30
#define EEPROM_MEMS_MEMORY_ADDRESS 0x3F5C
#define EEPROM_XVTR_MEMORY_ADDRESS 0x535D
#endif /* DRIVERS_UI_UI_CONFIGURATION_H_ */