From 5397b3ee88b1c63b85207f5d0f1f8c3e48c2c758 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Fri, 6 Oct 2023 07:48:45 +0100 Subject: [PATCH] Fixed key number offset bug added yesterday --- Dockerfile | 12 + Makefile | 2 +- README.md | 8 +- app/action.c | 1 + app/app.c | 6 +- app/dtmf.c | 5 +- app/main.c | 3 + app/spectrum.c | 1193 +++++++++++++++++++++++++++++++ app/spectrum.h | 171 +++++ compile-with-docker.bat | 4 + compile-with-docker.sh | 3 + driver/bk4819.c | 42 +- driver/bk4819.h | 1 + firmware.bin | Bin 53860 -> 53560 bytes firmware.packed.bin | Bin 53878 -> 53578 bytes font.c | 286 +++++++- functions.c | 3 + AM_fix.mp4 => images/AM_fix.mp4 | Bin image1.png => images/image1.png | Bin image2.png => images/image2.png | Bin image3.png => images/image3.png | Bin radio.c | 27 +- radio.h | 3 +- settings.c | 2 +- ui/menu.c | 9 +- ui/menu.h | 2 +- 26 files changed, 1750 insertions(+), 33 deletions(-) create mode 100644 Dockerfile create mode 100644 app/spectrum.c create mode 100644 app/spectrum.h create mode 100644 compile-with-docker.bat create mode 100644 compile-with-docker.sh rename AM_fix.mp4 => images/AM_fix.mp4 (100%) rename image1.png => images/image1.png (100%) rename image2.png => images/image2.png (100%) rename image3.png => images/image3.png (100%) diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..4b6c3f99 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM archlinux:latest +RUN pacman -Syyu base-devel --noconfirm +RUN pacman -Syyu arm-none-eabi-gcc --noconfirm +RUN pacman -Syyu arm-none-eabi-newlib --noconfirm +RUN pacman -Syyu git --noconfirm +RUN pacman -Syyu python-pip --noconfirm +RUN pacman -Syyu python-crcmod --noconfirm +WORKDIR /app +COPY . . + +RUN git submodule update --init --recursive +#RUN make && cp firmware* compiled-firmware/ diff --git a/Makefile b/Makefile index c7e0521a..9e878a28 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ ENABLE_VOICE := 0 ENABLE_VOX := 0 ENABLE_ALARM := 0 ENABLE_TX1750 := 0 -ENABLE_PWRON_PASSWORD := 1 +ENABLE_PWRON_PASSWORD := 0 ENABLE_BIG_FREQ := 0 ENABLE_SMALL_BOLD := 1 ENABLE_KEEP_MEM_NAME := 1 diff --git a/README.md b/README.md index c1051aed..36212d03 100644 --- a/README.md +++ b/README.md @@ -159,13 +159,13 @@ You may obtain a copy of the License at # Example changes/updates

- - - + + +

