diff --git a/config.h b/config.h new file mode 100644 index 0000000..134c551 --- /dev/null +++ b/config.h @@ -0,0 +1,91 @@ +//====================================================================== +// config.h +//====================================================================== + +#ifndef __iop_config_h__ +#define __iop_config_h__ + +// Uncomment to use the "factory" calibration mode. This is intended to +// allow calibration of IOP settings, separately from the uBITX/Raduino. +// There will be no pass-thru of any CAT. +#define FACTORY_CALIBRATION + +// IOPConfig +// Used to store configuration parameters during runtime, as well as to +// save them to EEPROM. +struct IOPConfig { + + // RECEIVE PARAMETERS + + // rig-in parameters (RX) + uint8_t rxRigInLevel = 5; + float rxRigInVol = 0.7; + float rxRigInCal = 1.0; + // USB-in parameters (RX) - debug/monitor use only + bool rxUSBInEnable = false; + float rxUSBInVol = 1.0; + float rxUSBInCal = 1.0; + // speaker-out (DAC) parameters (RX) + float rxSpkrOutCal = 1.0; + // line-out parameters (RX) + uint8_t rxLineOutLevel = 29; + float rxLineOutCal = 1.0; + // USB-out parameters (RX) + float rxUSBOutCal = 1.0; + + // TRANSMIT PARAMETERS + + // NOTE: Default rig-out parameters are based on trying to hit a 25mVrms output to the + // rig. This is based on some discussion at the following URL: + // + // https://groups.io/g/BITX20/message/58951 + // + // This may or may not be totally applicable. I believe it was for IMD/spurs on a pre-V5 + // version of the uBITX. So it may be OBE for my V5. It also alludes to modifications + // to the transmit audio chain, which may be something I need to look into (i.e. increasing + // the gain on the initial mic pre-amp). + // + // Specifically, for the rig-out parameters: + // line out level 31 = 1.16 V p-p + // = 0.58 V peak + // = 0.41 V rms = 410 mV rms + // so output calibration needs to reduce that to 17.5 mV rms (70% of 25 mV rms) + // txMicInCal = 0.043 ... seems pretty low... + // + // Likewise, default line-in (TX) parameters assume consumer line level + // input, but with the default audio adaptor line-in level setting (5 = 1.33V p-p). + // line in level 5 = 1.33 V p-p + // signal in = 0.894 V p-p + // = 0.447 V peak + // = 0.316 V rms = 316 mV rms + // so input calibration needs to convert that to the 410 mV noted above (equivalent + // for the microphone), so that when that signal gets to the rig-out, it gets + // treated the same as the mic input. + // txLineInCal = 1.30 + + // microphone-in parameters (TX) + uint8_t txMicInGain = 12; + float txMicInVol = 0.7; + float txMicInCal = 1.0; + // line-in parameters (TX) + uint8_t txLineInLevel = 5; + float txLineInVol = 0.7; + float txLineInCal = 1.30; + // USB-in parameters (TX) + float txUSBInVol = 0.7; + float txUSBInCal = 1.0; + // rig-out parameters (TX) - default settings are based on hitting 70% of 25mVrms w/ mic + uint8_t txRigOutLevel = 29; //31; + float txRigOutCal = 1.0; //0.043; + // USB-out parameters (TX)- debug/monitor use only + bool txUSBOutEnable = true; + float txUSBOutCal = 1.0; +}; + +extern IOPConfig iopConfig; + +#endif + +//====================================================================== +// EOF +//======================================================================