diff --git a/tests/platform/calib_read.c b/tests/platform/calib_read.c
new file mode 100644
index 00000000..04686dd2
--- /dev/null
+++ b/tests/platform/calib_read.c
@@ -0,0 +1,495 @@
+/***************************************************************************
+ * Copyright (C) 2020 - 2025 by Federico Amedeo Izzo IU2NUO, *
+ * Niccolò Izzo IU2KIN *
+ * Frederik Saraci IU2NRO *
+ * Silvano Seva IU2KWO *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 3 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, see *
+ ***************************************************************************/
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+struct md3x0FullCalib {
+ // 0x0000
+ uint8_t vox1;
+ uint8_t vox10;
+ uint8_t rxLowVoltage;
+ uint8_t rxFullVoltage;
+ uint8_t rssi1;
+ uint8_t rssi4;
+ uint8_t analogMic;
+ uint8_t digitalMic;
+ uint8_t freqAdjustHigh;
+ uint8_t freqAdjustMid;
+ uint8_t freqAdjustLow;
+ uint8_t __gap1[5];
+
+ // 0x0010
+ uint8_t txHighPower[9];
+ uint8_t __gap2[7];
+
+ // 0x0020
+ uint8_t txLowPower[9];
+ uint8_t __gap3[7];
+
+ // 0x0030
+ uint8_t rxSensitivity[9];
+ uint8_t __gap4[7];
+
+ // 0x0040
+ uint8_t openSql9[9];
+ uint8_t __gap5[7];
+
+ // 0x0050
+ uint8_t closeSql9[9];
+ uint8_t __gap6[7];
+
+ // 0x0060
+ uint8_t openSql1[9];
+ uint8_t __gap7[7];
+
+ // 0x0070
+ uint8_t closeSql1[9];
+ uint8_t __gap8[7];
+
+ // 0x0080
+ uint8_t maxVolume[9];
+ uint8_t __gap9[7];
+
+ // 0x0090
+ uint8_t ctcss67Hz[9];
+ uint8_t __gap10[7];
+
+ // 0x00a0
+ uint8_t ctcss151Hz[9];
+ uint8_t __gap11[7];
+
+ // 0x00b0
+ uint8_t ctcss254Hz[9];
+ uint8_t __gap12[7];
+
+ // 0x00c0
+ uint8_t dcsMod2[9];
+ uint8_t __gap13[7];
+
+ // 0x00d0
+ uint8_t dcsMod1[9];
+ uint8_t __gap14[7];
+
+ // 0x00e0
+ uint8_t mod1Partial[9];
+ uint8_t __gap15[7];
+
+ // 0x00f0
+ uint8_t analogVoiceAdjust[9];
+ uint8_t __gap16[7];
+
+ // 0x0100
+ uint8_t lockVoltagePartial[9];
+ uint8_t __gap17[7];
+
+ // 0x0110
+ uint8_t sendIpartial[9];
+ uint8_t __gap18[7];
+
+ // 0x0120
+ uint8_t sendQpartial[9];
+ uint8_t __gap19[7];
+
+ // 0x0130
+ uint8_t sendIrange[9];
+ uint8_t __gap20[7];
+
+ // 0x0140
+ uint8_t sendQrange[9];
+ uint8_t __gap21[7];
+
+ // 0x0150
+ uint8_t rxIpartial[9];
+ uint8_t __gap22[7];
+
+ // 0x0160
+ uint8_t rxQpartial[9];
+ uint8_t __gap23[7];
+
+ // 0x0170
+ uint8_t analogSendIrange[9];
+ uint8_t __gap24[7];
+
+ // 0x0180
+ uint8_t analogSendQrange[9];
+ uint8_t __gap25[7];
+
+ // 0x0190
+ uint8_t __gap26[32];
+
+ // 0x01b0
+ uint32_t freq[18];
+ uint8_t __gap27[7];
+};
+
+struct mduv3x0FullCalib {
+ // 0x0000
+ uint8_t vox1;
+ uint8_t vox10;
+ uint8_t rxLowVoltage;
+ uint8_t rxFullVoltage;
+ uint8_t rssi1;
+ uint8_t rssi4;
+ uint8_t analogMic;
+ uint8_t digitalMic;
+ uint8_t uhf_freqAdjustHigh;
+ uint8_t uhf_freqAdjustMid;
+ uint8_t uhf_freqAdjustLow;
+ uint8_t vhf_freqAdjustHigh;
+ uint8_t vhf_freqAdjustMid;
+ uint8_t vhf_freqAdjustLow;
+ uint8_t __gap1[2];
+
+ // 0x0010
+ uint8_t uhf_txHighPower[9];
+ uint8_t vhf_txHighPower[5];
+ uint8_t __gap2[2];
+
+ // 0x0020
+ uint8_t uhf_txLowPower[9];
+ uint8_t vhf_txLowPower[5];
+ uint8_t __gap3[2];
+
+ // 0x0030
+ uint8_t uhf_rxSensitivity[9];
+ uint8_t vhf_rxSensitivity[5];
+ uint8_t __gap4[2];
+
+ // 0x0040
+ uint8_t uhf_openSql9[9];
+ uint8_t __gap5[7];
+
+ // 0x0050
+ uint8_t uhf_closeSql9[9];
+ uint8_t __gap6[7];
+
+ // 0x0070
+ uint8_t uhf_closeSql1[9];
+ uint8_t __gap7[7];
+
+ // 0x0060
+ uint8_t uhf_openSql1[9];
+ uint8_t __gap8[7];
+
+ // 0x0090
+ uint8_t uhf_ctcss67Hz[9];
+ uint8_t __gap9[2];
+ uint8_t vhf_ctcss67Hz[5];
+
+ // 0x00a0
+ uint8_t uhf_ctcss151Hz[9];
+ uint8_t __gap10[2];
+ uint8_t vhf_ctcss151Hz[5];
+
+ // 0x00b0
+ uint8_t uhf_ctcss254Hz[9];
+ uint8_t __gap11[2];
+ uint8_t vhf_ctcss254Hz[5];
+
+ // 0x00d0
+ uint8_t uhf_dcsMod1[9];
+ uint8_t __gap12[2];
+ uint8_t vhf_dcsMod1[5];
+
+ // 0x00e0
+ uint8_t vhf_openSql9[5];
+ uint8_t vhf_closeSql9[5];
+ uint8_t vhf_closeSql1[5];
+ uint8_t vhf_openSql1[5];
+ uint8_t __gap13[12];
+
+ // 0x0100
+ uint32_t vhf_freq[10];
+ uint8_t __gap14[7];
+
+ // 0x0130
+ uint8_t uhf_sendIrange[9];
+ uint8_t vhf_sendIrange[5];
+ uint8_t __gap15[2];
+
+ // 0x0140
+ uint8_t uhf_sendQrange[9];
+ uint8_t vhf_sendQrange[5];
+ uint8_t __gap16[2];
+
+ // 0x0150
+ uint8_t __gap17[32];
+
+ // 0x0170
+ uint8_t uhf_analogSendIrange[9];
+ uint8_t vhf_analogSendIrange[5];
+ uint8_t __gap18[2];
+
+ // 0x0180
+ uint8_t uhf_analogSendQrange[9];
+ uint8_t vhf_analogSendQrange[5];
+ uint8_t __gap19[2];
+
+ // 0x0190
+ uint8_t uhf_txMidPower[9];
+ uint8_t vhf_txMidPower[5];
+ uint8_t __gap20[2];
+
+ // 0x01a0
+ uint8_t __gap21[16];
+
+ // 0x01b0
+ uint32_t uhf_freq[18];
+ uint8_t __gap22[7];
+};
+
+void printCalibration_gdx()
+{
+ uint8_t i;
+ gdxCalibration_t cal;
+ nvm_readCalibData(&cal);
+
+ puts("\r\nUHF band:\r");
+ printf("modBias %03d", cal.data[1].modBias);
+ printf("\r\nmod2Offset %03d", cal.data[1].mod2Offset);
+ printf("\r\ntxHighPower: "); for(i = 0; i < 16; i++) printf("%03d ", cal.data[1].txHighPower[i]);
+ printf("\r\ntxLowPower: "); for(i = 0; i < 16; i++) printf("%03d ", cal.data[1].txLowPower[i]);
+ printf("\r\nanalogSqlThresh: "); for(i = 0; i < 8; i++) printf("%03d ", cal.data[1].analogSqlThresh[i]);
+ printf("\r\nnoise1_HighTsh_Wb %03d", cal.data[1].noise1_HighTsh_Wb);
+ printf("\r\nnoise1_LowTsh_Wb %03d", cal.data[1].noise1_LowTsh_Wb);
+ printf("\r\nnoise2_HighTsh_Wb %03d", cal.data[1].noise2_HighTsh_Wb);
+ printf("\r\nnoise2_LowTsh_Wb %03d", cal.data[1].noise2_LowTsh_Wb);
+ printf("\r\nrssi_HighTsh_Wb %03d", cal.data[1].rssi_HighTsh_Wb);
+ printf("\r\nrssi_LowTsh_Wb %03d", cal.data[1].rssi_LowTsh_Wb);
+ printf("\r\nnoise1_HighTsh_Nb %03d", cal.data[1].noise1_HighTsh_Nb);
+ printf("\r\nnoise1_LowTsh_Nb %03d", cal.data[1].noise1_LowTsh_Nb);
+ printf("\r\nnoise2_HighTsh_Nb %03d", cal.data[1].noise2_HighTsh_Nb);
+ printf("\r\nnoise2_LowTsh_Nb %03d", cal.data[1].noise2_LowTsh_Nb);
+ printf("\r\nrssi_HighTsh_Nb %03d", cal.data[1].rssi_HighTsh_Nb);
+ printf("\r\nrssi_LowTsh_Nb %03d", cal.data[1].rssi_LowTsh_Nb);
+ printf("\r\nRSSILowerThreshold %03d", cal.data[1].RSSILowerThreshold);
+ printf("\r\nRSSIUpperThreshold %03d", cal.data[1].RSSIUpperThreshold);
+ printf("\r\nmod1Amplitude: "); for(i = 0; i < 8; i++) printf("%03d ", cal.data[1].mod1Amplitude[i]);
+ printf("\r\ntxDev_DTMF %03d", cal.data[1].txDev_DTMF);
+ printf("\r\ntxDev_tone %03d", cal.data[1].txDev_tone);
+ printf("\r\ntxDev_CTCSS_wb %03d", cal.data[1].txDev_CTCSS_wb);
+ printf("\r\ntxDev_CTCSS_nb %03d", cal.data[1].txDev_CTCSS_nb);
+ printf("\r\ntxDev_DCS_wb %03d", cal.data[1].txDev_DCS_wb);
+ printf("\r\ntxDev_DCS_nb %03d", cal.data[1].txDev_DCS_nb);
+ printf("\r\nPA_drv %03d", cal.data[1].PA_drv);
+ printf("\r\nPGA_gain %03d", cal.data[1].PGA_gain);
+ printf("\r\nanalogMicGain %03d", cal.data[1].analogMicGain);
+ printf("\r\nrxAGCgain %03d", cal.data[1].rxAGCgain);
+ printf("\r\nmixGainWideband %03d", cal.data[1].mixGainWideband);
+ printf("\r\nmixGainNarrowband %03d", cal.data[1].mixGainNarrowband);
+ printf("\r\nmixGainWideband %03d", cal.data[1].mixGainWideband);
+ printf("\r\nmixGainNarrowband %03d", cal.data[1].mixGainNarrowband);
+ printf("\r\nuhfPwrCalPoints: "); for(i = 0; i < 16; i++) printf("%ld ", cal.uhfPwrCalPoints[i]);
+ printf("\r\nuhfCalPoints: "); for(i = 0; i < 8; i++) printf("%ld ", cal.uhfCalPoints[i]);
+
+ puts("\r\nVHF band:\r");
+ printf("modBias %03d", cal.data[0].modBias);
+ printf("\r\nmod2Offset %03d", cal.data[0].mod2Offset);
+ printf("\r\ntxHighPower: "); for(i = 0; i < 8; i++) printf("%03d ", cal.data[0].txHighPower[i]);
+ printf("\r\ntxLowPower: "); for(i = 0; i < 8; i++) printf("%03d ", cal.data[0].txLowPower[i]);
+ printf("\r\nanalogSqlThresh: "); for(i = 0; i < 8; i++) printf("%03d ", cal.data[0].analogSqlThresh[i]);
+ printf("\r\nnoise1_HighTsh_Wb %03d", cal.data[0].noise1_HighTsh_Wb);
+ printf("\r\nnoise1_LowTsh_Wb %03d", cal.data[0].noise1_LowTsh_Wb);
+ printf("\r\nnoise2_HighTsh_Wb %03d", cal.data[0].noise2_HighTsh_Wb);
+ printf("\r\nnoise2_LowTsh_Wb %03d", cal.data[0].noise2_LowTsh_Wb);
+ printf("\r\nrssi_HighTsh_Wb %03d", cal.data[0].rssi_HighTsh_Wb);
+ printf("\r\nrssi_LowTsh_Wb %03d", cal.data[0].rssi_LowTsh_Wb);
+ printf("\r\nnoise1_HighTsh_Nb %03d", cal.data[0].noise1_HighTsh_Nb);
+ printf("\r\nnoise1_LowTsh_Nb %03d", cal.data[0].noise1_LowTsh_Nb);
+ printf("\r\nnoise2_HighTsh_Nb %03d", cal.data[0].noise2_HighTsh_Nb);
+ printf("\r\nnoise2_LowTsh_Nb %03d", cal.data[0].noise2_LowTsh_Nb);
+ printf("\r\nrssi_HighTsh_Nb %03d", cal.data[0].rssi_HighTsh_Nb);
+ printf("\r\nrssi_LowTsh_Nb %03d", cal.data[0].rssi_LowTsh_Nb);
+ printf("\r\nRSSILowerThreshold %03d", cal.data[0].RSSILowerThreshold);
+ printf("\r\nRSSIUpperThreshold %03d", cal.data[0].RSSIUpperThreshold);
+ printf("\r\nmod1Amplitude: "); for(i = 0; i < 8; i++) printf("%03d ", cal.data[0].mod1Amplitude[i]);
+ printf("\r\ntxDev_DTMF %03d", cal.data[0].txDev_DTMF);
+ printf("\r\ntxDev_tone %03d", cal.data[0].txDev_tone);
+ printf("\r\ntxDev_CTCSS_wb %03d", cal.data[0].txDev_CTCSS_wb);
+ printf("\r\ntxDev_CTCSS_nb %03d", cal.data[0].txDev_CTCSS_nb);
+ printf("\r\ntxDev_DCS_wb %03d", cal.data[0].txDev_DCS_wb);
+ printf("\r\ntxDev_DCS_nb %03d", cal.data[0].txDev_DCS_nb);
+ printf("\r\nPA_drv %03d", cal.data[0].PA_drv);
+ printf("\r\nPGA_gain %03d", cal.data[0].PGA_gain);
+ printf("\r\nanalogMicGain %03d", cal.data[0].analogMicGain);
+ printf("\r\nrxAGCgain %03d", cal.data[0].rxAGCgain);
+ printf("\r\nmixGainWideband %03d", cal.data[0].mixGainWideband);
+ printf("\r\nmixGainNarrowband %03d", cal.data[0].mixGainNarrowband);
+ printf("\r\nmixGainWideband %03d", cal.data[0].mixGainWideband);
+ printf("\r\nmixGainNarrowband %03d", cal.data[0].mixGainNarrowband);
+ printf("\r\nvhfCalPoints: "); for(i = 0; i < 8; i++) printf("%ld ", cal.vhfCalPoints[i]);
+}
+
+void printCalibration_md3x0()
+{
+ uint8_t i;
+ struct md3x0FullCalib cal;
+ uint8_t *rawData = (uint8_t *) &cal;
+
+ nvm_read(1, -1, 0x0000, rawData, 256); // W25Qx security register 0x0000
+ nvm_read(2, -1, 0x0000, rawData + 256, 256); // W25Qx security register 0x0100
+
+ printf("vox1: %03d\r\n", cal.vox1);
+ printf("vox10: %03d\r\n", cal.vox10);
+ printf("rxLowVoltage: %03d\r\n", cal.rxLowVoltage);
+ printf("rxFullVoltage: %03d\r\n", cal.rxFullVoltage);
+ printf("rssi1: %03d\r\n", cal.rssi1);
+ printf("rssi4: %03d\r\n", cal.rssi4);
+ printf("analogMic: %03d\r\n", cal.analogMic);
+ printf("digitalMic: %03d\r\n", cal.digitalMic);
+ printf("freqAdjustHigh: %03d\r\n", cal.freqAdjustHigh);
+ printf("freqAdjustMid: %03d\r\n", cal.freqAdjustMid);
+ printf("freqAdjustLow: %03d\r\n", cal.freqAdjustLow);
+
+ printf("\r\ntxHighPower: "); for(i = 0; i < 9; i++) printf("%03d ", cal.txHighPower[i]);
+ printf("\r\ntxLowPower: "); for(i = 0; i < 9; i++) printf("%03d ", cal.txLowPower[i]);
+ printf("\r\nrxSensitivity: "); for(i = 0; i < 9; i++) printf("%03d ", cal.rxSensitivity[i]);
+ printf("\r\nopenSql9: "); for(i = 0; i < 9; i++) printf("%03d ", cal.openSql9[i]);
+ printf("\r\ncloseSql9: "); for(i = 0; i < 9; i++) printf("%03d ", cal.closeSql9[i]);
+ printf("\r\nopenSql1: "); for(i = 0; i < 9; i++) printf("%03d ", cal.openSql1[i]);
+ printf("\r\ncloseSql1: "); for(i = 0; i < 9; i++) printf("%03d ", cal.closeSql1[i]);
+ printf("\r\nmaxVolume: "); for(i = 0; i < 9; i++) printf("%03d ", cal.maxVolume[i]);
+ printf("\r\nctcss67Hz: "); for(i = 0; i < 9; i++) printf("%03d ", cal.ctcss67Hz[i]);
+ printf("\r\nctcss151Hz: "); for(i = 0; i < 9; i++) printf("%03d ", cal.ctcss151Hz[i]);
+ printf("\r\nctcss254Hz: "); for(i = 0; i < 9; i++) printf("%03d ", cal.ctcss254Hz[i]);
+ printf("\r\ndcsMod2: "); for(i = 0; i < 9; i++) printf("%03d ", cal.dcsMod2[i]);
+ printf("\r\ndcsMod1: "); for(i = 0; i < 9; i++) printf("%03d ", cal.dcsMod1[i]);
+ printf("\r\nmod1Partial: "); for(i = 0; i < 9; i++) printf("%03d ", cal.mod1Partial[i]);
+ printf("\r\nanalogVoiceAdjust: "); for(i = 0; i < 9; i++) printf("%03d ", cal.analogVoiceAdjust[i]);
+ printf("\r\nlockVoltagePartial: "); for(i = 0; i < 9; i++) printf("%03d ", cal.lockVoltagePartial[i]);
+ printf("\r\nsendIpartial: "); for(i = 0; i < 9; i++) printf("%03d ", cal.sendIpartial[i]);
+ printf("\r\nsendQpartial: "); for(i = 0; i < 9; i++) printf("%03d ", cal.sendQpartial[i]);
+ printf("\r\nsendIrange: "); for(i = 0; i < 9; i++) printf("%03d ", cal.sendIrange[i]);
+ printf("\r\nsendQrange: "); for(i = 0; i < 9; i++) printf("%03d ", cal.sendQrange[i]);
+ printf("\r\nrxIpartial: "); for(i = 0; i < 9; i++) printf("%03d ", cal.rxIpartial[i]);
+ printf("\r\nrxQpartial: "); for(i = 0; i < 9; i++) printf("%03d ", cal.rxQpartial[i]);
+ printf("\r\nanalogSendIrange: "); for(i = 0; i < 9; i++) printf("%03d ", cal.analogSendIrange[i]);
+ printf("\r\nanalogSendQrange: "); for(i = 0; i < 9; i++) printf("%03d ", cal.analogSendQrange[i]);
+
+ printf("\r\n\r\nrxFreq: "); for(i = 0; i < 9; i++) printf("%ld ", bcdToBin(cal.freq[2*i])*10);
+ printf("\r\ntxFreq: "); for(i = 0; i < 9; i++) printf("%ld ", bcdToBin(cal.freq[2*i+1])*10);
+}
+
+void printCalibration_mduv3x0()
+{
+ uint8_t i;
+ struct mduv3x0FullCalib cal;
+ uint8_t *rawData = (uint8_t *) &cal;
+
+ nvm_read(1, -1, 0x0000, rawData, 256); // W25Qx security register 0x0000
+ nvm_read(2, -1, 0x0000, rawData + 256, 256); // W25Qx security register 0x0100
+
+ printf("vox1: %03d\r\n", cal.vox1);
+ printf("vox10: %03d\r\n", cal.vox10);
+ printf("rxLowVoltage: %03d\r\n", cal.rxLowVoltage);
+ printf("rxFullVoltage: %03d\r\n", cal.rxFullVoltage);
+ printf("rssi1: %03d\r\n", cal.rssi1);
+ printf("rssi4: %03d\r\n", cal.rssi4);
+ printf("analogMic: %03d\r\n", cal.analogMic);
+ printf("digitalMic: %03d\r\n", cal.digitalMic);
+
+ puts("\r\nUHF band:\r");
+ printf("freqAdjustMid: %03d\r\n", cal.uhf_freqAdjustMid);
+ printf("\r\ntxHighPower: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhf_txHighPower[i]);
+ printf("\r\ntxMidPower: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhf_txMidPower[i]);
+ printf("\r\ntxLowPower: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhf_txLowPower[i]);
+ printf("\r\nrxSensitivity: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhf_rxSensitivity[i]);
+ printf("\r\nopenSql9: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhf_openSql9[i]);
+ printf("\r\ncloseSql9: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhf_closeSql9[i]);
+ printf("\r\nopenSql1: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhf_openSql1[i]);
+ printf("\r\ncloseSql1: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhf_closeSql1[i]);
+ printf("\r\nctcss67Hz: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhf_ctcss67Hz[i]);
+ printf("\r\nctcss151Hz: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhf_ctcss151Hz[i]);
+ printf("\r\nctcss254Hz: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhf_ctcss254Hz[i]);
+ printf("\r\ndcsMod1: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhf_dcsMod1[i]);
+ printf("\r\nsendIrange: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhf_sendIrange[i]);
+ printf("\r\nsendQrange: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhf_sendQrange[i]);
+ printf("\r\nanalogSendIrange: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhf_analogSendIrange[i]);
+ printf("\r\nanalogSendQrange: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhf_analogSendQrange[i]);
+ printf("\r\nrxFreq: "); for(i = 0; i < 9; i++) printf("%ld ", bcdToBin(cal.uhf_freq[2*i])*10);
+ printf("\r\ntxFreq: "); for(i = 0; i < 9; i++) printf("%ld ", bcdToBin(cal.uhf_freq[2*i+1])*10);
+
+ puts("\r\nVHF band:\r");
+ printf("freqAdjustMid: %03d\r\n", cal.vhf_freqAdjustMid);
+ printf("\r\ntxHighPower: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhf_txHighPower[i]);
+ printf("\r\ntxMidPower: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhf_txMidPower[i]);
+ printf("\r\ntxLowPower: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhf_txLowPower[i]);
+ printf("\r\nrxSensitivity: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhf_rxSensitivity[i]);
+ printf("\r\nopenSql9: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhf_openSql9[i]);
+ printf("\r\ncloseSql9: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhf_closeSql9[i]);
+ printf("\r\nopenSql1: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhf_openSql1[i]);
+ printf("\r\ncloseSql1: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhf_closeSql1[i]);
+ printf("\r\nctcss67Hz: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhf_ctcss67Hz[i]);
+ printf("\r\nctcss151Hz: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhf_ctcss151Hz[i]);
+ printf("\r\nctcss254Hz: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhf_ctcss254Hz[i]);
+ printf("\r\ndcsMod1: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhf_dcsMod1[i]);
+ printf("\r\nsendIrange: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhf_sendIrange[i]);
+ printf("\r\nsendQrange: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhf_sendQrange[i]);
+ printf("\r\nanalogSendIrange: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhf_analogSendIrange[i]);
+ printf("\r\nanalogSendQrange: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhf_analogSendQrange[i]);
+ printf("\r\nrxFreq: "); for(i = 0; i < 5; i++) printf("%ld ", bcdToBin(cal.vhf_freq[2*i])*10);
+ printf("\r\ntxFreq: "); for(i = 0; i < 5; i++) printf("%ld ", bcdToBin(cal.vhf_freq[2*i+1])*10);
+}
+
+static void waitForPtt()
+{
+ // Wait until PTT is pressed
+ while(platform_getPttStatus() == false) {
+ platform_ledOn(GREEN);
+ sleepFor(0, 500);
+ platform_ledOff(GREEN);
+ sleepFor(0, 500);
+ }
+
+ // Resume execution on PTT release
+ platform_ledOn(RED);
+ while(platform_getPttStatus() == true) ;
+ platform_ledOff(RED);
+}
+
+int main()
+{
+ platform_init();
+ nvm_init();
+
+ while(1) {
+ waitForPtt();
+
+#if defined(PLATFORM_MD3x0)
+ printCalibration_md3x0();
+#elif defined(PLATFORM_MDUV3x0)
+ printCalibration_mduv3x0();
+#elif defined(PLATFORM_GD77) || defined(PLATFORM_DM1801)
+ printCalibration_gdx();
+#else
+#error "Device not supported"
+#endif
+ }
+
+ return 0;
+}
diff --git a/tests/platform/printCalib_GDx.c b/tests/platform/printCalib_GDx.c
deleted file mode 100644
index 5a4ae546..00000000
--- a/tests/platform/printCalib_GDx.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2020 - 2025 by Federico Amedeo Izzo IU2NUO, *
- * Niccolò Izzo IU2KIN *
- * Frederik Saraci IU2NRO *
- * Silvano Seva IU2KWO *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 3 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, see *
- ***************************************************************************/
-
-#include
-#include
-#include
-#include
-#include
-
-
-void printCalibration()
-{
- uint8_t i;
- gdxCalibration_t cal;
- nvm_readCalibData(&cal);
-
- puts("\r\nUHF band:\r");
- printf("mod1Bias %03d", cal.uhfCal.mod1Bias);
- printf("\r\nmod2Offset %03d", cal.uhfCal.mod2Offset);
- printf("\r\ntxHighPower: "); for(i = 0; i < 16; i++) printf("%03d ", cal.uhfCal.txHighPower[i]);
- printf("\r\ntxLowPower: "); for(i = 0; i < 16; i++) printf("%03d ", cal.uhfCal.txLowPower[i]);
- printf("\r\nanalogSqlThresh: "); for(i = 0; i < 8; i++) printf("%03d ", cal.uhfCal.analogSqlThresh[i]);
- printf("\r\nnoise1_HighTsh_Wb %03d", cal.uhfCal.noise1_HighTsh_Wb);
- printf("\r\nnoise1_LowTsh_Wb %03d", cal.uhfCal.noise1_LowTsh_Wb);
- printf("\r\nnoise2_HighTsh_Wb %03d", cal.uhfCal.noise2_HighTsh_Wb);
- printf("\r\nnoise2_LowTsh_Wb %03d", cal.uhfCal.noise2_LowTsh_Wb);
- printf("\r\nrssi_HighTsh_Wb %03d", cal.uhfCal.rssi_HighTsh_Wb);
- printf("\r\nrssi_LowTsh_Wb %03d", cal.uhfCal.rssi_LowTsh_Wb);
- printf("\r\nnoise1_HighTsh_Nb %03d", cal.uhfCal.noise1_HighTsh_Nb);
- printf("\r\nnoise1_LowTsh_Nb %03d", cal.uhfCal.noise1_LowTsh_Nb);
- printf("\r\nnoise2_HighTsh_Nb %03d", cal.uhfCal.noise2_HighTsh_Nb);
- printf("\r\nnoise2_LowTsh_Nb %03d", cal.uhfCal.noise2_LowTsh_Nb);
- printf("\r\nrssi_HighTsh_Nb %03d", cal.uhfCal.rssi_HighTsh_Nb);
- printf("\r\nrssi_LowTsh_Nb %03d", cal.uhfCal.rssi_LowTsh_Nb);
- printf("\r\nRSSILowerThreshold %03d", cal.uhfCal.RSSILowerThreshold);
- printf("\r\nRSSIUpperThreshold %03d", cal.uhfCal.RSSIUpperThreshold);
- printf("\r\nmod1Amplitude: "); for(i = 0; i < 8; i++) printf("%03d ", cal.uhfCal.mod1Amplitude[i]);
- printf("\r\ndacDataRange %03d", cal.uhfCal.dacDataRange);
- printf("\r\ntxDev_DTMF %03d", cal.uhfCal.txDev_DTMF);
- printf("\r\ntxDev_tone %03d", cal.uhfCal.txDev_tone);
- printf("\r\ntxDev_CTCSS_wb %03d", cal.uhfCal.txDev_CTCSS_wb);
- printf("\r\ntxDev_CTCSS_nb %03d", cal.uhfCal.txDev_CTCSS_nb);
- printf("\r\ntxDev_DCS_wb %03d", cal.uhfCal.txDev_DCS_wb);
- printf("\r\ntxDev_DCS_nb %03d", cal.uhfCal.txDev_DCS_nb);
- printf("\r\nPA_drv %03d", cal.uhfCal.PA_drv);
- printf("\r\nPGA_gain %03d", cal.uhfCal.PGA_gain);
- printf("\r\nanalogMicGain %03d", cal.uhfCal.analogMicGain);
- printf("\r\nrxAGCgain %03d", cal.uhfCal.rxAGCgain);
- printf("\r\nmixGainWideband %03d", cal.uhfCal.mixGainWideband);
- printf("\r\nmixGainNarrowband %03d", cal.uhfCal.mixGainNarrowband);
- printf("\r\nrxAudioGainWideband %03d", cal.uhfCal.rxAudioGainWideband);
- printf("\r\nrxAudioGainNarrowband %03d", cal.uhfCal.rxAudioGainNarrowband);
- printf("\r\nuhfPwrCalPoints: "); for(i = 0; i < 16; i++) printf("%ld ", cal.uhfPwrCalPoints[i]);
- printf("\r\nuhfMod1CalPoints: "); for(i = 0; i < 8; i++) printf("%ld ", cal.uhfMod1CalPoints[i]);
-
- puts("\r\nVHF band:\r");
- printf("mod1Bias %03d", cal.vhfCal.mod1Bias);
- printf("\r\nmod2Offset %03d", cal.vhfCal.mod2Offset);
- printf("\r\ntxHighPower: "); for(i = 0; i < 8; i++) printf("%03d ", cal.vhfCal.txHighPower[i]);
- printf("\r\ntxLowPower: "); for(i = 0; i < 8; i++) printf("%03d ", cal.vhfCal.txLowPower[i]);
- printf("\r\nanalogSqlThresh: "); for(i = 0; i < 8; i++) printf("%03d ", cal.vhfCal.analogSqlThresh[i]);
- printf("\r\nnoise1_HighTsh_Wb %03d", cal.vhfCal.noise1_HighTsh_Wb);
- printf("\r\nnoise1_LowTsh_Wb %03d", cal.vhfCal.noise1_LowTsh_Wb);
- printf("\r\nnoise2_HighTsh_Wb %03d", cal.vhfCal.noise2_HighTsh_Wb);
- printf("\r\nnoise2_LowTsh_Wb %03d", cal.vhfCal.noise2_LowTsh_Wb);
- printf("\r\nrssi_HighTsh_Wb %03d", cal.vhfCal.rssi_HighTsh_Wb);
- printf("\r\nrssi_LowTsh_Wb %03d", cal.vhfCal.rssi_LowTsh_Wb);
- printf("\r\nnoise1_HighTsh_Nb %03d", cal.vhfCal.noise1_HighTsh_Nb);
- printf("\r\nnoise1_LowTsh_Nb %03d", cal.vhfCal.noise1_LowTsh_Nb);
- printf("\r\nnoise2_HighTsh_Nb %03d", cal.vhfCal.noise2_HighTsh_Nb);
- printf("\r\nnoise2_LowTsh_Nb %03d", cal.vhfCal.noise2_LowTsh_Nb);
- printf("\r\nrssi_HighTsh_Nb %03d", cal.vhfCal.rssi_HighTsh_Nb);
- printf("\r\nrssi_LowTsh_Nb %03d", cal.vhfCal.rssi_LowTsh_Nb);
- printf("\r\nRSSILowerThreshold %03d", cal.vhfCal.RSSILowerThreshold);
- printf("\r\nRSSIUpperThreshold %03d", cal.vhfCal.RSSIUpperThreshold);
- printf("\r\nmod1Amplitude: "); for(i = 0; i < 8; i++) printf("%03d ", cal.vhfCal.mod1Amplitude[i]);
- printf("\r\ndacDataRange %03d", cal.vhfCal.dacDataRange);
- printf("\r\ntxDev_DTMF %03d", cal.vhfCal.txDev_DTMF);
- printf("\r\ntxDev_tone %03d", cal.vhfCal.txDev_tone);
- printf("\r\ntxDev_CTCSS_wb %03d", cal.vhfCal.txDev_CTCSS_wb);
- printf("\r\ntxDev_CTCSS_nb %03d", cal.vhfCal.txDev_CTCSS_nb);
- printf("\r\ntxDev_DCS_wb %03d", cal.vhfCal.txDev_DCS_wb);
- printf("\r\ntxDev_DCS_nb %03d", cal.vhfCal.txDev_DCS_nb);
- printf("\r\nPA_drv %03d", cal.vhfCal.PA_drv);
- printf("\r\nPGA_gain %03d", cal.vhfCal.PGA_gain);
- printf("\r\nanalogMicGain %03d", cal.vhfCal.analogMicGain);
- printf("\r\nrxAGCgain %03d", cal.vhfCal.rxAGCgain);
- printf("\r\nmixGainWideband %03d", cal.vhfCal.mixGainWideband);
- printf("\r\nmixGainNarrowband %03d", cal.vhfCal.mixGainNarrowband);
- printf("\r\nrxAudioGainWideband %03d", cal.vhfCal.rxAudioGainWideband);
- printf("\r\nrxAudioGainNarrowband %03d", cal.vhfCal.rxAudioGainNarrowband);
- printf("\r\nvhfCalPoints: "); for(i = 0; i < 8; i++) printf("%ld ", cal.vhfCalPoints[i]);
-}
-
-int main()
-{
- nvm_init();
-
- while(1)
- {
- getchar();
- printCalibration();
- }
-
- return 0;
-}
diff --git a/tests/platform/printCalib_MDx.c b/tests/platform/printCalib_MDx.c
deleted file mode 100644
index 44eabd67..00000000
--- a/tests/platform/printCalib_MDx.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2020 - 2025 by Federico Amedeo Izzo IU2NUO, *
- * Niccolò Izzo IU2KIN *
- * Frederik Saraci IU2NRO *
- * Silvano Seva IU2KWO *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 3 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, see *
- ***************************************************************************/
-
-#include
-#include
-#include
-#include
-#include
-
-void printMD3x0calibration()
-{
- uint8_t i;
- md3x0Calib_t cal;
- nvm_readCalibData(&cal);
-
- printf("vox1: %03d\r\n", cal.vox1);
- printf("vox10: %03d\r\n", cal.vox10);
- printf("rxLowVoltage: %03d\r\n", cal.rxLowVoltage);
- printf("rxFullVoltage: %03d\r\n", cal.rxFullVoltage);
- printf("rssi1: %03d\r\n", cal.rssi1);
- printf("rssi4: %03d\r\n", cal.rssi4);
- printf("analogMic: %03d\r\n", cal.analogMic);
- printf("digitalMic: %03d\r\n", cal.digitalMic);
- printf("freqAdjustHigh: %03d\r\n", cal.freqAdjustHigh);
- printf("freqAdjustMid: %03d\r\n", cal.freqAdjustMid);
- printf("freqAdjustLow: %03d", cal.freqAdjustLow);
-
- printf("\r\n\r\nrxFreq: "); for(i = 0; i < 9; i++) printf("%ld ", cal.rxFreq[i]);
- printf("\r\ntxFreq: "); for(i = 0; i < 9; i++) printf("%ld ", cal.txFreq[i]);
- printf("\r\ntxHighPower: "); for(i = 0; i < 9; i++) printf("%03d ", cal.txHighPower[i]);
- printf("\r\ntxLowPower: "); for(i = 0; i < 9; i++) printf("%03d ", cal.txLowPower[i]);
- printf("\r\nrxSensitivity: "); for(i = 0; i < 9; i++) printf("%03d ", cal.rxSensitivity[i]);
- printf("\r\nopenSql9: "); for(i = 0; i < 9; i++) printf("%03d ", cal.openSql9[i]);
- printf("\r\ncloseSql9: "); for(i = 0; i < 9; i++) printf("%03d ", cal.closeSql9[i]);
- printf("\r\nopenSql1: "); for(i = 0; i < 9; i++) printf("%03d ", cal.openSql1[i]);
- printf("\r\ncloseSql1: "); for(i = 0; i < 9; i++) printf("%03d ", cal.closeSql1[i]);
- printf("\r\nmaxVolume: "); for(i = 0; i < 9; i++) printf("%03d ", cal.maxVolume[i]);
- printf("\r\nctcss67Hz: "); for(i = 0; i < 9; i++) printf("%03d ", cal.ctcss67Hz[i]);
- printf("\r\nctcss151Hz: "); for(i = 0; i < 9; i++) printf("%03d ", cal.ctcss151Hz[i]);
- printf("\r\nctcss254Hz: "); for(i = 0; i < 9; i++) printf("%03d ", cal.ctcss254Hz[i]);
- printf("\r\ndcsMod2: "); for(i = 0; i < 9; i++) printf("%03d ", cal.dcsMod2[i]);
- printf("\r\ndcsMod1: "); for(i = 0; i < 9; i++) printf("%03d ", cal.dcsMod1[i]);
- printf("\r\nmod1Partial: "); for(i = 0; i < 9; i++) printf("%03d ", cal.mod1Partial[i]);
- printf("\r\nanalogVoiceAdjust: "); for(i = 0; i < 9; i++) printf("%03d ", cal.analogVoiceAdjust[i]);
- printf("\r\nlockVoltagePartial: "); for(i = 0; i < 9; i++) printf("%03d ", cal.lockVoltagePartial[i]);
- printf("\r\nsendIpartial: "); for(i = 0; i < 9; i++) printf("%03d ", cal.sendIpartial[i]);
- printf("\r\nsendQpartial: "); for(i = 0; i < 9; i++) printf("%03d ", cal.sendQpartial[i]);
- printf("\r\nsendIrange: "); for(i = 0; i < 9; i++) printf("%03d ", cal.sendIrange[i]);
- printf("\r\nsendQrange: "); for(i = 0; i < 9; i++) printf("%03d ", cal.sendQrange[i]);
- printf("\r\nrxIpartial: "); for(i = 0; i < 9; i++) printf("%03d ", cal.rxIpartial[i]);
- printf("\r\nrxQpartial: "); for(i = 0; i < 9; i++) printf("%03d ", cal.rxQpartial[i]);
- printf("\r\nanalogSendIrange: "); for(i = 0; i < 9; i++) printf("%03d ", cal.analogSendIrange[i]);
- printf("\r\nanalogSendQrange: "); for(i = 0; i < 9; i++) printf("%03d ", cal.analogSendQrange[i]);
-}
-
-void printMDUV3x0calibration()
-{
- uint8_t i;
- mduv3x0Calib_t cal;
- nvm_readCalibData(&cal);
-
- printf("vox1: %03d\r\n", cal.vox1);
- printf("vox10: %03d\r\n", cal.vox10);
- printf("rxLowVoltage: %03d\r\n", cal.rxLowVoltage);
- printf("rxFullVoltage: %03d\r\n", cal.rxFullVoltage);
- printf("rssi1: %03d\r\n", cal.rssi1);
- printf("rssi4: %03d\r\n", cal.rssi4);
-
- puts("\r\nUHF band:\r");
- printf("freqAdjustMid: %03d\r\n", cal.uhfCal.freqAdjustMid);
- printf("\r\nrxFreq: "); for(i = 0; i < 9; i++) printf("%ld ", cal.uhfCal.rxFreq[i]);
- printf("\r\ntxFreq: "); for(i = 0; i < 9; i++) printf("%ld ", cal.uhfCal.txFreq[i]);
- printf("\r\ntxHighPower: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhfCal.txHighPower[i]);
- printf("\r\ntxMidPower: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhfCal.txMidPower[i]);
- printf("\r\ntxLowPower: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhfCal.txLowPower[i]);
- printf("\r\nrxSensitivity: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhfCal.rxSensitivity[i]);
- printf("\r\nopenSql9: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhfCal.openSql9[i]);
- printf("\r\ncloseSql9: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhfCal.closeSql9[i]);
- printf("\r\nopenSql1: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhfCal.openSql1[i]);
- printf("\r\ncloseSql1: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhfCal.closeSql1[i]);
- printf("\r\nctcss67Hz: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhfCal.ctcss67Hz[i]);
- printf("\r\nctcss151Hz: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhfCal.ctcss151Hz[i]);
- printf("\r\nctcss254Hz: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhfCal.ctcss254Hz[i]);
- printf("\r\ndcsMod1: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhfCal.dcsMod1[i]);
- printf("\r\nsendIrange: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhfCal.sendIrange[i]);
- printf("\r\nsendQrange: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhfCal.sendQrange[i]);
- printf("\r\nanalogSendIrange: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhfCal.analogSendIrange[i]);
- printf("\r\nanalogSendQrange: "); for(i = 0; i < 9; i++) printf("%03d ", cal.uhfCal.analogSendQrange[i]);
-
- puts("\r\nVHF band:\r");
- printf("freqAdjustMid: %03d\r\n", cal.vhfCal.freqAdjustMid);
- printf("\r\nrxFreq: "); for(i = 0; i < 5; i++) printf("%ld ", cal.vhfCal.rxFreq[i]);
- printf("\r\ntxFreq: "); for(i = 0; i < 5; i++) printf("%ld ", cal.vhfCal.txFreq[i]);
- printf("\r\ntxHighPower: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhfCal.txHighPower[i]);
- printf("\r\ntxMidPower: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhfCal.txMidPower[i]);
- printf("\r\ntxLowPower: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhfCal.txLowPower[i]);
- printf("\r\nrxSensitivity: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhfCal.rxSensitivity[i]);
- printf("\r\nopenSql9: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhfCal.openSql9[i]);
- printf("\r\ncloseSql9: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhfCal.closeSql9[i]);
- printf("\r\nopenSql1: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhfCal.openSql1[i]);
- printf("\r\ncloseSql1: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhfCal.closeSql1[i]);
- printf("\r\nctcss67Hz: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhfCal.ctcss67Hz[i]);
- printf("\r\nctcss151Hz: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhfCal.ctcss151Hz[i]);
- printf("\r\nctcss254Hz: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhfCal.ctcss254Hz[i]);
- printf("\r\ndcsMod1: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhfCal.dcsMod1[i]);
- printf("\r\nsendIrange: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhfCal.sendIrange[i]);
- printf("\r\nsendQrange: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhfCal.sendQrange[i]);
- printf("\r\nanalogSendIrange: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhfCal.analogSendIrange[i]);
- printf("\r\nanalogSendQrange: "); for(i = 0; i < 5; i++) printf("%03d ", cal.vhfCal.analogSendQrange[i]);
-}
-
-int main()
-{
- nvm_init();
-
- while(1)
- {
- getchar();
-
- #ifdef PLATFORM_MD3x0
- printMD3x0calibration();
- #else
- printMDUV3x0calibration();
- #endif
- }
-
- return 0;
-}