From aac2511e4341dc492b0394e6648b7465916c6887 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Sat, 23 Sep 2023 12:07:46 +0100 Subject: [PATCH] Added AM fix on-screen debug info (table index & front end gain) --- Makefile | 7 + README.md | 1 + am_fix.c | 306 ++++++++++++++++++++++++++++++++++++++++++++ am_fix.h | 45 +++++++ app/app.c | 268 +------------------------------------- firmware | Bin 166780 -> 166988 bytes firmware.bin | Bin 52268 -> 52408 bytes firmware.packed.bin | Bin 52286 -> 52426 bytes ui/main.c | 48 ++++--- 9 files changed, 390 insertions(+), 285 deletions(-) create mode 100644 am_fix.c create mode 100644 am_fix.h diff --git a/Makefile b/Makefile index 68d04b8..bcb9b06 100644 --- a/Makefile +++ b/Makefile @@ -22,6 +22,7 @@ ENABLE_COMPANDER := 1 ENABLE_SHOW_CHARGE_LEVEL := 0 ENABLE_REVERSE_BAT_SYMBOL := 1 ENABLE_AM_FIX := 1 +ENABLE_AM_FIX_SHOW_DATA := 1 ENABLE_SQUELCH1_LOWER := 1 ENABLE_AUDIO_BAR := 0 #ENABLE_SINGLE_VFO_CHAN := 1 @@ -87,6 +88,9 @@ OBJS += app/scanner.o ifeq ($(ENABLE_UART),1) OBJS += app/uart.o endif +ifeq ($(ENABLE_AM_FIX),1) + OBJS += am_fix.o +endif OBJS += audio.o OBJS += bitmaps.o OBJS += board.o @@ -201,6 +205,9 @@ endif ifeq ($(ENABLE_AM_FIX),1) CFLAGS += -DENABLE_AM_FIX endif +ifeq ($(ENABLE_AM_FIX_SHOW_DATA),1) + CFLAGS += -DENABLE_AM_FIX_SHOW_DATA +endif ifeq ($(ENABLE_SQUELCH1_LOWER),1) CFLAGS += -DENABLE_SQUELCH1_LOWER endif diff --git a/README.md b/README.md index bd94fa5..6900a99 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ ENABLE_COMPANDER := 1 compander option (per channel) ENABLE_SHOW_CHARGE_LEVEL := 1 show the charge level when the radio is on charge ENABLE_REVERSE_BAT_SYMBOL := 1 mirror the battery symbol on the status bar (+ pole on the right) ENABLE_AM_FIX := 1 dynamically adjust the front end gains when in AM mode to helo prevent AM demodulator saturation - ignore the on-screen RSSI (for now) +ENABLE_AM_FIX_SHOW_DATA := 1 show debug data for the AM fix ENABLE_SQUELCH1_LOWER := 1 adjusts squelch setting '1' to be more sensitive - I plan to let user adjust it in the menu ENABLE_AUDIO_BAR := 0 experimental, display an audo bar level when TX'ing #ENABLE_SINGLE_VFO_CHAN := 1 not yet implemented - single VFO on display when possible diff --git a/am_fix.c b/am_fix.c new file mode 100644 index 0000000..60eb246 --- /dev/null +++ b/am_fix.c @@ -0,0 +1,306 @@ + +#include + +#include "app/generic.h" +#include "app/main.h" +#include "ARMCM0.h" +#include "am_fix.h" +#include "board.h" +#include "driver/bk4819.h" +#include "driver/system.h" +#ifdef ENABLE_AM_FIX_SHOW_DATA + #include "external/printf/printf.h" +#endif +#include "frequencies.h" +#include "functions.h" +#include "misc.h" +#include "ui/rssi.h" + +// original QS front end gain settings +const uint8_t orig_lna_short = 3; // 0dB +const uint8_t orig_lna = 2; // -14dB +const uint8_t orig_mixer = 3; // 0dB +const uint8_t orig_pga = 6; // -3dB + +#ifdef ENABLE_AM_FIX + // stuff to overcome the AM demodulator saturation problem + // + // that is until someone works out how to properly configure the BK chip !! + + // REG_10 AGC gain table + // + // <15:10> ??? + // + // <9:8> = LNA Gain Short + // 3 = 0dB < original value + // 2 = -11dB + // 1 = -16dB + // 0 = -19dB + // + // <7:5> = LNA Gain + // 7 = 0dB + // 6 = -2dB + // 5 = -4dB + // 4 = -6dB + // 3 = -9dB + // 2 = -14dB < original value + // 1 = -19dB + // 0 = -24dB + // + // <4:3> = MIXER Gain + // 3 = 0dB < original value + // 2 = -3dB + // 1 = -6dB + // 0 = -8dB + // + // <2:0> = PGA Gain + // 7 = 0dB + // 6 = -3dB < original value + // 5 = -6dB + // 4 = -9dB + // 3 = -15dB + // 2 = -21dB + // 1 = -27dB + // 0 = -33dB + + // front end register dB values + const int8_t lna_short_dB[4] = {-19, -16, -11, 0}; + const int8_t lna_dB[8] = {-24, -19, -14, -9, -6, -4, -2, 0}; + const int8_t mixer_dB[4] = { -8, -6, -3, 0}; + const int8_t pga_dB[8] = {-33, -27, -21, -15, -9, -6, -3, 0}; + + // lookup table is by far easier than writing code to do the same + static const t_am_fix_gain_table am_fix_gain_table[] = + { + {.lna_short = 3, .lna = 2, .mixer = 3, .pga = 6}, // 0 0dB -14dB 0dB -3dB .. -17dB original + + {3, 0, 0, 0}, // 1 0dB -24dB -8dB -33dB .. -65dB + {3, 0, 1, 0}, // 2 0dB -24dB -6dB -33dB .. -63dB + {3, 0, 2, 0}, // 3 0dB -24dB -3dB -33dB .. -60dB + {3, 0, 0, 1}, // 4 0dB -24dB -8dB -27dB .. -59dB + {3, 1, 1, 0}, // 5 0dB -19dB -6dB -33dB .. -58dB + {3, 0, 1, 1}, // 6 0dB -24dB -6dB -27dB .. -57dB + {3, 1, 2, 0}, // 7 0dB -19dB -3dB -33dB .. -55dB + {3, 1, 0, 1}, // 8 0dB -19dB -8dB -27dB .. -54dB + {3, 0, 0, 2}, // 9 0dB -24dB -8dB -21dB .. -53dB + {3, 1, 1, 1}, // 10 0dB -19dB -6dB -27dB .. -52dB + {3, 0, 1, 2}, // 11 0dB -24dB -6dB -21dB .. -51dB + {3, 2, 2, 0}, // 12 0dB -14dB -3dB -33dB .. -50dB + {3, 2, 0, 1}, // 13 0dB -14dB -8dB -27dB .. -49dB + {3, 0, 2, 2}, // 14 0dB -24dB -3dB -21dB .. -48dB + {3, 2, 3, 0}, // 15 0dB -14dB 0dB -33dB .. -47dB + {3, 1, 3, 1}, // 16 0dB -19dB 0dB -27dB .. -46dB + {3, 0, 3, 2}, // 17 0dB -24dB 0dB -21dB .. -45dB + {3, 3, 0, 1}, // 18 0dB -9dB -8dB -27dB .. -44dB + {3, 1, 2, 2}, // 19 0dB -19dB -3dB -21dB .. -43dB + {3, 0, 2, 3}, // 20 0dB -24dB -3dB -15dB .. -42dB + {3, 0, 0, 4}, // 21 0dB -24dB -8dB -9dB .. -41dB + {3, 1, 1, 3}, // 22 0dB -19dB -6dB -15dB .. -40dB + {3, 0, 1, 4}, // 23 0dB -24dB -6dB -9dB .. -39dB + {3, 0, 0, 5}, // 24 0dB -24dB -8dB -6dB .. -38dB + {3, 1, 2, 3}, // 25 0dB -19dB -3dB -15dB .. -37dB + {3, 0, 2, 4}, // 26 0dB -24dB -3dB -9dB .. -36dB + {3, 4, 0, 2}, // 27 0dB -6dB -8dB -21dB .. -35dB + {3, 1, 1, 4}, // 28 0dB -19dB -6dB -9dB .. -34dB + {3, 1, 0, 5}, // 29 0dB -19dB -8dB -6dB .. -33dB + {3, 3, 0, 3}, // 30 0dB -9dB -8dB -15dB .. -32dB + {3, 5, 1, 2}, // 31 0dB -4dB -6dB -21dB .. -31dB + {3, 1, 0, 6}, // 32 0dB -19dB -8dB -3dB .. -30dB + {3, 2, 3, 3}, // 33 0dB -14dB 0dB -15dB .. -29dB + {3, 1, 1, 6}, // 34 0dB -19dB -6dB -3dB .. -28dB + {3, 4, 1, 3}, // 35 0dB -6dB -6dB -15dB .. -27dB + {3, 2, 2, 4}, // 36 0dB -14dB -3dB -9dB .. -26dB + {3, 1, 2, 6}, // 37 0dB -19dB -3dB -3dB .. -25dB + {3, 3, 1, 4}, // 38 0dB -9dB -6dB -9dB .. -24dB + {3, 2, 1, 6}, // 39 0dB -14dB -6dB -3dB .. -23dB + {3, 5, 2, 3}, // 40 0dB -4dB -3dB -15dB .. -22dB + {3, 4, 1, 4}, // 41 0dB -6dB -6dB -9dB .. -21dB + {3, 4, 0, 5}, // 42 0dB -6dB -8dB -6dB .. -20dB + {3, 5, 1, 4}, // 43 0dB -4dB -6dB -9dB .. -19dB + {3, 3, 3, 4}, // 44 0dB -9dB 0dB -9dB .. -18dB + {3, 2, 3, 6}, // 45 0dB -14dB 0dB -3dB .. -17dB original + {3, 5, 1, 5}, // 46 0dB -4dB -6dB -6dB .. -16dB + {3, 3, 3, 5}, // 47 0dB -9dB 0dB -6dB .. -15dB + {3, 2, 3, 7}, // 48 0dB -14dB 0dB 0dB .. -14dB + {3, 5, 1, 6}, // 49 0dB -4dB -6dB -3dB .. -13dB + {3, 4, 2, 6}, // 50 0dB -6dB -3dB -3dB .. -12dB + {3, 5, 2, 6}, // 51 0dB -4dB -3dB -3dB .. -10dB + {3, 4, 3, 6}, // 52 0dB -6dB 0dB -3dB .. -9dB + {3, 5, 2, 7}, // 53 0dB -4dB -3dB 0dB .. -7dB + {3, 4, 3, 7}, // 54 0dB -6dB 0dB 0dB .. -6dB + {3, 5, 3, 7} // 55 0dB -4dB 0dB 0dB .. -4dB + }; + + // table index that holds the original QS front end setting + const unsigned int original_index = 45; + + // current table index we're using + unsigned int am_fix_gain_table_index = original_index; // start with original QS setting + unsigned int am_fix_gain_table_index_prev = 0; + + // moving average RSSI buffer + // helps smooth out any spikey RSSI readings + struct { + unsigned int count; // + unsigned int index; // read/write buffer index + uint16_t samples[4]; // 40ms long buffer (10ms RSSI sample rate) + uint16_t sum; // sum of all samples in the buffer + } moving_avg_rssi = {0}; + + // used to prevent gain hunting, provides a peak hold time delay + unsigned int am_gain_hold_counter = 0; + + // used to correct the RSSI readings after our front end gain adjustments + int16_t rssi_db_gain_diff = 0; + + void AM_fix_reset(void) + { + // reset the moving average filter + memset(&moving_avg_rssi, 0, sizeof(moving_avg_rssi)); + + am_gain_hold_counter = 0; + + rssi_db_gain_diff = 0; + + am_fix_gain_table_index = original_index; // re-start with original QS setting + am_fix_gain_table_index_prev = 0; + } + + void AM_fix_adjust_frontEnd_10ms(void) + { + // we don't play with the front end gains if in FM mode + if (!gRxVfo->IsAM) + return; + + // we're in AM mode + + switch (gCurrentFunction) + { + case FUNCTION_TRANSMIT: + case FUNCTION_BAND_SCOPE: + case FUNCTION_POWER_SAVE: + return; + + // only adjust the front end if in one of these modes + case FUNCTION_FOREGROUND: + case FUNCTION_RECEIVE: + case FUNCTION_MONITOR: + case FUNCTION_INCOMING: + break; + } + + // -87dBm, any higher and the AM demodulator starts to saturate/clip (distort) + const uint16_t desired_rssi = (-87 + 160) * 2; // dBm to ADC sample +/* + // current RX frequency + const uint32_t rx_frequency = gRxVfo->pRX->Frequency; + + // max gains to use +// uint8_t max_lna_short = orig_lna_short; // we're not altering this one + uint8_t max_lna = orig_lna; + uint8_t max_mixer = orig_mixer; + uint8_t max_pga = orig_pga; + + if (rx_frequency <= 22640000) // the RX sensitivity abrutly drops above this frequency + { + max_pga = 7; + } + else + { // allow a bit more adjustment gain +// max_lna = 4; + max_lna = 7; + max_pga = 7; + } +*/ + // sample the current RSSI level + uint16_t rssi = BK4819_GetRSSI(); // 9-bit value (0 .. 511) + //gCurrentRSSI = rssi - (rssi_db_gain_diff * 2); + + // compute the moving average RSSI + if (moving_avg_rssi.count < ARRAY_SIZE(moving_avg_rssi.samples)) + moving_avg_rssi.count++; + moving_avg_rssi.sum -= moving_avg_rssi.samples[moving_avg_rssi.index]; // subtract the oldest sample + moving_avg_rssi.sum += rssi; // add the newest sample + moving_avg_rssi.samples[moving_avg_rssi.index] = rssi; // save the newest sample + if (++moving_avg_rssi.index >= ARRAY_SIZE(moving_avg_rssi.samples)) // + moving_avg_rssi.index = 0; // + rssi = moving_avg_rssi.sum / moving_avg_rssi.count; // compute the average of the past 'n' samples + + if (rssi > desired_rssi) + { // decrease gain + + if (am_fix_gain_table_index > 1) + am_fix_gain_table_index--; + + am_gain_hold_counter = 50; // 500ms + } + + if (am_gain_hold_counter > 0) + am_gain_hold_counter--; + + if (am_gain_hold_counter == 0) + { // hold has been released, we're now free to increase gain + + if (rssi < (desired_rssi - 10)) // 5dB hysterisis (helps prevent gain hunting) + { // increase gain + + if (am_fix_gain_table_index < (ARRAY_SIZE(am_fix_gain_table) - 1)) + am_fix_gain_table_index++; + } + } + + if (am_fix_gain_table_index == am_fix_gain_table_index_prev) + return; // no gain changes + + // apply the new gain settings to the front end + + // remember the new gain settings - for the next time this function is called + const uint16_t lna_short = am_fix_gain_table[am_fix_gain_table_index].lna_short; + const uint16_t lna = am_fix_gain_table[am_fix_gain_table_index].lna; + const uint16_t mixer = am_fix_gain_table[am_fix_gain_table_index].mixer; + const uint16_t pga = am_fix_gain_table[am_fix_gain_table_index].pga; + + BK4819_WriteRegister(BK4819_REG_13, (lna_short << 8) | (lna << 5) | (mixer << 3) | (pga << 0)); + + { // offset the RSSI reading to the rest of the firmware to cancel out the gain adjustments we've made here + static const int16_t orig_dB_gain = lna_short_dB[orig_lna_short & 3u] + lna_dB[orig_lna & 7u] + mixer_dB[orig_mixer & 3u] + pga_dB[orig_pga & 7u]; + const int16_t am_dB_gain = lna_short_dB[lna_short & 3u] + lna_dB[lna & 7u] + mixer_dB[mixer & 3u] + pga_dB[pga & 7u]; + + rssi_db_gain_diff = am_dB_gain - orig_dB_gain; + } + + am_fix_gain_table_index_prev = am_fix_gain_table_index; + + #ifdef ENABLE_AM_FIX_SHOW_DATA + gUpdateDisplay = true; + #endif + } + + #ifdef ENABLE_AM_FIX_SHOW_DATA + void AM_fix_print_data(char *s) + { + if (s == NULL) + return; + + const uint16_t lna_short = am_fix_gain_table[am_fix_gain_table_index].lna_short; + const uint16_t lna = am_fix_gain_table[am_fix_gain_table_index].lna; + const uint16_t mixer = am_fix_gain_table[am_fix_gain_table_index].mixer; + const uint16_t pga = am_fix_gain_table[am_fix_gain_table_index].pga; + + const int16_t am_dB_gain = lna_short_dB[lna_short & 3u] + lna_dB[lna & 7u] + mixer_dB[mixer & 3u] + pga_dB[pga & 7u]; + + #if 0 + sprintf(s, "%2d %3d %2d %3d %3d", + //am_fix_gain_table_index, + lna_short_dB[lna_short & 3u], + lna_dB[lna & 7u], + mixer_dB[mixer & 3u], + pga_dB[pga & 7u], + am_dB_gain); + #else + sprintf(s, "idx %2d gain %3ddB", am_fix_gain_table_index, am_dB_gain); + #endif + } + #endif + +#endif diff --git a/am_fix.h b/am_fix.h new file mode 100644 index 0000000..fb82631 --- /dev/null +++ b/am_fix.h @@ -0,0 +1,45 @@ + +#ifndef AM_FIXH + +#include +#include + +extern const uint8_t orig_lna_short; +extern const uint8_t orig_lna; +extern const uint8_t orig_mixer; +extern const uint8_t orig_pga; + +#ifdef ENABLE_AM_FIX + extern const int8_t lna_short_dB[4]; + extern const int8_t lna_dB[8]; + extern const int8_t mixer_dB[4]; + extern const int8_t pga_dB[8]; + + typedef struct + { + #if 1 + // bitfields take less flash bytes + uint8_t lna_short:2; // 0 ~ 3 + uint8_t lna:3; // 0 ~ 7 + uint8_t mixer:2; // 0 ~ 3 + uint8_t pga:3; // 0 ~ 7 + #else + uint8_t lna_short; // 0 ~ 3 + uint8_t lna; // 0 ~ 7 + uint8_t mixer; // 0 ~ 3 + uint8_t pga; // 0 ~ 7 + #endif + } t_am_fix_gain_table; +// } __attribute__((packed)) t_am_fix_gain_table; + + extern int16_t rssi_db_gain_diff; + + void AM_fix_reset(void); + void AM_fix_adjust_frontEnd_10ms(void); + #ifdef ENABLE_AM_FIX_SHOW_DATA + void AM_fix_print_data(char *s); + #endif + +#endif + +#endif diff --git a/app/app.c b/app/app.c index f837b86..f1ce84f 100644 --- a/app/app.c +++ b/app/app.c @@ -43,6 +43,7 @@ #include "driver/keyboard.h" #include "driver/st7565.h" #include "driver/system.h" +#include "am_fix.h" #include "dtmf.h" #include "external/printf/printf.h" #include "frequencies.h" @@ -62,160 +63,6 @@ #include "ui/status.h" #include "ui/ui.h" -// original QS front end gain settings -static const uint8_t orig_lna_short = 3; // 0dB -static const uint8_t orig_lna = 2; // -14dB -static const uint8_t orig_mixer = 3; // 0dB -static const uint8_t orig_pga = 6; // -3dB - -#ifdef ENABLE_AM_FIX - // stuff to overcome the AM demodulator saturation problem - // - // that is until someone works out how to properly configure the BK chip !! - - // REG_10 AGC gain table - // - // <15:10> ??? - // - // <9:8> = LNA Gain Short - // 3 = 0dB < original value - // 2 = -11dB - // 1 = -16dB - // 0 = -19dB - // - // <7:5> = LNA Gain - // 7 = 0dB - // 6 = -2dB - // 5 = -4dB - // 4 = -6dB - // 3 = -9dB - // 2 = -14dB < original value - // 1 = -19dB - // 0 = -24dB - // - // <4:3> = MIXER Gain - // 3 = 0dB < original value - // 2 = -3dB - // 1 = -6dB - // 0 = -8dB - // - // <2:0> = PGA Gain - // 7 = 0dB - // 6 = -3dB < original value - // 5 = -6dB - // 4 = -9dB - // 3 = -15dB - // 2 = -21dB - // 1 = -27dB - // 0 = -33dB - - // front end register dB values - static const int8_t lna_short_dB[] = {-19, -16, -11, 0}; - static const int8_t lna_dB[] = {-24, -19, -14, -9, -6, -4, -2, 0}; - static const int8_t mixer_dB[] = { -8, -6, -3, 0}; - static const int8_t pga_dB[] = {-33, -27, -21, -15, -9, -6, -3, 0}; - - typedef struct - { - uint8_t lna_short:2; // 0 ~ 3 - uint8_t lna:3; // 0 ~ 7 - uint8_t mixer:2; // 0 ~ 3 - uint8_t pga:3; // 0 ~ 7 - } t_am_fix_gain_table; -// } __attribute__((packed)) t_am_fix_gain_table; - - static const t_am_fix_gain_table am_fix_gain_table[] = - { - {.lna_short = 3, .lna = 2, .mixer = 3, .pga = 6}, // 0 0dB -14dB 0dB -3dB .. -17dB original - - {3, 0, 0, 0}, // 1 0dB -24dB -8dB -33dB .. -65dB - {3, 0, 1, 0}, // 2 0dB -24dB -6dB -33dB .. -63dB - {3, 0, 2, 0}, // 3 0dB -24dB -3dB -33dB .. -60dB - {3, 0, 0, 1}, // 4 0dB -24dB -8dB -27dB .. -59dB - {3, 1, 1, 0}, // 5 0dB -19dB -6dB -33dB .. -58dB - {3, 0, 1, 1}, // 6 0dB -24dB -6dB -27dB .. -57dB - {3, 1, 2, 0}, // 7 0dB -19dB -3dB -33dB .. -55dB - {3, 1, 0, 1}, // 8 0dB -19dB -8dB -27dB .. -54dB - {3, 0, 0, 2}, // 9 0dB -24dB -8dB -21dB .. -53dB - {3, 1, 1, 1}, // 10 0dB -19dB -6dB -27dB .. -52dB - {3, 0, 1, 2}, // 11 0dB -24dB -6dB -21dB .. -51dB - {3, 2, 2, 0}, // 12 0dB -14dB -3dB -33dB .. -50dB - {3, 2, 0, 1}, // 13 0dB -14dB -8dB -27dB .. -49dB - {3, 0, 2, 2}, // 14 0dB -24dB -3dB -21dB .. -48dB - {3, 2, 3, 0}, // 15 0dB -14dB 0dB -33dB .. -47dB - {3, 1, 3, 1}, // 16 0dB -19dB 0dB -27dB .. -46dB - {3, 0, 3, 2}, // 17 0dB -24dB 0dB -21dB .. -45dB - {3, 3, 0, 1}, // 18 0dB -9dB -8dB -27dB .. -44dB - {3, 1, 2, 2}, // 19 0dB -19dB -3dB -21dB .. -43dB - {3, 0, 2, 3}, // 20 0dB -24dB -3dB -15dB .. -42dB - {3, 0, 0, 4}, // 21 0dB -24dB -8dB -9dB .. -41dB - {3, 1, 1, 3}, // 22 0dB -19dB -6dB -15dB .. -40dB - {3, 0, 1, 4}, // 23 0dB -24dB -6dB -9dB .. -39dB - {3, 0, 0, 5}, // 24 0dB -24dB -8dB -6dB .. -38dB - {3, 1, 2, 3}, // 25 0dB -19dB -3dB -15dB .. -37dB - {3, 0, 2, 4}, // 26 0dB -24dB -3dB -9dB .. -36dB - {3, 4, 0, 2}, // 27 0dB -6dB -8dB -21dB .. -35dB - {3, 1, 1, 4}, // 28 0dB -19dB -6dB -9dB .. -34dB - {3, 1, 0, 5}, // 29 0dB -19dB -8dB -6dB .. -33dB - {3, 3, 0, 3}, // 30 0dB -9dB -8dB -15dB .. -32dB - {3, 5, 1, 2}, // 31 0dB -4dB -6dB -21dB .. -31dB - {3, 1, 0, 6}, // 32 0dB -19dB -8dB -3dB .. -30dB - {3, 2, 3, 3}, // 33 0dB -14dB 0dB -15dB .. -29dB - {3, 1, 1, 6}, // 34 0dB -19dB -6dB -3dB .. -28dB - {3, 4, 1, 3}, // 35 0dB -6dB -6dB -15dB .. -27dB - {3, 2, 2, 4}, // 36 0dB -14dB -3dB -9dB .. -26dB - {3, 1, 2, 6}, // 37 0dB -19dB -3dB -3dB .. -25dB - {3, 3, 1, 4}, // 38 0dB -9dB -6dB -9dB .. -24dB - {3, 2, 1, 6}, // 39 0dB -14dB -6dB -3dB .. -23dB - {3, 5, 2, 3}, // 40 0dB -4dB -3dB -15dB .. -22dB - {3, 4, 1, 4}, // 41 0dB -6dB -6dB -9dB .. -21dB - {3, 4, 0, 5}, // 42 0dB -6dB -8dB -6dB .. -20dB - {3, 5, 1, 4}, // 43 0dB -4dB -6dB -9dB .. -19dB - {3, 3, 3, 4}, // 44 0dB -9dB 0dB -9dB .. -18dB - {3, 2, 3, 6}, // 45 0dB -14dB 0dB -3dB .. -17dB original - {3, 5, 1, 5}, // 46 0dB -4dB -6dB -6dB .. -16dB - {3, 3, 3, 5}, // 47 0dB -9dB 0dB -6dB .. -15dB - {3, 2, 3, 7}, // 48 0dB -14dB 0dB 0dB .. -14dB - {3, 5, 1, 6}, // 49 0dB -4dB -6dB -3dB .. -13dB - {3, 4, 2, 6}, // 50 0dB -6dB -3dB -3dB .. -12dB - {3, 5, 2, 6}, // 51 0dB -4dB -3dB -3dB .. -10dB - {3, 4, 3, 6}, // 52 0dB -6dB 0dB -3dB .. -9dB - {3, 5, 2, 7}, // 53 0dB -4dB -3dB 0dB .. -7dB - {3, 4, 3, 7}, // 54 0dB -6dB 0dB 0dB .. -6dB - {3, 5, 3, 7} // 55 0dB -4dB 0dB 0dB .. -4dB - }; - - const unsigned int original_index = 45; - - unsigned int am_fix_gain_table_index = original_index; - unsigned int am_fix_gain_table_index_prev = 0; - - int16_t rssi_db_gain_diff = 0; // holds the compensation value to correct the RSSI reading - - // moving average RSSI buffer - struct { - unsigned int count; - unsigned int index; - uint16_t samples[4]; // 40ms long buffer (10ms RSSI sample rate) - uint16_t sum; // sum of all samples in the buffer - } moving_avg_rssi = {0}; - - unsigned int am_gain_hold_counter = 0; - - void APP_reset_AM_fix(void) - { - // reset the moving average filter - memset(&moving_avg_rssi, 0, sizeof(moving_avg_rssi)); - - am_gain_hold_counter = 0; - - rssi_db_gain_diff = 0; - - am_fix_gain_table_index = original_index; - am_fix_gain_table_index_prev = 0; - } -#endif - static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld); static void APP_CheckForIncoming(void) @@ -569,7 +416,7 @@ void APP_StartListening(FUNCTION_Type_t Function, const bool reset_am_fix) #ifdef ENABLE_AM_FIX if (reset_am_fix) - APP_reset_AM_fix(); // TODO: only reset it when moving channel/frequency + AM_fix_reset(); // TODO: only reset it when moving channel/frequency #endif gVFO_RSSI_bar_level[gEeprom.RX_CHANNEL == 0] = 0; @@ -1468,115 +1315,6 @@ void APP_CheckKeys(void) } } -#ifdef ENABLE_AM_FIX - - void adjust_AM_frontEnd_10ms(void) - { - // we don't play with the front end gains if in FM mode - if (!gRxVfo->IsAM) - return; - - // we're in AM mode - - switch (gCurrentFunction) - { - case FUNCTION_TRANSMIT: - case FUNCTION_BAND_SCOPE: - case FUNCTION_POWER_SAVE: - return; - - // only adjust the front end if in one of these modes - case FUNCTION_FOREGROUND: - case FUNCTION_RECEIVE: - case FUNCTION_MONITOR: - case FUNCTION_INCOMING: - break; - } - - // -87dBm, any higher and the AM demodulator starts to saturate/clip (distort) - const uint16_t desired_rssi = (-87 + 160) * 2; // dBm to ADC sample -/* - // current RX frequency - const uint32_t rx_frequency = gRxVfo->pRX->Frequency; - - // max gains to use -// uint8_t max_lna_short = orig_lna_short; // we're not altering this one - uint8_t max_lna = orig_lna; - uint8_t max_mixer = orig_mixer; - uint8_t max_pga = orig_pga; - - if (rx_frequency <= 22640000) // the RX sensitivity abrutly drops above this frequency - { - max_pga = 7; - } - else - { // allow a bit more adjustment gain -// max_lna = 4; - max_lna = 7; - max_pga = 7; - } -*/ - // sample the current RSSI level - uint16_t rssi = BK4819_GetRSSI(); // 9-bit value (0 .. 511) - //gCurrentRSSI = rssi - (rssi_db_gain_diff * 2); - - // compute the moving average RSSI - if (moving_avg_rssi.count < ARRAY_SIZE(moving_avg_rssi.samples)) - moving_avg_rssi.count++; - moving_avg_rssi.sum -= moving_avg_rssi.samples[moving_avg_rssi.index]; // subtract the oldest sample - moving_avg_rssi.sum += rssi; // add the newest sample - moving_avg_rssi.samples[moving_avg_rssi.index] = rssi; // save the newest sample - if (++moving_avg_rssi.index >= ARRAY_SIZE(moving_avg_rssi.samples)) // - moving_avg_rssi.index = 0; // - rssi = moving_avg_rssi.sum / moving_avg_rssi.count; // compute the average of the past 'n' samples - - if (rssi > desired_rssi) - { // decrease gain - - if (am_fix_gain_table_index > 1) - am_fix_gain_table_index--; - - am_gain_hold_counter = 50; // 500ms - } - - if (am_gain_hold_counter > 0) - am_gain_hold_counter--; - - if (am_gain_hold_counter == 0) - { // hold has been released, we're now free to increase gain - - if (rssi < (desired_rssi - 10)) // 5dB hysterisis (helps prevent gain hunting) - { // increase gain - - if (am_fix_gain_table_index < (ARRAY_SIZE(am_fix_gain_table) - 1)) - am_fix_gain_table_index++; - } - } - - if (am_fix_gain_table_index == am_fix_gain_table_index_prev) - return; // no gain changes - - // apply the new gain settings to the front end - - // remember the new gain settings - for the next time this function is called - const uint16_t lna_short = am_fix_gain_table[am_fix_gain_table_index].lna_short; - const uint16_t lna = am_fix_gain_table[am_fix_gain_table_index].lna; - const uint16_t mixer = am_fix_gain_table[am_fix_gain_table_index].mixer; - const uint16_t pga = am_fix_gain_table[am_fix_gain_table_index].pga; - - BK4819_WriteRegister(BK4819_REG_13, (lna_short << 8) | (lna << 5) | (mixer << 3) | (pga << 0)); - - { // offset the RSSI reading to the rest of the firmware to cancel out the gain adjustments we've made here - static const int16_t orig_dB_gain = lna_short_dB[orig_lna_short & 3u] + lna_dB[orig_lna & 7u] + mixer_dB[orig_mixer & 3u] + pga_dB[orig_pga & 7u]; - const int16_t am_dB_gain = lna_short_dB[lna_short & 3u] + lna_dB[lna & 7u] + mixer_dB[mixer & 3u] + pga_dB[pga & 7u]; - - rssi_db_gain_diff = am_dB_gain - orig_dB_gain; - } - - am_fix_gain_table_index_prev = am_fix_gain_table_index; - } -#endif - void APP_TimeSlice10ms(void) { gFlashLightBlinkCounter++; @@ -1589,7 +1327,7 @@ void APP_TimeSlice10ms(void) #ifdef ENABLE_AM_FIX if (gSetting_AM_fix) - adjust_AM_frontEnd_10ms(); + AM_fix_adjust_frontEnd_10ms(); #endif if (UART_IsCommandAvailable()) diff --git a/firmware b/firmware index 93dc9041360fc53638958677ce9def594c2904eb..328bba6048937da005ebd279a9b6d1ce85e39d7a 100644 GIT binary patch delta 30989 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 RV!%epYRK9ku{lcK{|BG+ENlP( delta 30492 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 diff --git a/firmware.bin b/firmware.bin index 0238e3a10ddc8a0518fb7b3742887bd4dc00814d..2b72c8a09b555c2d9e108ea7dd52277f5a506215 100644 GIT binary patch delta 14215 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 HY3#oN2b%g4 delta 13970 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 n#M(JUHf4EV9PjHIcMK!RK))qXOqcR diff --git a/firmware.packed.bin b/firmware.packed.bin index aca8cafd748d8c781c2707db922d97bc1a1b09a8..694d9dd94422a41fec2d5d153a312f4676438887 100644 GIT binary patch delta 42895 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

