From fb85c140371b3ae52c347173674de7341874f078 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Thu, 21 Sep 2023 23:06:47 +0100 Subject: [PATCH] First test --- Makefile | 6 +- app/app.c | 638 ++++++++++++++++++++------------------------ app/menu.c | 17 ++ board.c | 3 + driver/bk4819.c | 4 +- firmware | Bin 166104 -> 166504 bytes firmware.bin | Bin 51408 -> 51780 bytes firmware.packed.bin | Bin 51426 -> 51798 bytes functions.c | 7 +- functions.h | 14 +- helper/battery.c | 2 +- helper/battery.h | 2 +- main.c | 11 +- misc.c | 9 +- misc.h | 15 +- radio.c | 4 + scheduler.c | 2 +- settings.c | 3 + ui/menu.c | 9 + ui/menu.h | 3 + ui/rssi.c | 20 +- win_make.bat | 33 ++- 22 files changed, 412 insertions(+), 390 deletions(-) diff --git a/Makefile b/Makefile index 911000e..86f46b6 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,7 @@ ENABLE_BOOT_BEEPS := 0 ENABLE_COMPANDER := 1 ENABLE_SHOW_CHARGE_LEVEL := 0 ENABLE_REVERSE_BAT_SYMBOL := 1 +ENABLE_AM_AGC_GAIN := 1 ENABLE_AUDIO_BAR := 0 #ENABLE_SINGLE_VFO_CHAN := 1 #ENABLE_BAND_SCOPE := 1 @@ -196,6 +197,9 @@ endif ifeq ($(ENABLE_REVERSE_BAT_SYMBOL),1) CFLAGS += -DENABLE_REVERSE_BAT_SYMBOL endif +ifeq ($(ENABLE_AM_AGC_GAIN),1) + CFLAGS += -DENABLE_AM_AGC_GAIN +endif ifeq ($(ENABLE_AUDIO_BAR),1) CFLAGS += -DENABLE_AUDIO_BAR endif @@ -253,4 +257,4 @@ bsp/dp32g030/%.h: hardware/dp32g030/%.def -include $(DEPS) clean: - rm -f $(TARGET).bin $(TARGET) $(OBJS) $(DEPS) + rm -f $(TARGET).bin $(TARGET).packed.bin $(TARGET) $(OBJS) $(DEPS) \ No newline at end of file diff --git a/app/app.c b/app/app.c index 21ccc03..7fbb68e 100644 --- a/app/app.c +++ b/app/app.c @@ -69,17 +69,22 @@ static void APP_CheckForIncoming(void) if (!g_SquelchLost) return; + // squelch is open + if (gScanState == SCAN_OFF) - { + { // not RF scanning + if (gCssScanMode != CSS_SCAN_MODE_OFF && gRxReceptionMode == RX_MODE_NONE) - { + { // CTCSS/DTS scanning + ScanPauseDelayIn_10ms = 100; // 1 second gScheduleScanListen = false; gRxReceptionMode = RX_MODE_DETECTED; } if (gEeprom.DUAL_WATCH == DUAL_WATCH_OFF) - { + { // dual watch is disabled + #ifdef ENABLE_NOAA if (gIsNoaaMode) { @@ -92,14 +97,16 @@ static void APP_CheckForIncoming(void) return; } + // dual watch is enabled and we're RX'ing a signal + if (gRxReceptionMode != RX_MODE_NONE) { FUNCTION_Select(FUNCTION_INCOMING); return; } - gDualWatchCountdown_10ms = dual_watch_count_after_rx_10ms; - gScheduleDualWatch = false; + gDualWatchCountdown_10ms = dual_watch_count_after_rx_10ms; + gScheduleDualWatch = false; // let the user see DW is not active gDualWatchActive = false; @@ -127,7 +134,7 @@ static void APP_HandleIncoming(void) bool bFlag; if (!g_SquelchLost) - { + { // squelch is closed FUNCTION_Select(FUNCTION_FOREGROUND); gUpdateDisplay = true; return; @@ -160,15 +167,15 @@ static void APP_HandleIncoming(void) DTMF_HandleRequest(); if (gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF) - { + { // not scanning if (gRxVfo->DTMF_DECODING_ENABLE || gSetting_KILLED) - { + { // DTMF is enabled if (gDTMF_CallState == DTMF_CALL_STATE_NONE) { if (gRxReceptionMode == RX_MODE_DETECTED) { gDualWatchCountdown_10ms = dual_watch_count_after_1_10ms; - gScheduleDualWatch = false; + gScheduleDualWatch = false; gRxReceptionMode = RX_MODE_LISTENING; @@ -398,344 +405,151 @@ static void APP_HandleFunction(void) void APP_StartListening(FUNCTION_Type_t Function) { - if (!gSetting_KILLED) - { - #ifdef ENABLE_FMRADIO - if (gFmRadioMode) - BK1080_Init(0, false); - #endif + if (gSetting_KILLED) + return; + + #ifdef ENABLE_FMRADIO + if (gFmRadioMode) + BK1080_Init(0, false); + #endif - gVFO_RSSI_Level[gEeprom.RX_CHANNEL == 0] = 0; + gVFO_RSSI_Level[gEeprom.RX_CHANNEL == 0] = 0; - GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); + GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); - gEnableSpeaker = true; + gEnableSpeaker = true; - BACKLIGHT_TurnOn(); + BACKLIGHT_TurnOn(); - if (gScanState != SCAN_OFF) + if (gScanState != SCAN_OFF) + { + switch (gEeprom.SCAN_RESUME_MODE) { - switch (gEeprom.SCAN_RESUME_MODE) - { - case SCAN_RESUME_TO: - if (!gScanPauseMode) - { - ScanPauseDelayIn_10ms = 500; - gScheduleScanListen = false; - gScanPauseMode = true; - } - break; - - case SCAN_RESUME_CO: - case SCAN_RESUME_SE: - ScanPauseDelayIn_10ms = 0; + case SCAN_RESUME_TO: + if (!gScanPauseMode) + { + ScanPauseDelayIn_10ms = 500; gScheduleScanListen = false; - break; - } + gScanPauseMode = true; + } + break; - bScanKeepFrequency = true; + case SCAN_RESUME_CO: + case SCAN_RESUME_SE: + ScanPauseDelayIn_10ms = 0; + gScheduleScanListen = false; + break; } - #ifdef ENABLE_NOAA - if (IS_NOAA_CHANNEL(gRxVfo->CHANNEL_SAVE) && gIsNoaaMode) - { - gRxVfo->CHANNEL_SAVE = gNoaaChannel + NOAA_CHANNEL_FIRST; - gRxVfo->pRX->Frequency = NoaaFrequencyTable[gNoaaChannel]; - gRxVfo->pTX->Frequency = NoaaFrequencyTable[gNoaaChannel]; - gEeprom.ScreenChannel[gEeprom.RX_CHANNEL] = gRxVfo->CHANNEL_SAVE; - gNOAA_Countdown_10ms = 500; // 5 sec - gScheduleNOAA = false; - } - #endif - - if (gCssScanMode != CSS_SCAN_MODE_OFF) - gCssScanMode = CSS_SCAN_MODE_FOUND; + bScanKeepFrequency = true; + } - if (gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF && gEeprom.DUAL_WATCH != DUAL_WATCH_OFF) + #ifdef ENABLE_NOAA + if (IS_NOAA_CHANNEL(gRxVfo->CHANNEL_SAVE) && gIsNoaaMode) { - gDualWatchCountdown_10ms = dual_watch_count_after_2_10ms; - gScheduleDualWatch = false; + gRxVfo->CHANNEL_SAVE = gNoaaChannel + NOAA_CHANNEL_FIRST; + gRxVfo->pRX->Frequency = NoaaFrequencyTable[gNoaaChannel]; + gRxVfo->pTX->Frequency = NoaaFrequencyTable[gNoaaChannel]; + gEeprom.ScreenChannel[gEeprom.RX_CHANNEL] = gRxVfo->CHANNEL_SAVE; + gNOAA_Countdown_10ms = 500; // 5 sec + gScheduleNOAA = false; + } + #endif - gRxVfoIsActive = true; + if (gCssScanMode != CSS_SCAN_MODE_OFF) + gCssScanMode = CSS_SCAN_MODE_FOUND; - // let the user see DW is not active - gDualWatchActive = false; - gUpdateStatus = true; - } + if (gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF && gEeprom.DUAL_WATCH != DUAL_WATCH_OFF) + { // not scanning, dual watch is enabled - const uint32_t rx_frequency = gRxVfo->pRX->Frequency; -/* - if (gRxVfo->IsAM) - { // AM - - // RX AF level - // - // REG_48 <15:12> 11 ??? - // - // REG_48 <11:10> 0 AF Rx Gain-1 - // 0 = 0dB - // 1 = -6dB - // 2 = -12dB - // 3 = -18dB - // - // REG_48 <9:4> 60 AF Rx Gain-2 -26dB ~ 5.5dB 0.5dB/step - // 63 = max - // 0 = min = mute - // - // REG_48 <3:0> 15 AF DAC Gain (after Gain-1 and Gain-2) approx 2dB/step - // 15 = max - // 0 = min - // - BK4819_WriteRegister(BK4819_REG_48, - #if 0 - // QS calibrated RX AF gain - (11u << 12) | // ??? - ( 0u << 10) | // AF Rx Gain-1 - (gEeprom.VOLUME_GAIN << 4) | // AF Rx Gain-2 - (gEeprom.DAC_GAIN << 0)); // AF DAC Gain (after Gain-1 and Gain-2) - #else - // max RX AF gain - (11u << 12) | // ??? - ( 0u << 10) | // AF Rx Gain-1 - (63u << 4) | // AF Rx Gain-2 - (15u << 0)); // AF DAC Gain (after Gain-1 and Gain-2) - #endif + gDualWatchCountdown_10ms = dual_watch_count_after_2_10ms; + gScheduleDualWatch = false; -// BK4819_WriteRegister(0x4B, BK4819_ReadRegister(0x4B) & ~(1u << 5)); // enable RX ALC - - // help improve AM RX distorted audio by reducing the PGA gain (still very bad with stronge signals) - // - // I think a solution is to dynamically change these values as the RSSI moves up/down ? - // without a detailed datasheet on the chip it's difficult/impossible to fix things - // - // REG_10 <15:0> 0x0038 Rx AGC Gain Table[0]. (Index Max->Min is 3,2,1,0,-1) - // - // <9:8> = LNA Gain Short - // 3 = 0dB - // 2 = -11dB - // 1 = -16dB - // 0 = -19dB - // - // <7:5> = LNA Gain - // 7 = 0dB - // 6 = -2dB - // 5 = -4dB - // 4 = -6dB - // 3 = -9dB - // 2 = -14dB - // 1 = -19dB - // 0 = -24dB - // - // <4:3> = MIXER Gain - // 3 = 0dB - // 2 = -3dB - // 1 = -6dB - // 0 = -8dB - // - // <2:0> = PGA Gain - // 7 = 0dB - // 6 = -3dB - // 5 = -6dB - // 4 = -9dB - // 3 = -15dB - // 2 = -21dB - // 1 = -27dB - // 0 = -33dB - // - // LNA_SHORT .. 0dB - // LNA ........ 14dB - // MIXER ...... 0dB - // PGA ........ -15dB - // - { - uint16_t lna_short; // whats "LNA SHORT" mean ? - uint16_t lna; - uint16_t mixer; - uint16_t pga; - // seems the RX gain abrutly reduces above this frequency, why ? - if (rx_frequency <= 22640000) - { - lna_short = 3; // original - lna = 2; // original - mixer = 3; // original - pga = 3; // reduced - seems to help reduce the AM demodulation distortion - } - else - { - lna_short = 3; // original - lna = 4; // increased - mixer = 3; // original - // pga = 6; // original - pga = 7; // increased - } + gRxVfoIsActive = true; - BK4819_WriteRegister(BK4819_REG_13, (lna_short << 8) | (lna << 5) | (mixer << 3) | (pga << 0)); + // let the user see DW is not active + gDualWatchActive = false; + gUpdateStatus = true; + } - // what do these 4 other gain tables do ??? - //BK4819_WriteRegister(BK4819_REG_12, 0x037B); // 000000 11 011 11 011 - //BK4819_WriteRegister(BK4819_REG_11, 0x027B); // 000000 10 011 11 011 - //BK4819_WriteRegister(BK4819_REG_10, 0x007A); // 000000 00 011 11 010 - //BK4819_WriteRegister(BK4819_REG_14, 0x0019); // 000000 00 000 11 001 - } + if (gRxVfo->IsAM) + { // AM + + const uint32_t rx_frequency = gRxVfo->pRX->Frequency; + + uint16_t lna_short; // whats "LNA SHORT" mean ? + uint16_t lna; + uint16_t mixer; + uint16_t pga; - gNeverUsed = 0; + // the RX gain abrutly reduces above this frequency, why ? + if (rx_frequency <= 22640000) + { // decrease front end gain = better AM demodulation + lna_short = 3; // 3 original + lna = 2; // 2 original + mixer = 3; // 3 original + pga = 3; // 6 original, 3 reduced } else - { // FM - - // RX AF level - // - // REG_48 <15:12> 11 ??? - // - // REG_48 <11:10> 0 AF Rx Gain-1 - // 0 = 0dB - // 1 = -6dB - // 2 = -12dB - // 3 = -18dB - // - // REG_48 <9:4> 60 AF Rx Gain-2 -26dB ~ 5.5dB 0.5dB/step - // 63 = max - // 0 = min = mute - // - // REG_48 <3:0> 15 AF DAC Gain (after Gain-1 and Gain-2) approx 2dB/step - // 15 = max - // 0 = min - // - BK4819_WriteRegister(BK4819_REG_48, - (11u << 12) | // ??? - ( 0u << 10) | // AF Rx Gain-1 - (gEeprom.VOLUME_GAIN << 4) | // AF Rx Gain-2 - (gEeprom.DAC_GAIN << 0)); // AF DAC Gain (after Gain-1 and Gain-2) - -// BK4819_WriteRegister(0x4B, BK4819_ReadRegister(0x4B) | (1u << 5)); // disable RX ALC - - // REG_10 <15:0> 0x0038 Rx AGC Gain Table[0]. (Index Max->Min is 3,2,1,0,-1) - // - // <9:8> = LNA Gain Short - // 3 = 0dB - // 2 = -11dB - // 1 = -16dB - // 0 = -19dB - // - // <7:5> = LNA Gain - // 7 = 0dB - // 6 = -2dB - // 5 = -4dB - // 4 = -6dB - // 3 = -9dB - // 2 = -14dB - // 1 = -19dB - // 0 = -24dB - // - // <4:3> = MIXER Gain - // 3 = 0dB - // 2 = -3dB - // 1 = -6dB - // 0 = -8dB - // - // <2:0> = PGA Gain - // 7 = 0dB - // 6 = -3dB - // 5 = -6dB - // 4 = -9dB - // 3 = -15dB - // 2 = -21dB - // 1 = -27dB - // 0 = -33dB - // - // LNA_SHORT .. 0dB - // LNA ........ 14dB - // MIXER ...... 0dB - // PGA ........ -3dB - // LNA SHORT LNA MIXER PGA - BK4819_WriteRegister(BK4819_REG_13, (3u << 8) | (2u << 5) | (3u << 3) | (6u << 0)); - } -*/ - if (gRxVfo->IsAM) - { // AM - { - uint16_t lna_short; // whats "LNA SHORT" mean ? - uint16_t lna; - uint16_t mixer; - uint16_t pga; + { // increasing the front end to compensate the reduced gain, but more gain decreases dynamic range + lna_short = 3; // 3 original + lna = 4; // 2 original, 4 increased + mixer = 3; // 3 original + pga = 7; // 6 original, 7 increased + } + BK4819_WriteRegister(BK4819_REG_13, (lna_short << 8) | (lna << 5) | (mixer << 3) | (pga << 0)); - // seems the RX gain abrutly reduces above this frequency, why ? - if (rx_frequency <= 22640000) - { - lna_short = 3; // original - lna = 2; // original - mixer = 3; // original - pga = 3; // reduced - seems to help reduce the AM demodulation distortion - } - else - { // increasing the front ends gain decreases the dynamic range - lna_short = 3; // original - lna = 4; // increased - mixer = 3; // original - // pga = 6; // original - pga = 7; // increased - } + // what do these 4 other gain settings do ??? + //BK4819_WriteRegister(BK4819_REG_12, 0x037B); // 000000 11 011 11 011 + //BK4819_WriteRegister(BK4819_REG_11, 0x027B); // 000000 10 011 11 011 + //BK4819_WriteRegister(BK4819_REG_10, 0x007A); // 000000 00 011 11 010 + //BK4819_WriteRegister(BK4819_REG_14, 0x0019); // 000000 00 000 11 001 - BK4819_WriteRegister(BK4819_REG_13, (lna_short << 8) | (lna << 5) | (mixer << 3) | (pga << 0)); + // AF gain (max it out) - see below FM mode bit for original setting + BK4819_WriteRegister(BK4819_REG_48, + (11u << 12) | // ??? .. 0 to 15, doesn't seem to make any difference + ( 0u << 10) | // AF Rx Gain-1 + (63u << 4) | // AF Rx Gain-2 + (15u << 0)); // AF DAC Gain (after Gain-1 and Gain-2) - // what do these 4 other gain tables do ??? - //BK4819_WriteRegister(BK4819_REG_12, 0x037B); // 000000 11 011 11 011 - //BK4819_WriteRegister(BK4819_REG_11, 0x027B); // 000000 10 011 11 011 - //BK4819_WriteRegister(BK4819_REG_10, 0x007A); // 000000 00 011 11 010 - //BK4819_WriteRegister(BK4819_REG_14, 0x0019); // 000000 00 000 11 001 - } + gNeverUsed = 0; + } + else + { // FM - BK4819_WriteRegister(BK4819_REG_48, - // max RX AF gain - (11u << 12) | // ??? - ( 0u << 10) | // AF Rx Gain-1 - (63u << 4) | // AF Rx Gain-2 - (15u << 0)); // AF DAC Gain (after Gain-1 and Gain-2) + // original + const uint16_t lna_short = 3; // whats 'LNA short' mean ? + const uint16_t lna = 2; + const uint16_t mixer = 3; + const uint16_t pga = 6; + BK4819_WriteRegister(BK4819_REG_13, (lna_short << 8) | (lna << 5) | (mixer << 3) | (pga << 0)); - gNeverUsed = 0; - } - else - { // FM - - uint16_t lna_short; // whats "LNA SHORT" mean ? - uint16_t lna; - uint16_t mixer; - uint16_t pga; - - // original - lna_short = 3; - lna = 2; - mixer = 3; - pga = 6; - - BK4819_WriteRegister(BK4819_REG_13, (lna_short << 8) | (lna << 5) | (mixer << 3) | (pga << 0)); - - BK4819_WriteRegister(BK4819_REG_48, - (11u << 12) | // ??? - ( 0u << 10) | // AF Rx Gain-1 - (gEeprom.VOLUME_GAIN << 4) | // AF Rx Gain-2 - (gEeprom.DAC_GAIN << 0)); // AF DAC Gain (after Gain-1 and Gain-2) - } - - #ifdef ENABLE_VOICE - if (gVoiceWriteIndex == 0) - #endif - BK4819_SetAF(gRxVfo->IsAM ? BK4819_AF_AM : BK4819_AF_OPEN); + // AF gain - original + BK4819_WriteRegister(BK4819_REG_48, + (11u << 12) | // ??? .. 0 to 15, doesn't seem to make any difference + ( 0u << 10) | // AF Rx Gain-1 + (gEeprom.VOLUME_GAIN << 4) | // AF Rx Gain-2 + (gEeprom.DAC_GAIN << 0)); // AF DAC Gain (after Gain-1 and Gain-2) + } - FUNCTION_Select(Function); + #ifdef ENABLE_VOICE + if (gVoiceWriteIndex == 0) + #endif + BK4819_SetAF(gRxVfo->IsAM ? BK4819_AF_AM : BK4819_AF_OPEN); - #ifdef ENABLE_FMRADIO - if (Function == FUNCTION_MONITOR || gFmRadioMode) - #else - if (Function == FUNCTION_MONITOR) - #endif - { - GUI_SelectNextDisplay(DISPLAY_MAIN); - return; - } + FUNCTION_Select(Function); - gUpdateDisplay = true; + #ifdef ENABLE_FMRADIO + if (Function == FUNCTION_MONITOR || gFmRadioMode) + #else + if (Function == FUNCTION_MONITOR) + #endif + { // squelch is disabled + GUI_SelectNextDisplay(DISPLAY_MAIN); + return; } + + gUpdateDisplay = true; } void APP_SetFrequencyByStep(VFO_Info_t *pInfo, int8_t Step) @@ -851,7 +665,7 @@ static void DUALWATCH_Alternate(void) if (gIsNoaaMode) { if (IS_NOT_NOAA_CHANNEL(gEeprom.ScreenChannel[0]) || IS_NOT_NOAA_CHANNEL(gEeprom.ScreenChannel[1])) - gEeprom.RX_CHANNEL = 1 - gEeprom.RX_CHANNEL; + gEeprom.RX_CHANNEL = (gEeprom.RX_CHANNEL + 1) & 1; else gEeprom.RX_CHANNEL = 0; @@ -863,7 +677,7 @@ static void DUALWATCH_Alternate(void) else #endif { // toggle between VFO's - gEeprom.RX_CHANNEL = (1 - gEeprom.RX_CHANNEL) & 1; + gEeprom.RX_CHANNEL = (gEeprom.RX_CHANNEL + 1) & 1; gRxVfo = &gEeprom.VfoInfo[gEeprom.RX_CHANNEL]; if (!gDualWatchActive) @@ -965,8 +779,8 @@ void APP_CheckRadioInterrupts(void) { if (gCurrentFunction == FUNCTION_POWER_SAVE && !gRxIdleMode) { - gBatterySave_10ms = 20; // 200ms - gBatterySaveCountdownExpired = 0; + gPowerSave_10ms = power_save2_10ms; + gPowerSaveCountdownExpired = 0; } if (gEeprom.DUAL_WATCH != DUAL_WATCH_OFF && (gScheduleDualWatch || gDualWatchCountdown_10ms < dual_watch_count_after_vox_10ms)) @@ -1124,16 +938,14 @@ void APP_Update(void) #endif if (gCurrentFunction == FUNCTION_TRANSMIT && gTxTimeoutReached) - { + { // transmitting, but just timed out + gTxTimeoutReached = false; gFlagEndTransmission = true; APP_EndTransmission(); - AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP); - RADIO_SetVfoState(VFO_STATE_TIMEOUT); - GUI_DisplayScreen(); } @@ -1291,17 +1103,18 @@ void APP_Update(void) { FUNCTION_Select(FUNCTION_POWER_SAVE); } - + gSchedulePowerSave = false; #endif } #ifdef ENABLE_VOICE - if (gBatterySaveCountdownExpired && gCurrentFunction == FUNCTION_POWER_SAVE && gVoiceWriteIndex == 0) + if (gPowerSaveCountdownExpired && gCurrentFunction == FUNCTION_POWER_SAVE && gVoiceWriteIndex == 0) #else - if (gBatterySaveCountdownExpired && gCurrentFunction == FUNCTION_POWER_SAVE) + if (gPowerSaveCountdownExpired && gCurrentFunction == FUNCTION_POWER_SAVE) #endif - { + { // wake up, enable RX then go back to sleep + if (gRxIdleMode) { BK4819_Conditional_RX_TurnOn_and_GPIO6_Enable(); @@ -1310,25 +1123,29 @@ void APP_Update(void) BK4819_EnableVox(gEeprom.VOX1_THRESHOLD, gEeprom.VOX0_THRESHOLD); if (gEeprom.DUAL_WATCH != DUAL_WATCH_OFF && gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF) - { - DUALWATCH_Alternate(); // toggle between the two VFO's + { // dual watch mode, toggle between the two VFO's + DUALWATCH_Alternate(); gUpdateRSSI = false; } FUNCTION_Init(); - gBatterySave_10ms = 10; // 100ms - gRxIdleMode = false; + gPowerSave_10ms = power_save1_10ms; // come back here in a bit + gRxIdleMode = false; // RX is awake } else if (gEeprom.DUAL_WATCH == DUAL_WATCH_OFF || gScanState != SCAN_OFF || gCssScanMode != CSS_SCAN_MODE_OFF || gUpdateRSSI) - { + { // dual watch mode, go back to sleep + + // sample the RSSI gCurrentRSSI = BK4819_GetRSSI(); UI_UpdateRSSI(gCurrentRSSI); - gBatterySave_10ms = gEeprom.BATTERY_SAVE * 10; - gRxIdleMode = true; + // go back to sleep + + gPowerSave_10ms = gEeprom.BATTERY_SAVE * 10; + gRxIdleMode = true; BK4819_DisableVox(); BK4819_Sleep(); @@ -1338,14 +1155,16 @@ void APP_Update(void) } else - { - DUALWATCH_Alternate(); // toggle between the two VFO's + { // no yet in power save mode + + // toggle between the two VFO's + DUALWATCH_Alternate(); - gUpdateRSSI = true; - gBatterySave_10ms = 10; // 100ms + gUpdateRSSI = true; + gPowerSave_10ms = power_save1_10ms; } - gBatterySaveCountdownExpired = false; + gPowerSaveCountdownExpired = false; } } @@ -1495,6 +1314,130 @@ void APP_CheckKeys(void) } } +#ifdef ENABLE_AM_AGC_GAIN + void adjustAMFrontEnd10ms(void) + { + if (!gRxVfo->IsAM) + return; // FM + + switch (gCurrentFunction) + { + case FUNCTION_TRANSMIT: + case FUNCTION_BAND_SCOPE: + case FUNCTION_POWER_SAVE: + return; + + case FUNCTION_FOREGROUND: + case FUNCTION_RECEIVE: + case FUNCTION_MONITOR: + case FUNCTION_INCOMING: + break; + } + + // AM + + // REG_10 <15:0> 0x0038 Rx AGC Gain Table[0]. (Index Max->Min is 3,2,1,0,-1) + // + // <9:8> = LNA Gain Short + // 3 = 0dB + // 2 = -11dB + // 1 = -16dB + // 0 = -19dB + // + // <7:5> = LNA Gain + // 7 = 0dB + // 6 = -2dB + // 5 = -4dB + // 4 = -6dB + // 3 = -9dB + // 2 = -14dB + // 1 = -19dB + // 0 = -24dB + // + // <4:3> = MIXER Gain + // 3 = 0dB + // 2 = -3dB + // 1 = -6dB + // 0 = -8dB + // + // <2:0> = PGA Gain + // 7 = 0dB + // 6 = -3dB + // 5 = -6dB + // 4 = -9dB + // 3 = -15dB + // 2 = -21dB + // 1 = -27dB + // 0 = -33dB + // + // LNA_SHORT .. 0dB + // LNA ........ 14dB + // MIXER ...... 0dB + // PGA ........ -3dB + + // original settings + static uint16_t lna_short = 3; + static uint16_t lna = 2; + static uint16_t mixer = 3; + static uint16_t pga = 6; + + static unsigned int counter = 0; + static unsigned int avg_rssi = 0; + + register uint16_t new_lna_short = lna_short; + register uint16_t new_lna = lna; + register uint16_t new_mixer = mixer; + register uint16_t new_pga = pga; + + { + const uint16_t desired_rssi = (-86 + 160) * 2; // -86dBm + + gCurrentRSSI = BK4819_GetRSSI(); + + avg_rssi += gCurrentRSSI; + if (++counter < 16) // 160ms + return; + + avg_rssi /= counter; + counter = 0; + + if (avg_rssi < (desired_rssi - 4)) + { // increase gain + if (new_pga < 7) + new_pga++; + else + if (new_mixer < 3) + new_mixer++; + else + if (new_lna < 7) + new_lna++; + } + else + if (avg_rssi > (desired_rssi + 4)) + { // decrease gain + if (new_pga > 0) + new_pga--; + else + if (new_mixer > 0) + new_mixer--; + else + if (new_lna > 0) + new_lna--; + } + } + + if (lna_short == new_lna_short && lna == new_lna && mixer == new_mixer && pga == new_pga) + return; // no change + + lna_short = new_lna_short; + lna = new_lna; + mixer = new_mixer; + pga = new_pga; + + BK4819_WriteRegister(BK4819_REG_13, (lna_short << 8) | (lna << 5) | (mixer << 3) | (pga << 0)); + } +#endif + void APP_TimeSlice10ms(void) { gFlashLightBlinkCounter++; @@ -1505,6 +1448,11 @@ void APP_TimeSlice10ms(void) AUDIO_PlayBeep(BEEP_880HZ_40MS_OPTIONAL); #endif + #ifdef ENABLE_AM_AGC_GAIN + if (gSetting_AM_fix) + adjustAMFrontEnd10ms(); + #endif + if (UART_IsCommandAvailable()) { __disable_irq(); @@ -1931,7 +1879,8 @@ void APP_TimeSlice500ms(void) UI_DisplayBattery(gLowBatteryCountdown); if (gCurrentFunction != FUNCTION_TRANSMIT) - { + { // not transmitting + if (gLowBatteryCountdown < 30) { if (gLowBatteryCountdown == 29 && !gChargingWithTypeC) @@ -1942,7 +1891,8 @@ void APP_TimeSlice500ms(void) gLowBatteryCountdown = 0; if (!gChargingWithTypeC) - { + { // not on charge + AUDIO_PlayBeep(BEEP_500HZ_60MS_DOUBLE_BEEP); #ifdef ENABLE_VOICE @@ -1961,7 +1911,7 @@ void APP_TimeSlice500ms(void) ST7565_Configure_GPIO_B11(); - //if (gEeprom.BACKLIGHT < (ARRAY_SIZE(gSubMenu_BACKLIGHT) - 1)) + if (gEeprom.BACKLIGHT < (ARRAY_SIZE(gSubMenu_BACKLIGHT) - 1)) GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); // turn the backlight off } #ifdef ENABLE_VOICE diff --git a/app/menu.c b/app/menu.c index d73c5ca..feb1165 100644 --- a/app/menu.c +++ b/app/menu.c @@ -186,6 +186,9 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) case MENU_D_DCD: case MENU_D_LIVE_DEC: case MENU_AM: + #ifdef ENABLE_AM_AGC_GAIN + case MENU_AM_FIX: + #endif #ifdef ENABLE_NOAA case MENU_NOAA_S: #endif @@ -606,6 +609,14 @@ void MENU_AcceptSetting(void) gRequestSaveChannel = 2; return; + #ifdef ENABLE_AM_AGC_GAIN + case MENU_AM_FIX: + gSetting_AM_fix = gSubMenuSelection; + gVfoConfigureMode = VFO_CONFIGURE_RELOAD; + gFlagResetVfos = true; + break; + #endif + #ifdef ENABLE_NOAA case MENU_NOAA_S: gEeprom.NOAA_AUTO_SCAN = gSubMenuSelection; @@ -976,6 +987,12 @@ void MENU_ShowCurrentSetting(void) gSubMenuSelection = gTxVfo->AM_CHANNEL_MODE; break; + #ifdef ENABLE_AM_AGC_GAIN + case MENU_AM_FIX: + gSubMenuSelection = gSetting_AM_fix; + break; + #endif + #ifdef ENABLE_NOAA case MENU_NOAA_S: gSubMenuSelection = gEeprom.NOAA_AUTO_SCAN; diff --git a/board.c b/board.c index b9bab24..ebf1401 100644 --- a/board.c +++ b/board.c @@ -710,6 +710,9 @@ void BOARD_EEPROM_Init(void) #ifdef ENABLE_AUDIO_BAR gSetting_mic_bar = (Data[7] & (1u << 4)) ? true : false; #endif + #ifdef ENABLE_AM_AGC_GAIN + gSetting_AM_fix = (Data[7] & (1u << 5)) ? true : false; + #endif if (!gEeprom.VFO_OPEN) { diff --git a/driver/bk4819.c b/driver/bk4819.c index beff0cf..91ef2d0 100644 --- a/driver/bk4819.c +++ b/driver/bk4819.c @@ -59,7 +59,7 @@ void BK4819_Init(void) // RX AF level // - // REG_48 <15:12> 11 ??? + // REG_48 <15:12> 11 ??? 0 to 15 // // REG_48 <11:10> 0 AF Rx Gain-1 // 0 = 0dB @@ -76,7 +76,7 @@ void BK4819_Init(void) // 0 = min // BK4819_WriteRegister(BK4819_REG_48, // 0xB3A8); // 1011 00 111010 1000 - (11u << 12) | // ??? + (11u << 12) | // ??? 0..15 ( 0u << 10) | // AF Rx Gain-1 (58u << 4) | // AF Rx Gain-2 ( 8u << 0)); // AF DAC Gain (after Gain-1 and Gain-2) diff --git a/firmware b/firmware index 0b6edca1646fdcdef7c9cf0c2045e9866223044c..b68641cc2b0a49243057cdf77d17a74854f00b4c 100644 GIT binary patch delta 34601 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 %a8n6p3a$QT3}s>sB`|@K0a*UayYd* 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 T>D2|hhP1WVBHDUMN671cfHeQ9 delta 34051 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 diff --git a/firmware.packed.bin b/firmware.packed.bin index e77e679936914870306b5542b430eb8c3f013d7f..73cee221c38175877cad1404a81000a595dbdf79 100644 GIT binary patch delta 41846 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 SyhH`q#v*Bl4$F{>H2(+W)>=FO diff --git a/functions.c b/functions.c index 250a2fc..9f0406c 100644 --- a/functions.c +++ b/functions.c @@ -130,9 +130,8 @@ void FUNCTION_Select(FUNCTION_Type_t Function) break; case FUNCTION_POWER_SAVE: - gBatterySave_10ms = gEeprom.BATTERY_SAVE * 10; - - gBatterySaveCountdownExpired = false; + gPowerSave_10ms = gEeprom.BATTERY_SAVE * 10; + gPowerSaveCountdownExpired = false; gRxIdleMode = true; @@ -199,7 +198,7 @@ void FUNCTION_Select(FUNCTION_Type_t Function) } gBatterySaveCountdown_10ms = battery_save_count_10ms; - gSchedulePowerSave = false; + gSchedulePowerSave = false; #if defined(ENABLE_FMRADIO) gFM_RestoreCountdown = 0; diff --git a/functions.h b/functions.h index cc63dd8..4194d86 100644 --- a/functions.h +++ b/functions.h @@ -21,13 +21,13 @@ enum FUNCTION_Type_t { - FUNCTION_FOREGROUND = 0, - FUNCTION_TRANSMIT, - FUNCTION_MONITOR, - FUNCTION_INCOMING, - FUNCTION_RECEIVE, - FUNCTION_POWER_SAVE, - FUNCTION_BAND_SCOPE + FUNCTION_FOREGROUND = 0, // ??? + FUNCTION_TRANSMIT, // transmitting + FUNCTION_MONITOR, // receiving with squelch forced open + FUNCTION_INCOMING, // receiving a signal (squelch is open) + FUNCTION_RECEIVE, // RX mode, squelch closed + FUNCTION_POWER_SAVE, // sleeping + FUNCTION_BAND_SCOPE // bandscope mode (panadpter/spectrum) .. not yet implemented }; typedef enum FUNCTION_Type_t FUNCTION_Type_t; diff --git a/helper/battery.c b/helper/battery.c index ca4285f..b6f7754 100644 --- a/helper/battery.c +++ b/helper/battery.c @@ -32,7 +32,7 @@ bool gLowBattery; bool gLowBatteryBlink; uint16_t gBatteryCheckCounter; -volatile uint16_t gBatterySave_10ms; +volatile uint16_t gPowerSave_10ms; void BATTERY_GetReadings(bool bDisplayBatteryLevel) { diff --git a/helper/battery.h b/helper/battery.h index 26a4b90..ea0d1b0 100644 --- a/helper/battery.h +++ b/helper/battery.h @@ -31,7 +31,7 @@ extern bool gLowBattery; extern bool gLowBatteryBlink; extern uint16_t gBatteryCheckCounter; -extern volatile uint16_t gBatterySave_10ms; +extern volatile uint16_t gPowerSave_10ms; void BATTERY_GetReadings(bool bDisplayBatteryLevel); diff --git a/main.c b/main.c index d5c2c70..5da17fa 100644 --- a/main.c +++ b/main.c @@ -67,6 +67,8 @@ void Main(void) BOARD_Init(); UART_Init(); + boot_counter_10ms = 250; // 2.5 sec + UART_Send(UART_Version, strlen(UART_Version)); // Not implementing authentic device checks @@ -99,19 +101,14 @@ void Main(void) { // count the number of menu list items unsigned int hidden = 0; gMenuListCount = 0; -// while (MenuList[gMenuListCount].name != NULL) while (MenuList[gMenuListCount].name[0] != '\0') - { if (MenuList[++gMenuListCount].hidden != 0) hidden++; - } // disable the items marked hidden - //gMenuListCount -= 8; - gMenuListCount -= hidden; + gMenuListCount -= 8; + //gMenuListCount -= hidden; } - boot_counter_10ms = 250; // 2.5 sec - if (!gChargingWithTypeC && !gBatteryDisplayLevel) { FUNCTION_Select(FUNCTION_POWER_SAVE); diff --git a/misc.c b/misc.c index b2b2572..1ce5a83 100644 --- a/misc.c +++ b/misc.c @@ -49,6 +49,9 @@ const uint16_t dual_watch_count_toggle_10ms = 100 / 10; // 100ms betw const uint16_t battery_save_count_10ms = 10000 / 10; // 10 seconds +const uint16_t power_save1_10ms = 100 / 10; // 100ms +const uint16_t power_save2_10ms = 200 / 10; // 200ms + const uint16_t gMax_bat_v = 843; // 8.43V const uint16_t gMin_bat_v = 660; // 6.6V //const uint16_t gMin_bat_v = 690; // 6.9V @@ -66,6 +69,9 @@ bool gSetting_TX_EN; uint8_t gSetting_F_LOCK; bool gSetting_ScrambleEnable; +#ifdef ENABLE_AM_AGC_GAIN + bool gSetting_AM_fix; +#endif #ifdef ENABLE_AUDIO_BAR bool gSetting_mic_bar; #endif @@ -90,7 +96,8 @@ uint16_t gEEPROM_1F8C; uint8_t gMR_ChannelAttributes[FREQ_CHANNEL_LAST + 1]; volatile uint16_t gBatterySaveCountdown_10ms = battery_save_count_10ms; -volatile bool gBatterySaveCountdownExpired; + +volatile bool gPowerSaveCountdownExpired; volatile bool gSchedulePowerSave; volatile bool gScheduleDualWatch = true; diff --git a/misc.h b/misc.h index 1161f58..9ceff3d 100644 --- a/misc.h +++ b/misc.h @@ -67,9 +67,9 @@ enum AlarmState_t { typedef enum AlarmState_t AlarmState_t; enum ReceptionMode_t { - RX_MODE_NONE = 0, - RX_MODE_DETECTED, - RX_MODE_LISTENING + RX_MODE_NONE = 0, // squelch close ? + RX_MODE_DETECTED, // signal detected + RX_MODE_LISTENING // }; typedef enum ReceptionMode_t ReceptionMode_t; @@ -105,6 +105,9 @@ extern const uint8_t scan_delay_10ms; extern const uint16_t battery_save_count_10ms; +extern const uint16_t power_save1_10ms; +extern const uint16_t power_save2_10ms; + extern const uint16_t dual_watch_count_after_tx_10ms; extern const uint16_t dual_watch_count_after_rx_10ms; extern const uint16_t dual_watch_count_after_1_10ms; @@ -127,6 +130,9 @@ extern bool gSetting_TX_EN; extern uint8_t gSetting_F_LOCK; extern bool gSetting_ScrambleEnable; +#ifdef ENABLE_AM_AGC_GAIN + extern bool gSetting_AM_fix; +#endif #ifdef ENABLE_AUDIO_BAR extern bool gSetting_mic_bar; #endif @@ -152,8 +158,9 @@ extern uint16_t gEEPROM_1F8C; extern uint8_t gMR_ChannelAttributes[207]; extern volatile uint16_t gBatterySaveCountdown_10ms; + +extern volatile bool gPowerSaveCountdownExpired; extern volatile bool gSchedulePowerSave; -extern volatile bool gBatterySaveCountdownExpired; extern volatile bool gScheduleDualWatch; diff --git a/radio.c b/radio.c index b7e3750..978ea81 100644 --- a/radio.c +++ b/radio.c @@ -443,6 +443,7 @@ void RADIO_ConfigureSquelchAndOutputPower(VFO_Info_t *pInfo) pInfo->SquelchOpenRSSIThresh = 0x00; pInfo->SquelchOpenNoiseThresh = 0x7F; pInfo->SquelchCloseGlitchThresh = 0xFF; + pInfo->SquelchCloseRSSIThresh = 0x00; pInfo->SquelchCloseNoiseThresh = 0x7F; pInfo->SquelchOpenGlitchThresh = 0xFF; @@ -450,10 +451,13 @@ void RADIO_ConfigureSquelchAndOutputPower(VFO_Info_t *pInfo) else { Base += gEeprom.SQUELCH_LEVEL; + EEPROM_ReadBuffer(Base + 0x00, &pInfo->SquelchOpenRSSIThresh, 1); EEPROM_ReadBuffer(Base + 0x10, &pInfo->SquelchCloseRSSIThresh, 1); + EEPROM_ReadBuffer(Base + 0x20, &pInfo->SquelchOpenNoiseThresh, 1); EEPROM_ReadBuffer(Base + 0x30, &pInfo->SquelchCloseNoiseThresh, 1); + EEPROM_ReadBuffer(Base + 0x40, &pInfo->SquelchCloseGlitchThresh, 1); EEPROM_ReadBuffer(Base + 0x50, &pInfo->SquelchOpenGlitchThresh, 1); diff --git a/scheduler.c b/scheduler.c index 6444851..780c246 100644 --- a/scheduler.c +++ b/scheduler.c @@ -73,7 +73,7 @@ void SystickHandler(void) DECREMENT_AND_TRIGGER(gBatterySaveCountdown_10ms, gSchedulePowerSave); if (gCurrentFunction == FUNCTION_POWER_SAVE) - DECREMENT_AND_TRIGGER(gBatterySave_10ms, gBatterySaveCountdownExpired); + DECREMENT_AND_TRIGGER(gPowerSave_10ms, gPowerSaveCountdownExpired); if (gScanState == SCAN_OFF && gCssScanMode == CSS_SCAN_MODE_OFF && gEeprom.DUAL_WATCH != DUAL_WATCH_OFF) if (gCurrentFunction != FUNCTION_MONITOR && gCurrentFunction != FUNCTION_TRANSMIT && gCurrentFunction != FUNCTION_RECEIVE) diff --git a/settings.c b/settings.c index 9866f60..8516af4 100644 --- a/settings.c +++ b/settings.c @@ -171,6 +171,9 @@ void SETTINGS_SaveSettings(void) #ifdef ENABLE_AUDIO_BAR if (!gSetting_mic_bar) State[7] &= ~(1u << 4); #endif + #ifdef ENABLE_AM_AGC_GAIN + if (!gSetting_AM_fix) State[7] &= ~(1u << 5); + #endif EEPROM_WriteBuffer(0x0F40, State); } diff --git a/ui/menu.c b/ui/menu.c index c65b42b..b9e0d39 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -101,6 +101,9 @@ const t_menu_item MenuList[] = {"BATVOL", 0, VOICE_ID_INVALID, MENU_VOL }, // was "VOL" {"BATTXT", 0, VOICE_ID_INVALID, MENU_BAT_TXT }, {"MODE", 0, VOICE_ID_INVALID, MENU_AM }, // was "AM" +#ifdef ENABLE_AM_AGC_GAIN + {"AM-FIX", 0, VOICE_ID_INVALID, MENU_AM_FIX }, +#endif #ifdef ENABLE_NOAA {"NOAA-S", 0, VOICE_ID_INVALID, MENU_NOAA_S }, #endif @@ -416,6 +419,12 @@ void UI_DisplayMenu(void) strcpy(String, (gSubMenuSelection == 0) ? "FM" : "AM"); break; + #ifdef ENABLE_AM_AGC_GAIN + case MENU_AM_FIX: + strcpy(String, (gSubMenuSelection == 0) ? "OFF" : "FIXED"); + break; + #endif + case MENU_AUTOLK: strcpy(String, (gSubMenuSelection == 0) ? "OFF" : "AUTO"); break; diff --git a/ui/menu.h b/ui/menu.h index bb194ac..e6859be 100644 --- a/ui/menu.h +++ b/ui/menu.h @@ -93,6 +93,9 @@ enum MENU_VOL, MENU_BAT_TXT, MENU_AM, + #ifdef ENABLE_AM_AGC_GAIN + MENU_AM_FIX, + #endif #ifdef ENABLE_NOAA MENU_NOAA_S, #endif diff --git a/ui/rssi.c b/ui/rssi.c index cb7e015..762650e 100644 --- a/ui/rssi.c +++ b/ui/rssi.c @@ -111,13 +111,19 @@ void UI_UpdateRSSI(uint16_t RSSI) //const int16_t dBm = (int16_t)(RSSI / 2) - 160; - //const unsigned int band = gRxVfo->Band; - const unsigned int band = 0; - - const uint16_t level0 = gEEPROM_RSSI_CALIB[band][0]; - const uint16_t level1 = gEEPROM_RSSI_CALIB[band][1]; - const uint16_t level2 = gEEPROM_RSSI_CALIB[band][2]; - const uint16_t level3 = gEEPROM_RSSI_CALIB[band][3]; + #if 0 + //const unsigned int band = gRxVfo->Band; + const unsigned int band = 0; + const uint16_t level0 = gEEPROM_RSSI_CALIB[band][0]; + const uint16_t level1 = gEEPROM_RSSI_CALIB[band][1]; + const uint16_t level2 = gEEPROM_RSSI_CALIB[band][2]; + const uint16_t level3 = gEEPROM_RSSI_CALIB[band][3]; + #else + const uint16_t level0 = (-115 + 160) * 2; // dB + const uint16_t level1 = ( -89 + 160) * 2; // dB + const uint16_t level2 = ( -64 + 160) * 2; // dB + const uint16_t level3 = ( -39 + 160) * 2; // dB + #endif const uint16_t level01 = (level0 + level1) / 2; const uint16_t level12 = (level1 + level2) / 2; const uint16_t level23 = (level2 + level3) / 2; diff --git a/win_make.bat b/win_make.bat index 17a4a04..51c48c0 100644 --- a/win_make.bat +++ b/win_make.bat @@ -1,32 +1,45 @@ -:: download "gcc-arm-none-eabi-10.3-2021.10-win32.exe" for windows .. -:: https://developer.arm.com/downloads/-/gnu-rm +:: Cmpile directly in windows without the need of a linux virtual machine: +:: +:: 1. Download and install "gcc-arm-none-eabi-10.3-2021.10-win32.exe" from https://developer.arm.com/downloads/-/gnu-rm +:: 2. Download and install "gnu_make-3.81.exe" from https://gnuwin32.sourceforge.net/packages/make.htm +:: 3. You may (or not) need to manualy add gcc path to you OS environment PATH, ie .. +:: C:\Program Files (x86)\GNU Arm Embedded Toolchain\10 2021.10\bin +:: 4. You may (or not) need to reboot your PC after installing the above +:: +:: Then you can run this bat from the directory you saved this source code too. :: -:: download "gnu_make-3.81.exe" for windows .. -:: https://gnuwin32.sourceforge.net/packages/make.htm +:: You will need to edit the line below that runs the make.exe file to point to it's actual location if +:: it's different from mine. +:: delete any left over files from any previous compile del /S /Q *.o >nul 2>nul del /S /Q *.d >nul 2>nul del /S /Q *.bin >nul 2>nul + +:: do the compile ! "C:\Program Files (x86)\GnuWin32\bin\make" + +:: delete the unused created when compiling files del /S /Q *.o >nul 2>nul del /S /Q *.d >nul 2>nul :: If you have python installed, you can create a 'packed' .bin from the compiled firmware.bin file. :: The Quansheng windows upload-to-radio program requires a 'packed' .bin file. :: -:: if you don't have python installed, then comment out the python line(s) below, in which case you'll need -:: to upload the standard unpacked firmware.bin file another way. +:: if you don't have python installed, then you can still upload the standard unpacked firmware.bin +:: file another way ... :: -:: I wrote a windows version of k5prog to do this easily in windows .. +:: I wrote a GUI version of k5prog to do this easily in windows .. :: https://github.com/OneOfEleven/k5prog-win +:: these just install the required initial python module if you want to create the packed firmware bin file, either +:: only needs running once, ever. +:: ::python -m pip install --upgrade pip crcmod ::python3 -m pip install --upgrade pip crcmod -::python fw-pack.py firmware.bin 230921 firmware.packed.bin -::python3 fw-pack.py firmware.bin 230921 firmware.packed.bin - +:: show the compiled .bin file size ::arm-none-eabi-size firmware pause