Video showing the AM fix working .. - + diff --git a/app/action.c b/app/action.c index 3d0ec318..fe07b1d3 100644 --- a/app/action.c +++ b/app/action.c @@ -333,6 +333,7 @@ void ACTION_Handle(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) if (Key == KEY_SIDE1 && !bKeyHeld && bKeyPressed) { gBeepToPlay = BEEP_1KHZ_60MS_OPTIONAL; + if (gDTMF_InputIndex > 0) { gDTMF_InputBox[--gDTMF_InputIndex] = '-'; diff --git a/app/app.c b/app/app.c index c0a284b3..e1006ab6 100644 --- a/app/app.c +++ b/app/app.c @@ -2256,14 +2256,16 @@ static void APP_ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) char Code; if (Key == KEY_SIDE2) - { + { // transmit 1750Hz tone Code = 0xFE; } else { - Code = DTMF_GetCharacter(Key); + Code = DTMF_GetCharacter(Key - KEY_0); if (Code == 0xFF) goto Skip; + + // transmit DTMF keys } if (!bKeyPressed || bKeyHeld) diff --git a/app/dtmf.c b/app/dtmf.c index 83d71d3c..b5135ffd 100644 --- a/app/dtmf.c +++ b/app/dtmf.c @@ -390,8 +390,9 @@ void DTMF_Reply(void) default: case DTMF_REPLY_NONE: - if (gDTMF_CallState != DTMF_CALL_STATE_NONE || - gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_OFF || + if (gDTMF_CallState != DTMF_CALL_STATE_NONE || + gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_APOLLO || + gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_OFF || gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_TX_DOWN) { gDTMF_ReplyState = DTMF_REPLY_NONE; diff --git a/app/main.c b/app/main.c index c7b36593..b6503388 100644 --- a/app/main.c +++ b/app/main.c @@ -34,6 +34,9 @@ #include "settings.h" #include "ui/inputbox.h" #include "ui/ui.h" +#ifdef ENABLE_SPECTRUM +// #include "app/spectrum.h" +#endif void toggle_chan_scanlist(void) { // toggle the selected channels scanlist setting diff --git a/app/spectrum.c b/app/spectrum.c new file mode 100644 index 00000000..9d00b869 --- /dev/null +++ b/app/spectrum.c @@ -0,0 +1,1193 @@ +/* Copyright 2023 fagci + * https://github.com/fagci + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "../app/spectrum.h" + +struct FrequencyBandInfo { + uint32_t lower; + uint32_t upper; + uint32_t middle; +}; + +const struct FrequencyBandInfo FrequencyBandTable[7] = { + [BAND1_50MHz ] = {.lower = 1600000, .middle = 6500000, .upper = 7600000}, + [BAND2_108MHz] = {.lower = 10800000, .middle = 12200000, .upper = 13599990}, + [BAND3_136MHz] = {.lower = 13600000, .middle = 15000000, .upper = 17399990}, + [BAND4_174MHz] = {.lower = 17400000, .middle = 26000000, .upper = 34999990}, + [BAND5_350MHz] = {.lower = 35000000, .middle = 37000000, .upper = 39999990}, + [BAND6_400MHz] = {.lower = 40000000, .middle = 43500000, .upper = 46999990}, + [BAND7_470MHz] = {.lower = 47000000, .middle = 55000000, .upper = 130000000}, +}; + + +#define F_MIN FrequencyBandTable[0].lower +#define F_MAX FrequencyBandTable[ARRAY_SIZE(FrequencyBandTable) - 1].upper + +const uint16_t RSSI_MAX_VALUE = 65535; + +static uint16_t R30, R37, R3D, R43, R47, R48, R7E; +static uint32_t initialFreq; +static char String[32]; + +bool isInitialized = false; +bool isListening = true; +bool monitorMode = false; +bool redrawStatus = true; +bool redrawScreen = false; +bool newScanStart = true; +bool preventKeypress = true; +bool audioState = true; + +State currentState = SPECTRUM, previousState = SPECTRUM; + +PeakInfo peak; +ScanInfo scanInfo; +KeyboardState kbd = {KEY_INVALID, KEY_INVALID, 0}; + +const char *bwOptions[] = {" 25k", "12.5k", "6.25k"}; +const char *modulationTypeOptions[] = {" FM", " AM", "USB"}; +const uint8_t modulationTypeTuneSteps[] = {100, 50, 10}; +const uint8_t modTypeReg47Values[] = {1, 7, 5}; + +SpectrumSettings settings = {stepsCount: STEPS_64, + scanStepIndex: S_STEP_25_0kHz, + frequencyChangeStep: 80000, + scanDelay: 3200, + rssiTriggerLevel: 150, + backlightState: true, + bw: BK4819_FILTER_BW_WIDE, + listenBw: BK4819_FILTER_BW_WIDE, + modulationType: false, + dbMin: -130, + dbMax: -50}; + +uint32_t fMeasure = 0; +uint32_t currentFreq, tempFreq; +uint16_t rssiHistory[128] = {}; + +uint8_t freqInputIndex = 0; +uint8_t freqInputDotIndex = 0; +KEY_Code_t freqInputArr[10]; +char freqInputString[11] = "----------\0"; // XXXX.XXXXX\0 + +uint8_t menuState = 0; +uint16_t listenT = 0; + +RegisterSpec registerSpecs[] = { + {}, + {"LNAs", 0x13, 8, 0b11, 1}, + {"LNA", 0x13, 5, 0b111, 1}, + {"PGA", 0x13, 0, 0b111, 1}, + {"IF", 0x3D, 0, 0xFFFF, 0x2aaa}, + // {"MIX", 0x13, 3, 0b11, 1}, // TODO: hidden +}; + +uint16_t statuslineUpdateTimer = 0; + +static uint8_t DBm2S(int dbm) { + uint8_t i = 0; + dbm *= -1; + for (i = 0; i < ARRAY_SIZE(U8RssiMap); i++) { + if (dbm >= U8RssiMap[i]) { + return i; + } + } + return i; +} + +static int Rssi2DBm(uint16_t rssi) { return (rssi >> 1) - 160; } + +static uint16_t GetRegMenuValue(uint8_t st) { + RegisterSpec s = registerSpecs[st]; + return (BK4819_ReadRegister(s.num) >> s.offset) & s.maxValue; +} + +static void SetRegMenuValue(uint8_t st, bool add) { + uint16_t v = GetRegMenuValue(st); + RegisterSpec s = registerSpecs[st]; + + uint16_t reg = BK4819_ReadRegister(s.num); + if (add && v <= s.maxValue - s.inc) { + v += s.inc; + } else if (!add && v >= 0 + s.inc) { + v -= s.inc; + } + // TODO: use max value for bits count in max value, or reset by additional + // mask in spec + reg &= ~(s.maxValue << s.offset); + BK4819_WriteRegister(s.num, reg | (v << s.offset)); + redrawScreen = true; +} + +// GUI functions + +static void PutPixel(uint8_t x, uint8_t y, bool fill) { + if (fill) { + gFrameBuffer[y >> 3][x] |= 1 << (y & 7); + } else { + gFrameBuffer[y >> 3][x] &= ~(1 << (y & 7)); + } +} +static void PutPixelStatus(uint8_t x, uint8_t y, bool fill) { + if (fill) { + gStatusLine[x] |= 1 << y; + } else { + gStatusLine[x] &= ~(1 << y); + } +} + +static void DrawHLine(int sy, int ey, int nx, bool fill) { + for (int i = sy; i <= ey; i++) { + if (i < 56 && nx < 128) { + PutPixel(nx, i, fill); + } + } +} + +static void GUI_DisplaySmallest(const char *pString, uint8_t x, uint8_t y, + bool statusbar, bool fill) { + uint8_t c; + uint8_t pixels; + const uint8_t *p = (const uint8_t *)pString; + + while ((c = *p++) && c != '\0') { + c -= 0x20; + for (int i = 0; i < 3; ++i) { + pixels = gFont3x5[c][i]; + for (int j = 0; j < 6; ++j) { + if (pixels & 1) { + if (statusbar) + PutPixelStatus(x + i, y + j, fill); + else + PutPixel(x + i, y + j, fill); + } + pixels >>= 1; + } + } + x += 4; + } +} + +// Utility functions + +KEY_Code_t GetKey() { + KEY_Code_t btn = KEYBOARD_Poll(); + if (btn == KEY_INVALID && !GPIO_CheckBit(&GPIOC->DATA, GPIOC_PIN_PTT)) { + btn = KEY_PTT; + } + return btn; +} + +static int clamp(int v, int min, int max) { + return v <= min ? min : (v >= max ? max : v); +} + +static uint8_t my_abs(signed v) { return v > 0 ? v : -v; } + +void SetState(State state) { + previousState = currentState; + currentState = state; + redrawScreen = true; + redrawStatus = true; +} + +// Radio functions + +static void ToggleAFBit(bool on) { + uint16_t reg = BK4819_ReadRegister(BK4819_REG_47); + reg &= ~(1 << 8); + if (on) + reg |= on << 8; + BK4819_WriteRegister(BK4819_REG_47, reg); +} + +static void BackupRegisters() { + R30 = BK4819_ReadRegister(0x30); + R37 = BK4819_ReadRegister(0x37); + R3D = BK4819_ReadRegister(0x3D); + R43 = BK4819_ReadRegister(0x43); + R47 = BK4819_ReadRegister(0x47); + R48 = BK4819_ReadRegister(0x48); + R7E = BK4819_ReadRegister(0x7E); +} + +static void RestoreRegisters() { + BK4819_WriteRegister(0x30, R30); + BK4819_WriteRegister(0x37, R37); + BK4819_WriteRegister(0x3D, R3D); + BK4819_WriteRegister(0x43, R43); + BK4819_WriteRegister(0x47, R47); + BK4819_WriteRegister(0x48, R48); + BK4819_WriteRegister(0x7E, R7E); +} + +static void SetModulation(ModulationType type) { + RestoreRegisters(); + uint16_t reg = BK4819_ReadRegister(BK4819_REG_47); + reg &= ~(0b111 << 8); + BK4819_WriteRegister(BK4819_REG_47, reg | (modTypeReg47Values[type] << 8)); + if (type == MOD_USB) { + BK4819_WriteRegister(0x3D, 0b0010101101000101); + BK4819_WriteRegister(BK4819_REG_37, 0x160F); + BK4819_WriteRegister(0x48, 0b0000001110101000); + } +} + +static void ToggleAFDAC(bool on) { + uint32_t Reg = BK4819_ReadRegister(BK4819_REG_30); + Reg &= ~(1 << 9); + if (on) + Reg |= (1 << 9); + BK4819_WriteRegister(BK4819_REG_30, Reg); +} + +static void SetF(uint32_t f) { + fMeasure = f; + + BK4819_SetFrequency(fMeasure); + BK4819_PickRXFilterPathBasedOnFrequency(fMeasure); + uint16_t reg = BK4819_ReadRegister(BK4819_REG_30); + BK4819_WriteRegister(BK4819_REG_30, 0); + BK4819_WriteRegister(BK4819_REG_30, reg); +} + +// Spectrum related + +bool IsPeakOverLevel() { return peak.rssi >= settings.rssiTriggerLevel; } + +static void ResetPeak() { + peak.t = 0; + peak.rssi = 0; +} + +bool IsCenterMode() { return settings.scanStepIndex < S_STEP_2_5kHz; } +uint8_t GetStepsCount() { return 128 >> settings.stepsCount; } +uint16_t GetScanStep() { return scanStepValues[settings.scanStepIndex]; } +uint32_t GetBW() { return GetStepsCount() * GetScanStep(); } +uint32_t GetFStart() { + return IsCenterMode() ? currentFreq - (GetBW() >> 1) : currentFreq; +} +uint32_t GetFEnd() { return currentFreq + GetBW(); } + +static void TuneToPeak() { + scanInfo.f = peak.f; + scanInfo.rssi = peak.rssi; + scanInfo.i = peak.i; + SetF(scanInfo.f); +} + +static void DeInitSpectrum() { + SetF(initialFreq); + RestoreRegisters(); + isInitialized = false; +} + +uint8_t GetBWRegValueForScan() { + return scanStepBWRegValues[settings.scanStepIndex]; +} + +uint16_t GetRssi() { + // SYSTICK_DelayUs(800); + // testing autodelay based on Glitch value + while ((BK4819_ReadRegister(0x63) & 0b11111111) >= 255) { + SYSTICK_DelayUs(100); + } + return BK4819_GetRSSI(); +} + +static void ToggleAudio(bool on) { + if (on == audioState) { + return; + } + audioState = on; + if (on) { + GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); + } else { + GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); + } +} + +static void ToggleRX(bool on) { + isListening = on; + + BK4819_ToggleGpioOut(BK4819_GPIO0_PIN28_GREEN, on); + + ToggleAudio(on); + ToggleAFDAC(on); + ToggleAFBit(on); + + if (on) { + listenT = 1000; + BK4819_WriteRegister(0x43, listenBWRegValues[settings.listenBw]); + } else { + BK4819_WriteRegister(0x43, GetBWRegValueForScan()); + } +} + +// Scan info + +static void ResetScanStats() { + scanInfo.rssi = 0; + scanInfo.rssiMax = 0; + scanInfo.iPeak = 0; + scanInfo.fPeak = 0; +} + +static void InitScan() { + ResetScanStats(); + scanInfo.i = 0; + scanInfo.f = GetFStart(); + + scanInfo.scanStep = GetScanStep(); + scanInfo.measurementsCount = GetStepsCount(); +} + +static void ResetBlacklist() { + for (int i = 0; i < 128; ++i) { + if (rssiHistory[i] == RSSI_MAX_VALUE) + rssiHistory[i] = 0; + } +} + +static void RelaunchScan() { + InitScan(); + ResetPeak(); + ToggleRX(false); +#ifdef SPECTRUM_AUTOMATIC_SQUELCH + settings.rssiTriggerLevel = RSSI_MAX_VALUE; +#endif + preventKeypress = true; + scanInfo.rssiMin = RSSI_MAX_VALUE; +} + +static void UpdateScanInfo() { + if (scanInfo.rssi > scanInfo.rssiMax) { + scanInfo.rssiMax = scanInfo.rssi; + scanInfo.fPeak = scanInfo.f; + scanInfo.iPeak = scanInfo.i; + } + + if (scanInfo.rssi < scanInfo.rssiMin) { + scanInfo.rssiMin = scanInfo.rssi; + settings.dbMin = Rssi2DBm(scanInfo.rssiMin); + redrawStatus = true; + } +} + +static void AutoTriggerLevel() { + if (settings.rssiTriggerLevel == RSSI_MAX_VALUE) { + settings.rssiTriggerLevel = clamp(scanInfo.rssiMax + 8, 0, RSSI_MAX_VALUE); + } +} + +static void UpdatePeakInfoForce() { + peak.t = 0; + peak.rssi = scanInfo.rssiMax; + peak.f = scanInfo.fPeak; + peak.i = scanInfo.iPeak; + AutoTriggerLevel(); +} + +static void UpdatePeakInfo() { + if (peak.f == 0 || peak.t >= 1024 || peak.rssi < scanInfo.rssiMax) + UpdatePeakInfoForce(); +} + +static void Measure() { rssiHistory[scanInfo.i] = scanInfo.rssi = GetRssi(); } + +// Update things by keypress + +static void UpdateRssiTriggerLevel(bool inc) { + if (inc) + settings.rssiTriggerLevel += 2; + else + settings.rssiTriggerLevel -= 2; + redrawScreen = true; + redrawStatus = true; +} + +static void UpdateDBMax(bool inc) { + if (inc && settings.dbMax < 10) { + settings.dbMax += 1; + } else if (!inc && settings.dbMax > settings.dbMin) { + settings.dbMax -= 1; + } else { + return; + } + redrawStatus = true; + redrawScreen = true; + SYSTEM_DelayMs(20); +} + +static void UpdateScanStep(bool inc) { + if (inc && settings.scanStepIndex < S_STEP_100_0kHz) { + settings.scanStepIndex++; + } else if (!inc && settings.scanStepIndex > 0) { + settings.scanStepIndex--; + } else { + return; + } + settings.frequencyChangeStep = GetBW() >> 1; + RelaunchScan(); + ResetBlacklist(); + redrawScreen = true; +} + +static void UpdateCurrentFreq(bool inc) { + if (inc && currentFreq < F_MAX) { + currentFreq += settings.frequencyChangeStep; + } else if (!inc && currentFreq > F_MIN) { + currentFreq -= settings.frequencyChangeStep; + } else { + return; + } + RelaunchScan(); + ResetBlacklist(); + redrawScreen = true; +} + +static void UpdateCurrentFreqStill(bool inc) { + uint8_t offset = modulationTypeTuneSteps[settings.modulationType]; + uint32_t f = fMeasure; + if (inc && f < F_MAX) { + f += offset; + } else if (!inc && f > F_MIN) { + f -= offset; + } + SetF(f); + redrawScreen = true; +} + +static void UpdateFreqChangeStep(bool inc) { + uint16_t diff = GetScanStep() * 4; + if (inc && settings.frequencyChangeStep < 200000) { + settings.frequencyChangeStep += diff; + } else if (!inc && settings.frequencyChangeStep > 10000) { + settings.frequencyChangeStep -= diff; + } + SYSTEM_DelayMs(100); + redrawScreen = true; +} + +static void ToggleModulation() { + if (settings.modulationType < MOD_USB) { + settings.modulationType++; + } else { + settings.modulationType = MOD_FM; + } + SetModulation(settings.modulationType); + redrawScreen = true; +} + +static void ToggleListeningBW() { + if (settings.listenBw == BK4819_FILTER_BW_NARROWER) { + settings.listenBw = BK4819_FILTER_BW_WIDE; + } else { + settings.listenBw++; + } + redrawScreen = true; +} + +static void ToggleBacklight() { + settings.backlightState = !settings.backlightState; + if (settings.backlightState) { + GPIO_SetBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); + } else { + GPIO_ClearBit(&GPIOB->DATA, GPIOB_PIN_BACKLIGHT); + } +} + +static void ToggleStepsCount() { + if (settings.stepsCount == STEPS_128) { + settings.stepsCount = STEPS_16; + } else { + settings.stepsCount--; + } + settings.frequencyChangeStep = GetBW() >> 1; + RelaunchScan(); + ResetBlacklist(); + redrawScreen = true; +} + +static void ResetFreqInput() { + tempFreq = 0; + for (int i = 0; i < 10; ++i) { + freqInputString[i] = '-'; + } +} + +static void FreqInput() { + freqInputIndex = 0; + freqInputDotIndex = 0; + ResetFreqInput(); + SetState(FREQ_INPUT); +} + +static void UpdateFreqInput(KEY_Code_t key) { + if (key != KEY_EXIT && freqInputIndex >= 10) { + return; + } + if (key == KEY_STAR) { + if (freqInputIndex == 0 || freqInputDotIndex) { + return; + } + freqInputDotIndex = freqInputIndex; + } + if (key == KEY_EXIT) { + freqInputIndex--; + } else { + freqInputArr[freqInputIndex++] = key; + } + + ResetFreqInput(); + + uint8_t dotIndex = + freqInputDotIndex == 0 ? freqInputIndex : freqInputDotIndex; + + KEY_Code_t digitKey; + for (int i = 0; i < 10; ++i) { + if (i < freqInputIndex) { + digitKey = freqInputArr[i]; + freqInputString[i] = digitKey <= KEY_9 ? '0' + digitKey : '.'; + } else { + freqInputString[i] = '-'; + } + } + + uint32_t base = 100000; // 1MHz in BK units + for (int i = dotIndex - 1; i >= 0; --i) { + tempFreq += freqInputArr[i] * base; + base *= 10; + } + + base = 10000; // 0.1MHz in BK units + if (dotIndex < freqInputIndex) { + for (int i = dotIndex + 1; i < freqInputIndex; ++i) { + tempFreq += freqInputArr[i] * base; + base /= 10; + } + } + redrawScreen = true; +} + +static void Blacklist() { + rssiHistory[peak.i] = RSSI_MAX_VALUE; + ResetPeak(); + ToggleRX(false); + newScanStart = true; +} + +// Draw things + +// applied x2 to prevent initial rounding +uint8_t Rssi2PX(uint16_t rssi, uint8_t pxMin, uint8_t pxMax) { + const int DB_MIN = settings.dbMin << 1; + const int DB_MAX = settings.dbMax << 1; + const int DB_RANGE = DB_MAX - DB_MIN; + + const uint8_t PX_RANGE = pxMax - pxMin; + + int dbm = clamp(rssi - (160 << 1), DB_MIN, DB_MAX); + + return ((dbm - DB_MIN) * PX_RANGE + DB_RANGE / 2) / DB_RANGE + pxMin; +} + +uint8_t Rssi2Y(uint16_t rssi) { + return DrawingEndY - Rssi2PX(rssi, 0, DrawingEndY); +} + +static void DrawSpectrum() { + for (uint8_t x = 0; x < 128; ++x) { + uint16_t rssi = rssiHistory[x >> settings.stepsCount]; + if (rssi != RSSI_MAX_VALUE) { + DrawHLine(Rssi2Y(rssi), DrawingEndY, x, true); + } + } +} + +static void DrawStatus() { +#ifdef SPECTRUM_EXTRA_VALUES + sprintf(String, "%d/%d P:%d T:%d", settings.dbMin, settings.dbMax, + Rssi2DBm(peak.rssi), Rssi2DBm(settings.rssiTriggerLevel)); +#else + sprintf(String, "%d/%d", settings.dbMin, settings.dbMax); +#endif + GUI_DisplaySmallest(String, 0, 1, true, true); + + for (int i = 0; i < 4; i++) { + BOARD_ADC_GetBatteryInfo(&gBatteryVoltages[i], &gBatteryCurrent); + } + + uint16_t Voltage; + uint8_t v = 0; + + Voltage = (gBatteryVoltages[0] + gBatteryVoltages[1] + gBatteryVoltages[2] + + gBatteryVoltages[3]) / + 4; + + if (gBatteryCalibration[5] < Voltage) { + v = 5; + } else if (gBatteryCalibration[4] < Voltage) { + v = 5; + } else if (gBatteryCalibration[3] < Voltage) { + v = 4; + } else if (gBatteryCalibration[2] < Voltage) { + v = 3; + } else if (gBatteryCalibration[1] < Voltage) { + v = 2; + } else if (gBatteryCalibration[0] < Voltage) { + v = 1; + } + + gStatusLine[127] = 0b01111110; + for (int i = 126; i >= 116; i--) { + gStatusLine[i] = 0b01000010; + } + v <<= 1; + for (int i = 125; i >= 116; i--) { + if (126 - i <= v) { + gStatusLine[i + 2] = 0b01111110; + } + } + gStatusLine[117] = 0b01111110; + gStatusLine[116] = 0b00011000; +} + +static void DrawF(uint32_t f) { + sprintf(String, "%u.%05u", f / 100000, f % 100000); + UI_PrintStringSmall(String, 8, 127, 0); + + sprintf(String, "%s", modulationTypeOptions[settings.modulationType]); + GUI_DisplaySmallest(String, 116, 1, false, true); + sprintf(String, "%s", bwOptions[settings.listenBw]); + GUI_DisplaySmallest(String, 108, 7, false, true); +} + +static void DrawNums() { + + if (currentState == SPECTRUM) { + sprintf(String, "%ux", GetStepsCount()); + GUI_DisplaySmallest(String, 0, 1, false, true); + sprintf(String, "%u.%02uk", GetScanStep() / 100, GetScanStep() % 100); + GUI_DisplaySmallest(String, 0, 7, false, true); + } + + if (IsCenterMode()) { + sprintf(String, "%u.%05u \xB1%u.%02uk", currentFreq / 100000, + currentFreq % 100000, settings.frequencyChangeStep / 100, + settings.frequencyChangeStep % 100); + GUI_DisplaySmallest(String, 36, 49, false, true); + } else { + sprintf(String, "%u.%05u", GetFStart() / 100000, GetFStart() % 100000); + GUI_DisplaySmallest(String, 0, 49, false, true); + + sprintf(String, "\xB1%u.%02uk", settings.frequencyChangeStep / 100, + settings.frequencyChangeStep % 100); + GUI_DisplaySmallest(String, 48, 49, false, true); + + sprintf(String, "%u.%05u", GetFEnd() / 100000, GetFEnd() % 100000); + GUI_DisplaySmallest(String, 93, 49, false, true); + } +} + +static void DrawRssiTriggerLevel() { + if (settings.rssiTriggerLevel == RSSI_MAX_VALUE || monitorMode) + return; + uint8_t y = Rssi2Y(settings.rssiTriggerLevel); + for (uint8_t x = 0; x < 128; x += 2) { + PutPixel(x, y, true); + } +} + +static void DrawTicks() { + uint32_t f = GetFStart() % 100000; + uint32_t step = GetScanStep(); + for (uint8_t i = 0; i < 128; i += (1 << settings.stepsCount), f += step) { + uint8_t barValue = 0b00000001; + (f % 10000) < step && (barValue |= 0b00000010); + (f % 50000) < step && (barValue |= 0b00000100); + (f % 100000) < step && (barValue |= 0b00011000); + + gFrameBuffer[5][i] |= barValue; + } + + // center + if (IsCenterMode()) { + gFrameBuffer[5][62] = 0x80; + gFrameBuffer[5][63] = 0x80; + gFrameBuffer[5][64] = 0xff; + gFrameBuffer[5][65] = 0x80; + gFrameBuffer[5][66] = 0x80; + } else { + gFrameBuffer[5][0] = 0xff; + gFrameBuffer[5][1] = 0x80; + gFrameBuffer[5][2] = 0x80; + gFrameBuffer[5][3] = 0x80; + gFrameBuffer[5][124] = 0x80; + gFrameBuffer[5][125] = 0x80; + gFrameBuffer[5][126] = 0x80; + gFrameBuffer[5][127] = 0xff; + } +} + +static void DrawArrow(uint8_t x) { + for (signed i = -2; i <= 2; ++i) { + signed v = x + i; + if (!(v & 128)) { + gFrameBuffer[5][v] |= (0b01111000 << my_abs(i)) & 0b01111000; + } + } +} + +static void OnKeyDown(uint8_t key) { + switch (key) { + case KEY_3: + UpdateDBMax(true); + break; + case KEY_9: + UpdateDBMax(false); + break; + case KEY_1: + UpdateScanStep(true); + break; + case KEY_7: + UpdateScanStep(false); + break; + case KEY_2: + UpdateFreqChangeStep(true); + break; + case KEY_8: + UpdateFreqChangeStep(false); + break; + case KEY_UP: + UpdateCurrentFreq(true); + break; + case KEY_DOWN: + UpdateCurrentFreq(false); + break; + case KEY_SIDE1: + Blacklist(); + break; + case KEY_STAR: + UpdateRssiTriggerLevel(true); + break; + case KEY_F: + UpdateRssiTriggerLevel(false); + break; + case KEY_5: + FreqInput(); + break; + case KEY_0: + ToggleModulation(); + break; + case KEY_6: + ToggleListeningBW(); + break; + case KEY_4: + ToggleStepsCount(); + break; + case KEY_SIDE2: + ToggleBacklight(); + break; + case KEY_PTT: + SetState(STILL); + TuneToPeak(); + break; + case KEY_MENU: + break; + case KEY_EXIT: + if (menuState) { + menuState = 0; + break; + } + DeInitSpectrum(); + break; + default: + break; + } +} + +static void OnKeyDownFreqInput(uint8_t key) { + switch (key) { + case KEY_0: + case KEY_1: + case KEY_2: + case KEY_3: + case KEY_4: + case KEY_5: + case KEY_6: + case KEY_7: + case KEY_8: + case KEY_9: + case KEY_STAR: + UpdateFreqInput(key); + break; + case KEY_EXIT: + if (freqInputIndex == 0) { + SetState(previousState); + break; + } + UpdateFreqInput(key); + break; + case KEY_MENU: + if (tempFreq < F_MIN || tempFreq > F_MAX) { + break; + } + SetState(previousState); + currentFreq = tempFreq; + if (currentState == SPECTRUM) { + ResetBlacklist(); + RelaunchScan(); + } else { + SetF(currentFreq); + } + break; + default: + break; + } +} + +void OnKeyDownStill(KEY_Code_t key) { + switch (key) { + case KEY_3: + UpdateDBMax(true); + break; + case KEY_9: + UpdateDBMax(false); + break; + case KEY_UP: + if (menuState) { + SetRegMenuValue(menuState, true); + break; + } + UpdateCurrentFreqStill(true); + break; + case KEY_DOWN: + if (menuState) { + SetRegMenuValue(menuState, false); + break; + } + UpdateCurrentFreqStill(false); + break; + case KEY_STAR: + UpdateRssiTriggerLevel(true); + break; + case KEY_F: + UpdateRssiTriggerLevel(false); + break; + case KEY_5: + FreqInput(); + break; + case KEY_0: + ToggleModulation(); + break; + case KEY_6: + ToggleListeningBW(); + break; + case KEY_SIDE1: + monitorMode = !monitorMode; + break; + case KEY_SIDE2: + ToggleBacklight(); + break; + case KEY_PTT: + // TODO: start transmit + /* BK4819_ToggleGpioOut(BK4819_GPIO0_PIN28_GREEN, false); + BK4819_ToggleGpioOut(BK4819_GPIO1_PIN29_RED, true); */ + break; + case KEY_MENU: + if (menuState == ARRAY_SIZE(registerSpecs) - 1) { + menuState = 1; + } else { + menuState++; + } + redrawScreen = true; + break; + case KEY_EXIT: + if (!menuState) { + SetState(SPECTRUM); + monitorMode = false; + RelaunchScan(); + break; + } + menuState = 0; + break; + default: + break; + } +} + +static void RenderFreqInput() { + UI_PrintString(freqInputString, 2, 127, 0, 8); +} + +static void RenderStatus() { + memset(gStatusLine, 0, sizeof(gStatusLine)); + DrawStatus(); + ST7565_BlitStatusLine(); +} + +static void RenderSpectrum() { + DrawTicks(); + DrawArrow(peak.i << settings.stepsCount); + DrawSpectrum(); + DrawRssiTriggerLevel(); + DrawF(peak.f); + DrawNums(); +} + +static void RenderStill() { + DrawF(fMeasure); + + const uint8_t METER_PAD_LEFT = 3; + + for (int i = 0; i < 121; i++) { + if (i % 10 == 0) { + gFrameBuffer[2][i + METER_PAD_LEFT] = 0b01110000; + } else if (i % 5 == 0) { + gFrameBuffer[2][i + METER_PAD_LEFT] = 0b00110000; + } else { + gFrameBuffer[2][i + METER_PAD_LEFT] = 0b00010000; + } + } + + uint8_t x = Rssi2PX(scanInfo.rssi, 0, 121); + for (int i = 0; i < x; ++i) { + if (i % 5) { + gFrameBuffer[2][i + METER_PAD_LEFT] |= 0b00000111; + } + } + + int dbm = Rssi2DBm(scanInfo.rssi); + uint8_t s = DBm2S(dbm); + sprintf(String, "S: %u", s); + GUI_DisplaySmallest(String, 4, 25, false, true); + sprintf(String, "%d dBm", dbm); + GUI_DisplaySmallest(String, 28, 25, false, true); + + if (!monitorMode) { + uint8_t x = Rssi2PX(settings.rssiTriggerLevel, 0, 121); + gFrameBuffer[2][METER_PAD_LEFT + x] = 0b11111111; + } + + const uint8_t PAD_LEFT = 4; + const uint8_t CELL_WIDTH = 30; + uint8_t offset = PAD_LEFT; + uint8_t row = 4; + + for (int i = 0, idx = 1; idx <= 4; ++i, ++idx) { + if (idx == 5) { + row += 2; + i = 0; + } + offset = PAD_LEFT + i * CELL_WIDTH; + if (menuState == idx) { + for (int j = 0; j < CELL_WIDTH; ++j) { + gFrameBuffer[row][j + offset] = 0xFF; + gFrameBuffer[row + 1][j + offset] = 0xFF; + } + } + sprintf(String, "%s", registerSpecs[idx].name); + GUI_DisplaySmallest(String, offset + 2, row * 8 + 2, false, + menuState != idx); + sprintf(String, "%u", GetRegMenuValue(idx)); + GUI_DisplaySmallest(String, offset + 2, (row + 1) * 8 + 1, false, + menuState != idx); + } +} + +static void Render() { + memset(gFrameBuffer, 0, sizeof(gFrameBuffer)); + + switch (currentState) { + case SPECTRUM: + RenderSpectrum(); + break; + case FREQ_INPUT: + RenderFreqInput(); + break; + case STILL: + RenderStill(); + break; + } + + ST7565_BlitFullScreen(); +} + +bool HandleUserInput() { + kbd.prev = kbd.current; + kbd.current = GetKey(); + + if (kbd.current == KEY_INVALID) { + kbd.counter = 0; + return true; + } + + if (kbd.current == kbd.prev && kbd.counter <= 16) { + kbd.counter++; + SYSTEM_DelayMs(20); + } + + if (kbd.counter == 3 || kbd.counter > 16) { + switch (currentState) { + case SPECTRUM: + OnKeyDown(kbd.current); + break; + case FREQ_INPUT: + OnKeyDownFreqInput(kbd.current); + break; + case STILL: + OnKeyDownStill(kbd.current); + break; + } + } + + return true; +} + +static void Scan() { + if (rssiHistory[scanInfo.i] != RSSI_MAX_VALUE) { + SetF(scanInfo.f); + Measure(); + UpdateScanInfo(); + } +} + +static void NextScanStep() { + ++peak.t; + ++scanInfo.i; + scanInfo.f += scanInfo.scanStep; +} + +static void UpdateScan() { + Scan(); + + if (scanInfo.i < scanInfo.measurementsCount) { + NextScanStep(); + return; + } + + redrawScreen = true; + preventKeypress = false; + + UpdatePeakInfo(); + if (IsPeakOverLevel()) { + ToggleRX(true); + TuneToPeak(); + return; + } + + newScanStart = true; +} + +static void UpdateStill() { + Measure(); + redrawScreen = true; + preventKeypress = false; + + peak.rssi = scanInfo.rssi; + AutoTriggerLevel(); + + ToggleRX(IsPeakOverLevel() || monitorMode); +} + +static void UpdateListening() { + preventKeypress = false; + if (currentState == STILL) { + listenT = 0; + } + if (listenT) { + listenT--; + SYSTEM_DelayMs(1); + return; + } + + if (currentState == SPECTRUM) { + BK4819_WriteRegister(0x43, GetBWRegValueForScan()); + Measure(); + BK4819_WriteRegister(0x43, listenBWRegValues[settings.listenBw]); + } else { + Measure(); + } + + peak.rssi = scanInfo.rssi; + redrawScreen = true; + + if (IsPeakOverLevel() || monitorMode) { + listenT = 1000; + return; + } + + ToggleRX(false); + newScanStart = true; +} + +static void Tick() { + if (!preventKeypress) { + HandleUserInput(); + } + if (newScanStart) { + InitScan(); + newScanStart = false; + } + if (isListening && currentState != FREQ_INPUT) { + UpdateListening(); + } else { + if (currentState == SPECTRUM) { + UpdateScan(); + } else if (currentState == STILL) { + UpdateStill(); + } + } + if (redrawStatus || ++statuslineUpdateTimer > 4096) { + RenderStatus(); + redrawStatus = false; + statuslineUpdateTimer = 0; + } + if (redrawScreen) { + Render(); + redrawScreen = false; + } +} + +void APP_RunSpectrum() { + // TX here coz it always? set to active VFO + currentFreq = initialFreq = + gEeprom.VfoInfo[gEeprom.TX_VFO].pRX->Frequency; + + BackupRegisters(); + + isListening = true; // to turn off RX later + redrawStatus = true; + redrawScreen = false; // we will wait until scan done + newScanStart = true; + + ToggleRX(true), ToggleRX(false); // hack to prevent noise when squelch off + SetModulation(settings.modulationType = MOD_FM); + BK4819_SetFilterBandwidth(settings.listenBw = BK4819_FILTER_BW_WIDE, false); + + RelaunchScan(); + + for (int i = 0; i < 128; ++i) { + rssiHistory[i] = 0; + } + + isInitialized = true; + + while (isInitialized) { + Tick(); + } +} diff --git a/app/spectrum.h b/app/spectrum.h new file mode 100644 index 00000000..61ac358e --- /dev/null +++ b/app/spectrum.h @@ -0,0 +1,171 @@ +/* Copyright 2023 fagci + * https://github.com/fagci + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SPECTRUM_H +#define SPECTRUM_H + +#include "../bitmaps.h" +#include "../board.h" +#include "../bsp/dp32g030/gpio.h" +#include "../driver/bk4819-regs.h" +#include "../driver/bk4819.h" +#include "../driver/gpio.h" +#include "../driver/keyboard.h" +#include "../driver/st7565.h" +#include "../driver/system.h" +#include "../driver/systick.h" +#include "../external/printf/printf.h" +#include "../font.h" +#include "../frequencies.h" +#include "../helper/battery.h" +#include "../misc.h" +#include "../radio.h" +#include "../settings.h" +#include "../ui/helper.h" +#include +#include +#include + +static const uint8_t DrawingEndY = 40; + +static const uint8_t U8RssiMap[] = { + 121, 115, 109, 103, 97, 91, 85, 79, 73, 63, +}; + +static const uint16_t scanStepValues[] = { + 1, 10, 50, 100, + + 250, 500, 625, 833, 1000, 1250, 2500, 10000, +}; + +static const uint16_t scanStepBWRegValues[] = { + // RX RXw TX BW + // 0b0 000 000 001 01 1000 + // 1 + 0b0000000001011000, // 6.25 + // 10 + 0b0000000001011000, // 6.25 + // 50 + 0b0000000001011000, // 6.25 + // 100 + 0b0000000001011000, // 6.25 + // 250 + 0b0000000001011000, // 6.25 + // 500 + 0b0010010001011000, // 6.25 + // 625 + 0b0100100001011000, // 6.25 + // 833 + 0b0110110001001000, // 6.25 + // 1000 + 0b0110110001001000, // 6.25 + // 1250 + 0b0111111100001000, // 6.25 + // 2500 + 0b0011011000101000, // 25 + // 10000 + 0b0011011000101000, // 25 +}; + +static const uint16_t listenBWRegValues[] = { + 0b0011011000101000, // 25 + 0b0111111100001000, // 12.5 + 0b0100100001011000, // 6.25 +}; + +typedef enum State { + SPECTRUM, + FREQ_INPUT, + STILL, +} State; + +typedef enum StepsCount { + STEPS_128, + STEPS_64, + STEPS_32, + STEPS_16, +} StepsCount; + +typedef enum ModulationType { + MOD_FM, + MOD_AM, + MOD_USB, +} ModulationType; + +typedef enum ScanStep { + S_STEP_0_01kHz, + S_STEP_0_1kHz, + S_STEP_0_5kHz, + S_STEP_1_0kHz, + + S_STEP_2_5kHz, + S_STEP_5_0kHz, + S_STEP_6_25kHz, + S_STEP_8_33kHz, + S_STEP_10_0kHz, + S_STEP_12_5kHz, + S_STEP_25_0kHz, + S_STEP_100_0kHz, +} ScanStep; + +typedef struct SpectrumSettings { + uint32_t frequencyChangeStep; + StepsCount stepsCount; + ScanStep scanStepIndex; + uint16_t scanDelay; + uint16_t rssiTriggerLevel; + BK4819_FilterBandwidth_t bw; + BK4819_FilterBandwidth_t listenBw; + int dbMin; + int dbMax; + ModulationType modulationType; + bool backlightState; +} SpectrumSettings; + +typedef struct KeyboardState { + KEY_Code_t current; + KEY_Code_t prev; + uint8_t counter; +} KeyboardState; + +typedef struct ScanInfo { + uint16_t rssi, rssiMin, rssiMax; + uint8_t i, iPeak; + uint32_t f, fPeak; + uint16_t scanStep; + uint8_t measurementsCount; +} ScanInfo; + +typedef struct RegisterSpec { + char *name; + uint8_t num; + uint8_t offset; + uint16_t maxValue; + uint16_t inc; +} RegisterSpec; + +typedef struct PeakInfo { + uint16_t t; + uint16_t rssi; + uint32_t f; + uint8_t i; +} PeakInfo; + +void APP_RunSpectrum(void); + +#endif /* ifndef SPECTRUM_H */ + +// vim: ft=c diff --git a/compile-with-docker.bat b/compile-with-docker.bat new file mode 100644 index 00000000..42adad13 --- /dev/null +++ b/compile-with-docker.bat @@ -0,0 +1,4 @@ +@echo off +docker build -t uvk5 . +docker run -v %CD%\compiled-firmware:/app/compiled-firmware uvk5 /bin/bash -c "cd /app && make clean && make && cp firmware* compiled-firmware/" +pause \ No newline at end of file diff --git a/compile-with-docker.sh b/compile-with-docker.sh new file mode 100644 index 00000000..fb5dd019 --- /dev/null +++ b/compile-with-docker.sh @@ -0,0 +1,3 @@ +#!/bin/sh +docker build -t uvk5 . +docker run -v $(PWD)/compiled-firmware:/app/compiled-firmware uvk5 /bin/bash -c "cd /app && make && cp firmware* compiled-firmware/" \ No newline at end of file diff --git a/driver/bk4819.c b/driver/bk4819.c index d485c964..0d921d73 100644 --- a/driver/bk4819.c +++ b/driver/bk4819.c @@ -1004,6 +1004,42 @@ void BK4819_PlayTone(uint16_t Frequency, bool bTuningGainSwitch) BK4819_WriteRegister(BK4819_REG_71, scale_freq(Frequency)); } +void BK4819_PlaySingleTone(const unsigned int tone_Hz, const unsigned int delay, const unsigned int level, const bool play_speaker) +{ + BK4819_EnterTxMute(); + + if (play_speaker) + { + GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); + BK4819_SetAF(BK4819_AF_BEEP); + } + else + BK4819_SetAF(BK4819_AF_MUTE); + + // level 0 ~ 127 +// BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_ENABLE_TONE1 | (96u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); +// BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_ENABLE_TONE1 | (28u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); + BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_ENABLE_TONE1 | ((level & 0x7f) << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); + + BK4819_EnableTXLink(); + SYSTEM_DelayMs(50); + + BK4819_WriteRegister(BK4819_REG_71, scale_freq(tone_Hz)); + + BK4819_ExitTxMute(); + SYSTEM_DelayMs(delay); + BK4819_EnterTxMute(); + + if (play_speaker) + { + GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); + BK4819_SetAF(BK4819_AF_MUTE); + } + + BK4819_WriteRegister(BK4819_REG_70, 0x0000); + BK4819_WriteRegister(BK4819_REG_30, 0xC1FE); +} + void BK4819_EnterTxMute(void) { BK4819_WriteRegister(BK4819_REG_50, 0xBB20); @@ -1287,7 +1323,7 @@ void BK4819_TransmitTone(bool bLocalLoopback, uint32_t Frequency) // set the tone amplitude // // BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_MASK_ENABLE_TONE1 | (96u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); - BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_MASK_ENABLE_TONE1 | (50u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); + BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_MASK_ENABLE_TONE1 | (28u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); BK4819_WriteRegister(BK4819_REG_71, scale_freq(Frequency)); @@ -1631,7 +1667,9 @@ void BK4819_PlayRoger(void) BK4819_EnterTxMute(); BK4819_SetAF(BK4819_AF_MUTE); - BK4819_WriteRegister(BK4819_REG_70, 0xE000); // 1110 0000 0000 0000 + +// BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_ENABLE_TONE1 | (96u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); + BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_ENABLE_TONE1 | (28u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); BK4819_EnableTXLink(); SYSTEM_DelayMs(50); diff --git a/driver/bk4819.h b/driver/bk4819.h index 352bbf54..736b1714 100644 --- a/driver/bk4819.h +++ b/driver/bk4819.h @@ -102,6 +102,7 @@ void BK4819_DisableVox(void); void BK4819_DisableDTMF(void); void BK4819_EnableDTMF(void); void BK4819_PlayTone(uint16_t Frequency, bool bTuningGainSwitch); +void BK4819_PlaySingleTone(const unsigned int tone_Hz, const unsigned int delay, const unsigned int level, const bool play_speaker); void BK4819_EnterTxMute(void); void BK4819_ExitTxMute(void); void BK4819_Sleep(void); diff --git a/firmware.bin b/firmware.bin index 985866918bec3ec27c3b1936c39f4f90b24f1fe8..01983d508d701be2601e71e434768475279e7890 100644 GIT binary patch delta 36322 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 V<34dyOrM3G*4xd3}Pa^GcBZl{Xk}jjY_X+ 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%0D8K@kn|$3aZ{ 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΅}nEwJ{skQ5f`J=g!a`TT>t7T#f^$@=2=>+jX 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

|M0#DOXDB>?-nl`%UA! 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' -}; +#else + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x0D, 0x00, 0x00}, + {0x00, 0x0F, 0x1F, 0x00, 0x00, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x20, 0xF8, 0xF8, 0x20, 0xF8, 0xF8, 0x20, 0x00, 0x02, 0x0F, 0x0F, 0x02, 0x0F, 0x0F, 0x02}, + {0x70, 0xF8, 0x88, 0x8E, 0x8E, 0x98, 0x10, 0x00, 0x04, 0x0C, 0x08, 0x38, 0x38, 0x0F, 0x07}, + {0x30, 0x30, 0x00, 0x80, 0xC0, 0x60, 0x30, 0x00, 0x0C, 0x06, 0x03, 0x01, 0x00, 0x0C, 0x0C}, + {0x80, 0xD8, 0x7C, 0xE4, 0xBC, 0xD8, 0x40, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x07, 0x0F, 0x08}, + {0x00, 0x10, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0xF0, 0xF8, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0C, 0x08, 0x00}, + {0x00, 0x00, 0x04, 0x0C, 0xF8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0C, 0x07, 0x03, 0x00}, + {0x00, 0x80, 0xA0, 0xE0, 0xC0, 0xE0, 0xA0, 0x80, 0x00, 0x00, 0x02, 0x03, 0x01, 0x03, 0x02}, + {0x00, 0x80, 0x80, 0xE0, 0xE0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1E, 0x0E, 0x00, 0x00}, + {0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x80, 0xC0, 0x60, 0x30, 0x00, 0x0C, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00}, + {0xF8, 0xFC, 0x84, 0xC4, 0x64, 0xFC, 0xF8, 0x00, 0x07, 0x0F, 0x09, 0x08, 0x08, 0x0F, 0x07}, + {0x00, 0x10, 0x18, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x0F, 0x0F, 0x08, 0x08}, + {0x18, 0x1C, 0x04, 0x84, 0xC4, 0x7C, 0x38, 0x00, 0x0C, 0x0E, 0x0B, 0x09, 0x08, 0x08, 0x08}, + {0x18, 0x1C, 0x44, 0x44, 0x44, 0xFC, 0xB8, 0x00, 0x06, 0x0E, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0x80, 0xC0, 0x60, 0x30, 0x18, 0xFC, 0xFC, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0F, 0x0F}, + {0x7C, 0x7C, 0x44, 0x44, 0x44, 0xC4, 0x84, 0x00, 0x04, 0x0C, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0xF0, 0xF8, 0x4C, 0x44, 0x44, 0xC4, 0x80, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0x04, 0x04, 0x04, 0x84, 0xE4, 0x7C, 0x1C, 0x00, 0x00, 0x00, 0x0E, 0x0F, 0x01, 0x00, 0x00}, + {0xB8, 0xFC, 0x44, 0x44, 0x44, 0xFC, 0xB8, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0x78, 0xFC, 0x84, 0x84, 0x84, 0xFC, 0xF8, 0x00, 0x00, 0x08, 0x08, 0x08, 0x0C, 0x07, 0x03}, + {0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0E, 0x06, 0x00, 0x00}, + {0x00, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x08, 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x0C, 0x08}, + {0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02}, + {0x00, 0x08, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x08, 0x0C, 0x06, 0x03, 0x01, 0x00}, + {0x38, 0x3C, 0x04, 0x84, 0xC4, 0x7C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x0D, 0x00, 0x00}, + {0xF0, 0xF8, 0x08, 0xC8, 0xC8, 0xF8, 0xF0, 0x00, 0x07, 0x0F, 0x08, 0x0B, 0x0B, 0x0B, 0x01}, + {0xF8, 0xFC, 0x84, 0x84, 0x84, 0xFC, 0xF8, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F}, + {0xFC, 0xFC, 0x44, 0x44, 0x44, 0xFC, 0xB8, 0x00, 0x0F, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0xF8, 0xFC, 0x04, 0x04, 0x04, 0x1C, 0x18, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0E, 0x06}, + {0xFC, 0xFC, 0x04, 0x04, 0x0C, 0xF8, 0xF0, 0x00, 0x0F, 0x0F, 0x08, 0x08, 0x0C, 0x07, 0x03}, + {0xFC, 0xFC, 0x44, 0x44, 0x44, 0x04, 0x04, 0x00, 0x0F, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08}, + {0xFC, 0xFC, 0x44, 0x44, 0x44, 0x04, 0x04, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0xF8, 0xFC, 0x04, 0x84, 0x84, 0x9C, 0x98, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0xFC, 0xFC, 0x40, 0x40, 0x40, 0xFC, 0xFC, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F}, + {0x00, 0x00, 0x04, 0xFC, 0xFC, 0x04, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x0F, 0x08, 0x00}, + {0x00, 0x00, 0x00, 0x04, 0xFC, 0xFC, 0x04, 0x00, 0x06, 0x0E, 0x08, 0x08, 0x0F, 0x07, 0x00}, + {0xFC, 0xFC, 0xE0, 0x30, 0x18, 0x0C, 0x04, 0x00, 0x0F, 0x0F, 0x01, 0x03, 0x06, 0x0C, 0x08}, + {0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x08, 0x08, 0x08, 0x08, 0x08}, + {0xFC, 0xFC, 0x18, 0x70, 0x18, 0xFC, 0xFC, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F}, + {0xFC, 0xFC, 0x60, 0xC0, 0x80, 0xFC, 0xFC, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x01, 0x0F, 0x0F}, + {0xF8, 0xFC, 0x04, 0x04, 0x04, 0xFC, 0xF8, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0xFC, 0xFC, 0x84, 0x84, 0x84, 0xFC, 0x78, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0xF8, 0xFC, 0x04, 0x04, 0x04, 0xFC, 0xF8, 0x00, 0x07, 0x0F, 0x08, 0x0C, 0x0C, 0x1F, 0x17}, + {0xFC, 0xFC, 0x84, 0x84, 0x84, 0xFC, 0x78, 0x00, 0x0F, 0x0F, 0x01, 0x03, 0x06, 0x0C, 0x08}, + {0x38, 0x7C, 0x44, 0x44, 0x44, 0xCC, 0x88, 0x00, 0x06, 0x0E, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0x00, 0x04, 0x04, 0xFC, 0xFC, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00}, + {0xFC, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0xFC, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0x7C, 0xFC, 0x80, 0x00, 0x80, 0xFC, 0x7C, 0x00, 0x00, 0x03, 0x0F, 0x0C, 0x0F, 0x03, 0x00}, + {0xFC, 0xFC, 0x00, 0x80, 0x00, 0xFC, 0xFC, 0x00, 0x0F, 0x0F, 0x06, 0x03, 0x06, 0x0F, 0x0F}, + {0x0C, 0x3C, 0xF0, 0xC0, 0xF0, 0x3C, 0x0C, 0x00, 0x0C, 0x0F, 0x03, 0x00, 0x03, 0x0F, 0x0C}, + {0x00, 0x3C, 0x7C, 0xC0, 0xC0, 0x7C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00}, + {0x04, 0x04, 0x84, 0xC4, 0x64, 0x3C, 0x1C, 0x00, 0x0E, 0x0F, 0x09, 0x08, 0x08, 0x08, 0x08}, + {0x00, 0x00, 0xFC, 0xFC, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x08, 0x08, 0x00}, + {0x38, 0x70, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0E}, + {0x00, 0x00, 0x04, 0x04, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x0F, 0x0F, 0x00}, + {0x08, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20}, + {0x00, 0x00, 0x03, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0xA0, 0xA0, 0xA0, 0xA0, 0xE0, 0xC0, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x0F}, + {0xFC, 0xFC, 0x20, 0x20, 0x20, 0xE0, 0xC0, 0x00, 0x0F, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0xC0, 0xE0, 0x20, 0x20, 0x20, 0x60, 0x40, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0C, 0x04}, + {0xC0, 0xE0, 0x20, 0x20, 0x20, 0xFC, 0xFC, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x0F}, + {0xC0, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0xC0, 0x00, 0x07, 0x0F, 0x09, 0x09, 0x09, 0x09, 0x01}, + {0x20, 0x20, 0xF8, 0xFC, 0x24, 0x24, 0x04, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00}, + {0xC0, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0xE0, 0x00, 0x07, 0x4F, 0x48, 0x48, 0x48, 0x7F, 0x3F}, + {0xFC, 0xFC, 0x20, 0x20, 0x20, 0xE0, 0xC0, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F}, + {0x00, 0x00, 0x20, 0xEC, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x0F, 0x08, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x20, 0xEC, 0xEC, 0x00, 0x00, 0x30, 0x70, 0x40, 0x40, 0x7F, 0x3F}, + {0xFC, 0xFC, 0x00, 0x80, 0xC0, 0x60, 0x20, 0x00, 0x0F, 0x0F, 0x01, 0x03, 0x06, 0x0C, 0x08}, + {0x00, 0x00, 0x04, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x0F, 0x08, 0x00}, + {0xE0, 0xE0, 0x20, 0xE0, 0x20, 0xE0, 0xC0, 0x00, 0x0F, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x0F}, + {0xE0, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0xC0, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F}, + {0xC0, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0xC0, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0xE0, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0xC0, 0x00, 0x7F, 0x7F, 0x08, 0x08, 0x08, 0x0F, 0x07}, + {0xC0, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0xE0, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x7F, 0x7F}, + {0xE0, 0xE0, 0x60, 0x20, 0x20, 0x20, 0x20, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0xC0, 0xE0, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x08, 0x09, 0x09, 0x09, 0x09, 0x0F, 0x06}, + {0x20, 0x20, 0xFC, 0xFC, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08}, + {0xE0, 0xE0, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x0F}, + {0xE0, 0xE0, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0x00, 0x00, 0x03, 0x0F, 0x0C, 0x0F, 0x03, 0x00}, + {0xE0, 0xE0, 0x00, 0x80, 0x00, 0xE0, 0xE0, 0x00, 0x07, 0x0F, 0x08, 0x0F, 0x08, 0x0F, 0x07}, + {0x60, 0xE0, 0x80, 0x00, 0x80, 0xE0, 0x60, 0x00, 0x0C, 0x0E, 0x03, 0x01, 0x03, 0x0E, 0x0C}, + {0xE0, 0xE0, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0x00, 0x07, 0x4F, 0x48, 0x48, 0x48, 0x7F, 0x3F}, + {0x20, 0x20, 0x20, 0xA0, 0xE0, 0x60, 0x20, 0x00, 0x0C, 0x0E, 0x0B, 0x09, 0x08, 0x08, 0x08}, + {0x00, 0x00, 0x40, 0xF8, 0xBC, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x08, 0x08}, + {0x00, 0x00, 0x00, 0xBC, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00}, + {0x00, 0x04, 0x04, 0xBC, 0xF8, 0x40, 0x00, 0x00, 0x00, 0x08, 0x08, 0x0F, 0x07, 0x00, 0x00}, + {0x08, 0x0C, 0x04, 0x0C, 0x08, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} +#endif +}; #if 0 // original font @@ -132,7 +230,7 @@ const uint8_t gFontBig[95][15] = {0x00, 0xF0, 0xF8, 0xB8, 0x1C, 0x0C, 0x0C, 0x0C, 0x0C, 0x1C, 0xB8, 0xF0, 0xE0, 0x00, 0x11, 0x33, 0x77, 0x67, 0x66, 0x66, 0x66, 0x76, 0x33, 0x3F, 0x1F, 0x07}, {0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00} }; -#else +#elif 0 // VCR font const uint8_t gFontBigDigits[11][26] = { @@ -148,6 +246,22 @@ const uint8_t gFontBig[95][15] = {0x00, 0x00, 0x78, 0xFC, 0xC6, 0x86, 0x86, 0x86, 0x86, 0x86, 0xFC, 0xF8, 0x00, 0x00, 0x00, 0x18, 0x38, 0x71, 0x61, 0x61, 0x61, 0x61, 0x71, 0x3F, 0x1F, 0x00}, {0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00} }; +#else + // Terminus font + const uint8_t gFontBigDigits[11][26] = + { + {0x00, 0x00, 0xFC, 0xFE, 0xFE, 0x06, 0x86, 0xC6, 0xE6, 0xFE, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x7F, 0x67, 0x63, 0x61, 0x60, 0x7F, 0x7F, 0x3F, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x18, 0x1C, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x00, 0x00}, + {0x00, 0x00, 0x1C, 0x1E, 0x1E, 0x06, 0x06, 0x06, 0x86, 0xFE, 0xFE, 0x7C, 0x00, 0x00, 0x00, 0x60, 0x70, 0x78, 0x7C, 0x6E, 0x67, 0x63, 0x61, 0x60, 0x60, 0x00}, + {0x00, 0x00, 0x0C, 0x0E, 0x0E, 0x86, 0x86, 0x86, 0x86, 0xFE, 0xFE, 0x7C, 0x00, 0x00, 0x00, 0x30, 0x70, 0x70, 0x61, 0x61, 0x61, 0x61, 0x7F, 0x7F, 0x3E, 0x00}, + {0x00, 0x00, 0x80, 0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x0C, 0x0C, 0x0C, 0x0C, 0x7F, 0x7F, 0x7F, 0x00}, + {0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x86, 0x00, 0x00, 0x00, 0x30, 0x70, 0x70, 0x60, 0x60, 0x60, 0x60, 0x7F, 0x7F, 0x3F, 0x00}, + {0x00, 0x00, 0xF8, 0xFC, 0xFE, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0x80, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x7F, 0x60, 0x60, 0x60, 0x60, 0x7F, 0x7F, 0x3F, 0x00}, + {0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x06, 0x06, 0x86, 0xE6, 0xFE, 0x7E, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7F, 0x7F, 0x03, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x7C, 0xFE, 0xFE, 0x86, 0x86, 0x86, 0x86, 0xFE, 0xFE, 0x7C, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x7F, 0x61, 0x61, 0x61, 0x61, 0x7F, 0x7F, 0x3F, 0x00}, + {0x00, 0x00, 0xFC, 0xFE, 0xFE, 0x06, 0x06, 0x06, 0x06, 0xFE, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x01, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x7F, 0x3F, 0x1F, 0x00}, + {0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00} + }; #endif /* const uint8_t gFontSmallDigits[11][7] = @@ -363,4 +477,170 @@ const uint8_t gFontSmall[95][6] = {0x00, 0x41, 0x77, 0x3E, 0x08, 0x00}, {0x0C, 0x06, 0x0C, 0x18, 0x0C, 0x00} }; -#endif \ No newline at end of file +#endif + +#ifdef ENABLE_SPECTRUM + const uint8_t gFont3x5[160][3] = + { + {0x00, 0x00, 0x00}, // 32 - space + {0x00, 0x17, 0x00}, // 33 - exclam + {0x03, 0x00, 0x03}, // 34 - quotedbl + {0x1f, 0x0a, 0x1f}, // 35 - numbersign + {0x0a, 0x1f, 0x05}, // 36 - dollar + {0x09, 0x04, 0x12}, // 37 - percent + {0x0f, 0x17, 0x1c}, // 38 - ampersand + {0x00, 0x03, 0x00}, // 39 - quotesingle + {0x00, 0x0e, 0x11}, // 40 - parenleft + {0x11, 0x0e, 0x00}, // 41 - parenright + {0x05, 0x02, 0x05}, // 42 - asterisk + {0x04, 0x0e, 0x04}, // 43 - plus + {0x10, 0x08, 0x00}, // 44 - comma + {0x04, 0x04, 0x04}, // 45 - hyphen + {0x00, 0x10, 0x00}, // 46 - period + {0x18, 0x04, 0x03}, // 47 - slash + {0x1e, 0x11, 0x0f}, // 48 - zero + {0x02, 0x1f, 0x00}, // 49 - one + {0x19, 0x15, 0x12}, // 50 - two + {0x11, 0x15, 0x0a}, // 51 - three + {0x07, 0x04, 0x1f}, // 52 - four + {0x17, 0x15, 0x09}, // 53 - five + {0x1e, 0x15, 0x1d}, // 54 - six + {0x19, 0x05, 0x03}, // 55 - seven + {0x1f, 0x15, 0x1f}, // 56 - eight + {0x17, 0x15, 0x0f}, // 57 - nine + {0x00, 0x0a, 0x00}, // 58 - colon + {0x10, 0x0a, 0x00}, // 59 - semicolon + {0x04, 0x0a, 0x11}, // 60 - less + {0x0a, 0x0a, 0x0a}, // 61 - equal + {0x11, 0x0a, 0x04}, // 62 - greater + {0x01, 0x15, 0x03}, // 63 - question + {0x0e, 0x15, 0x16}, // 64 - at + {0x1e, 0x05, 0x1e}, // 65 - A + {0x1f, 0x15, 0x0a}, // 66 - B + {0x0e, 0x11, 0x11}, // 67 - C + {0x1f, 0x11, 0x0e}, // 68 - D + {0x1f, 0x15, 0x15}, // 69 - E + {0x1f, 0x05, 0x05}, // 70 - F + {0x0e, 0x15, 0x1d}, // 71 - G + {0x1f, 0x04, 0x1f}, // 72 - H + {0x11, 0x1f, 0x11}, // 73 - I + {0x08, 0x10, 0x0f}, // 74 - J + {0x1f, 0x04, 0x1b}, // 75 - K + {0x1f, 0x10, 0x10}, // 76 - L + {0x1f, 0x06, 0x1f}, // 77 - M + {0x1f, 0x0e, 0x1f}, // 78 - N + {0x0e, 0x11, 0x0e}, // 79 - O + {0x1f, 0x05, 0x02}, // 80 - P + {0x0e, 0x19, 0x1e}, // 81 - Q + {0x1f, 0x0d, 0x16}, // 82 - R + {0x12, 0x15, 0x09}, // 83 - S + {0x01, 0x1f, 0x01}, // 84 - T + {0x0f, 0x10, 0x1f}, // 85 - U + {0x07, 0x18, 0x07}, // 86 - V + {0x1f, 0x0c, 0x1f}, // 87 - W + {0x1b, 0x04, 0x1b}, // 88 - X + {0x03, 0x1c, 0x03}, // 89 - Y + {0x19, 0x15, 0x13}, // 90 - Z + {0x1f, 0x11, 0x11}, // 91 - bracketleft + {0x02, 0x04, 0x08}, // 92 - backslash + {0x11, 0x11, 0x1f}, // 93 - bracketright + {0x02, 0x01, 0x02}, // 94 - asciicircum + {0x10, 0x10, 0x10}, // 95 - underscore + {0x01, 0x02, 0x00}, // 96 - grave + {0x1a, 0x16, 0x1c}, // 97 - a + {0x1f, 0x12, 0x0c}, // 98 - b + {0x0c, 0x12, 0x12}, // 99 - c + {0x0c, 0x12, 0x1f}, // 100 - d + {0x0c, 0x1a, 0x16}, // 101 - e + {0x04, 0x1e, 0x05}, // 102 - f + {0x0c, 0x2a, 0x1e}, // 103 - g + {0x1f, 0x02, 0x1c}, // 104 - h + {0x00, 0x1d, 0x00}, // 105 - i + {0x10, 0x20, 0x1d}, // 106 - j + {0x1f, 0x0c, 0x12}, // 107 - k + {0x11, 0x1f, 0x10}, // 108 - l + {0x1e, 0x0e, 0x1e}, // 109 - m + {0x1e, 0x02, 0x1c}, // 110 - n + {0x0c, 0x12, 0x0c}, // 111 - o + {0x3e, 0x12, 0x0c}, // 112 - p + {0x0c, 0x12, 0x3e}, // 113 - q + {0x1c, 0x02, 0x02}, // 114 - r + {0x14, 0x1e, 0x0a}, // 115 - s + {0x02, 0x1f, 0x12}, // 116 - t + {0x0e, 0x10, 0x1e}, // 117 - u + {0x0e, 0x18, 0x0e}, // 118 - v + {0x1e, 0x1c, 0x1e}, // 119 - w + {0x12, 0x0c, 0x12}, // 120 - x + {0x06, 0x28, 0x1e}, // 121 - y + {0x1a, 0x1e, 0x16}, // 122 - z + {0x04, 0x1b, 0x11}, // 123 - braceleft + {0x00, 0x1b, 0x00}, // 124 - bar + {0x11, 0x1b, 0x04}, // 125 - braceright + {0x02, 0x03, 0x01}, // 126 - asciitilde + {0x00, 0x00, 0x00}, // 127 - empty + {0x00, 0x00, 0x00}, // 128 - empty + {0x00, 0x00, 0x00}, // 129 - empty + {0x00, 0x00, 0x00}, // 130 - empty + {0x00, 0x00, 0x00}, // 131 - empty + {0x00, 0x00, 0x00}, // 132 - empty + {0x00, 0x00, 0x00}, // 133 - empty + {0x00, 0x00, 0x00}, // 134 - empty + {0x00, 0x00, 0x00}, // 135 - empty + {0x00, 0x00, 0x00}, // 136 - empty + {0x00, 0x00, 0x00}, // 137 - empty + {0x00, 0x00, 0x00}, // 138 - empty + {0x00, 0x00, 0x00}, // 139 - empty + {0x00, 0x00, 0x00}, // 140 - empty + {0x00, 0x00, 0x00}, // 141 - empty + {0x00, 0x00, 0x00}, // 142 - empty + {0x00, 0x00, 0x00}, // 143 - empty + {0x00, 0x00, 0x00}, // 144 - empty + {0x00, 0x00, 0x00}, // 145 - empty + {0x00, 0x00, 0x00}, // 146 - empty + {0x00, 0x00, 0x00}, // 147 - empty + {0x00, 0x00, 0x00}, // 148 - empty + {0x00, 0x00, 0x00}, // 149 - empty + {0x00, 0x00, 0x00}, // 150 - empty + {0x00, 0x00, 0x00}, // 151 - empty + {0x00, 0x00, 0x00}, // 152 - empty + {0x00, 0x00, 0x00}, // 153 - empty + {0x00, 0x00, 0x00}, // 154 - empty + {0x00, 0x00, 0x00}, // 155 - empty + {0x00, 0x00, 0x00}, // 156 - empty + {0x00, 0x00, 0x00}, // 157 - empty + {0x00, 0x00, 0x00}, // 158 - empty + {0x00, 0x00, 0x00}, // 159 - empty + {0x00, 0x00, 0x00}, // 160 - empty + {0x00, 0x1d, 0x00}, // 161 - exclamdown + {0x0e, 0x1b, 0x0a}, // 162 - cent + {0x14, 0x1f, 0x15}, // 163 - sterling + {0x15, 0x0e, 0x15}, // 164 - currency + {0x0b, 0x1c, 0x0b}, // 165 - yen + {0x00, 0x1b, 0x00}, // 166 - brokenbar + {0x14, 0x1b, 0x05}, // 167 - section + {0x01, 0x00, 0x01}, // 168 - dieresis + {0x02, 0x05, 0x05}, // 169 - copyright + {0x16, 0x15, 0x17}, // 170 - ordfeminine + {0x02, 0x05, 0x00}, // 171 - guillemotleft + {0x02, 0x02, 0x06}, // 172 - logicalnot + {0x04, 0x04, 0x00}, // 173 - softhyphen + {0x07, 0x03, 0x04}, // 174 - registered + {0x01, 0x01, 0x01}, // 175 - macron + {0x02, 0x05, 0x02}, // 176 - degree + {0x12, 0x17, 0x12}, // 177 - plusminus + {0x01, 0x07, 0x04}, // 178 - twosuperior + {0x05, 0x07, 0x07}, // 179 - threesuperior + {0x00, 0x02, 0x01}, // 180 - acute + {0x1f, 0x08, 0x07}, // 181 - mu + {0x02, 0x1d, 0x1f}, // 182 - paragraph + {0x0e, 0x0e, 0x0e}, // 183 - periodcentered + {0x10, 0x14, 0x08}, // 184 - cedilla + {0x00, 0x07, 0x00}, // 185 - onesuperior + {0x12, 0x15, 0x12}, // 186 - ordmasculine + {0x00, 0x05, 0x02}, // 187 - guillemotright + {0x03, 0x08, 0x18}, // 188 - onequarter + {0x0b, 0x18, 0x10}, // 189 - onehalf + {0x03, 0x0b, 0x18}, // 190 - threequarters + {0x18, 0x15, 0x10}, // 191 - questiondown + }; +#endif diff --git a/functions.c b/functions.c index a302208c..cd02ab1d 100644 --- a/functions.c +++ b/functions.c @@ -204,6 +204,9 @@ void FUNCTION_Select(FUNCTION_Type_t Function) DTMF_Reply(); + if (gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_APOLLO) + BK4819_PlaySingleTone(2525, 250, 0, gEeprom.DTMF_SIDE_TONE); + #if defined(ENABLE_ALARM) || defined(ENABLE_TX1750) if (gAlarmState != ALARM_STATE_OFF) { diff --git a/AM_fix.mp4 b/images/AM_fix.mp4 similarity index 100% rename from AM_fix.mp4 rename to images/AM_fix.mp4 diff --git a/image1.png b/images/image1.png similarity index 100% rename from image1.png rename to images/image1.png diff --git a/image2.png b/images/image2.png similarity index 100% rename from image2.png rename to images/image2.png diff --git a/image3.png b/images/image3.png similarity index 100% rename from image3.png rename to images/image3.png diff --git a/radio.c b/radio.c index 98b79074..38dd1b56 100644 --- a/radio.c +++ b/radio.c @@ -332,12 +332,12 @@ void RADIO_ConfigureChannel(const unsigned int VFO, const unsigned int configure if (Data[5] == 0xFF) { gEeprom.VfoInfo[VFO].DTMF_DECODING_ENABLE = false; - gEeprom.VfoInfo[VFO].DTMF_PTT_ID_TX_MODE = 0; + gEeprom.VfoInfo[VFO].DTMF_PTT_ID_TX_MODE = PTT_ID_OFF; } else { - gEeprom.VfoInfo[VFO].DTMF_DECODING_ENABLE = !!((Data[5] >> 0) & 1u); - gEeprom.VfoInfo[VFO].DTMF_PTT_ID_TX_MODE = ((Data[5] >> 1) & 3u); + gEeprom.VfoInfo[VFO].DTMF_DECODING_ENABLE = ((Data[5] >> 0) & 1u) ? true : false; + gEeprom.VfoInfo[VFO].DTMF_PTT_ID_TX_MODE = ((Data[5] >> 1) & 7u); } // *************** @@ -1080,8 +1080,12 @@ void RADIO_SendEndOfTransmission(void) if (gEeprom.ROGER == ROGER_MODE_MDC) BK4819_PlayRogerMDC(); + if (gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_APOLLO) + BK4819_PlaySingleTone(2475, 250, 28, gEeprom.DTMF_SIDE_TONE); + if (gDTMF_CallState == DTMF_CALL_STATE_NONE && - (gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_TX_DOWN || gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_BOTH)) + (gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_TX_DOWN || + gCurrentVfo->DTMF_PTT_ID_TX_MODE == PTT_ID_BOTH)) { // end-of-tx if (gEeprom.DTMF_SIDE_TONE) { @@ -1093,15 +1097,14 @@ void RADIO_SendEndOfTransmission(void) BK4819_EnterDTMF_TX(gEeprom.DTMF_SIDE_TONE); BK4819_PlayDTMFString( - gEeprom.DTMF_DOWN_CODE, - 0, - gEeprom.DTMF_FIRST_CODE_PERSIST_TIME, - gEeprom.DTMF_HASH_CODE_PERSIST_TIME, - gEeprom.DTMF_CODE_PERSIST_TIME, - gEeprom.DTMF_CODE_INTERVAL_TIME); - + gEeprom.DTMF_DOWN_CODE, + 0, + gEeprom.DTMF_FIRST_CODE_PERSIST_TIME, + gEeprom.DTMF_HASH_CODE_PERSIST_TIME, + gEeprom.DTMF_CODE_PERSIST_TIME, + gEeprom.DTMF_CODE_INTERVAL_TIME); + GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_AUDIO_PATH); - gEnableSpeaker = false; } diff --git a/radio.h b/radio.h index 66f1536d..e1d03dae 100644 --- a/radio.h +++ b/radio.h @@ -44,7 +44,8 @@ enum PTT_ID_t { PTT_ID_OFF = 0, // OFF PTT_ID_TX_UP, // BEGIN OF TX PTT_ID_TX_DOWN, // END OF TX - PTT_ID_BOTH // BOTH + PTT_ID_BOTH, // BOTH + PTT_ID_APOLLO // Apolo quindar tones }; typedef enum PTT_ID_t PTT_ID_t; diff --git a/settings.c b/settings.c index b7821f86..1910c550 100644 --- a/settings.c +++ b/settings.c @@ -219,7 +219,7 @@ void SETTINGS_SaveChannel(uint8_t Channel, uint8_t VFO, const VFO_Info_t *pVFO, | (pVFO->OUTPUT_POWER << 2) | (pVFO->CHANNEL_BANDWIDTH << 1) | (pVFO->FrequencyReverse << 0); - State[5] = (pVFO->DTMF_PTT_ID_TX_MODE << 1) | (pVFO->DTMF_DECODING_ENABLE << 0); + State[5] = ((pVFO->DTMF_PTT_ID_TX_MODE & 7u) << 1) | ((pVFO->DTMF_DECODING_ENABLE & 1u) << 0); State[6] = pVFO->STEP_SETTING; State[7] = pVFO->SCRAMBLING_TYPE; EEPROM_WriteBuffer(OffsetVFO + 8, State); diff --git a/ui/menu.c b/ui/menu.c index 26b3cc09..03984b7c 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -240,12 +240,13 @@ const char gSubMenu_D_RSP[4][11] = "BOTH" }; -const char gSubMenu_PTT_ID[4][7] = +const char gSubMenu_PTT_ID[5][15] = { "OFF", - "KEY UP", - "KEY DN", - "BOTH" + "KEY\nUP", + "KEY\nDOWN", + "KEY\nUP+DOWN", + "APOLLO\nQUINDAR" }; const char gSubMenu_PONMSG[4][8] = diff --git a/ui/menu.h b/ui/menu.h index d4d96fa6..157b3d20 100644 --- a/ui/menu.h +++ b/ui/menu.h @@ -139,7 +139,7 @@ extern const char gSubMenu_MDF[4][15]; extern const char gSubMenu_AL_MOD[2][5]; #endif extern const char gSubMenu_D_RSP[4][11]; -extern const char gSubMenu_PTT_ID[4][7]; +extern const char gSubMenu_PTT_ID[5][15]; extern const char gSubMenu_PONMSG[4][8]; extern const char gSubMenu_ROGER[3][9]; extern const char gSubMenu_RESET[2][4];