8u9f-&CwJ>g?AaM84;; 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 diff --git a/ui/main.c b/ui/main.c index 0847a13..b1aab31 100644 --- a/ui/main.c +++ b/ui/main.c @@ -17,6 +17,9 @@ #include #include "app/dtmf.h" +#ifdef ENABLE_AM_FIX_SHOW_DATA + #include "am_fix.h" +#endif #include "bitmaps.h" #include "board.h" #include "driver/bk4819.h" @@ -487,27 +490,32 @@ void UI_DisplayMain(void) if (center_line_is_free) { // we're free to use the middle empty line for something - #ifdef ENABLE_AUDIO_BAR - UI_DisplayAudioBar(); - - if (!gSetting_mic_bar) + #ifdef ENABLE_AM_FIX_SHOW_DATA + AM_fix_print_data(String); + UI_PrintStringSmall(String, 2, 0, 3); + #else + #ifdef ENABLE_AUDIO_BAR + UI_DisplayAudioBar(); + + if (!gSetting_mic_bar) + #endif + { + if (gSetting_live_DTMF_decoder && gDTMF_ReceivedSaved[0] >= 32) + { // show live DTMF decode + UI_PrintStringSmall(gDTMF_ReceivedSaved, 8, 0, 3); + } + else + if (gChargingWithTypeC) + { // charging .. show the battery state + #ifdef ENABLE_SHOW_CHARGE_LEVEL + const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v : gBatteryVoltageAverage; + const uint16_t percent = (100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v); + sprintf(String, "Charge %u.%02uV %u%%", gBatteryVoltageAverage / 100, gBatteryVoltageAverage % 100, percent); + UI_PrintStringSmall(String, 2, 0, 3); + #endif + } + } #endif - { - if (gSetting_live_DTMF_decoder && gDTMF_ReceivedSaved[0] >= 32) - { // show live DTMF decode - UI_PrintStringSmall(gDTMF_ReceivedSaved, 8, 0, 3); - } - else - if (gChargingWithTypeC) - { // charging .. show the battery state - #ifdef ENABLE_SHOW_CHARGE_LEVEL - const uint16_t volts = (gBatteryVoltageAverage < gMin_bat_v) ? gMin_bat_v : gBatteryVoltageAverage; - const uint16_t percent = (100 * (volts - gMin_bat_v)) / (gMax_bat_v - gMin_bat_v); - sprintf(String, "Charge %u.%02uV %u%%", gBatteryVoltageAverage / 100, gBatteryVoltageAverage % 100, percent); - UI_PrintStringSmall(String, 2, 0, 3); - #endif - } - } } ST7565_BlitFullScreen();