ubitx-v5d-xcvr/ubitx_iop/config.h

92 lines
3.3 KiB
C

//======================================================================
// 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 = 31;
float txRigOutCal = 0.043;
// USB-out parameters (TX)- debug/monitor use only
bool txUSBOutEnable = true;
float txUSBOutCal = 1.0;
};
extern IOPConfig iopConfig;
#endif
//======================================================================
// EOF
//======================================================================