From 810119a9729baa2a81e7c3003a937fb75f79f287 Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Fri, 31 May 2024 12:38:50 +0200 Subject: [PATCH 1/7] Set stepsize to default when using XDRGTK seek function --- src/comms.cpp | 6 ++++++ src/comms.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/comms.cpp b/src/comms.cpp index a05af01..466e171 100644 --- a/src/comms.cpp +++ b/src/comms.cpp @@ -381,6 +381,12 @@ void XDRGTKRoutine() { } byte scanmethod; scanmethod = atol(buff + 1); + + if (band < BAND_GAP) { + stepsize = 0; + ShowStepSize(); + } + if (scanmethod == 1) { DataPrint("C1\n"); direction = false; diff --git a/src/comms.h b/src/comms.h index eef6d0c..187075f 100644 --- a/src/comms.h +++ b/src/comms.h @@ -45,6 +45,7 @@ extern byte iMSEQ; extern byte iMSset; extern byte language; extern byte memorypos; +extern byte stepsize; extern byte subnetclient; extern byte TEF; extern char buff[16]; @@ -135,5 +136,6 @@ extern void updateiMS(); extern void updateEQ(); extern void tftPrint(int8_t offset, const String & text, int16_t x, int16_t y, int color, int smoothcolor, uint8_t fontsize); extern void showAutoSquelch(bool mode); +extern void ShowStepSize(); #endif \ No newline at end of file From c46644c708a18081a83250f989eb90cb89f4526d Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Fri, 31 May 2024 13:43:34 +0200 Subject: [PATCH 2/7] Added set FM scan sensitivity for XDRGTK Also enlarged the range (1-30) --- src/comms.cpp | 27 +++++++++++++++++++-------- src/comms.h | 1 + src/gui.cpp | 8 ++++---- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/comms.cpp b/src/comms.cpp index 466e171..1b53c9b 100644 --- a/src/comms.cpp +++ b/src/comms.cpp @@ -374,6 +374,14 @@ void XDRGTKRoutine() { } break; + case 'B': + byte stmo; + stmo = atol(buff + 1); + DataPrint("B" + String(stmo) + "\n"); + if (stmo == 0) StereoToggle = false; else StereoToggle = true; + doStereoToggle(); + break; + case 'C': if (afscreen || advancedRDS) { BuildDisplay(); @@ -402,14 +410,6 @@ void XDRGTKRoutine() { DataPrint("C0\n"); break; - case 'B': - byte stmo; - stmo = atol(buff + 1); - DataPrint("B" + String(stmo) + "\n"); - if (stmo == 0) StereoToggle = false; else StereoToggle = true; - doStereoToggle(); - break; - case 'D': byte demp; demp = atol(buff + 1); @@ -488,6 +488,17 @@ void XDRGTKRoutine() { } break; + case 'I': + byte fmscansenstemp; + fmscansenstemp = atol(buff + 1); + if (fmscansenstemp > 0 && fmscansenstemp < 31) { + fmscansens = fmscansenstemp; + EEPROM.writeByte(EE_BYTE_FMSCANSENS, fmscansens); + EEPROM.commit(); + } + DataPrint("I" + String(fmscansens) + "\n"); + break; + case 'M': byte XDRband; XDRband = atol(buff + 1); diff --git a/src/comms.h b/src/comms.h index 187075f..a13645b 100644 --- a/src/comms.h +++ b/src/comms.h @@ -41,6 +41,7 @@ extern bool XDRMute; extern byte band; extern byte BWset; extern byte EQset; +extern byte fmscansens; extern byte iMSEQ; extern byte iMSset; extern byte language; diff --git a/src/gui.cpp b/src/gui.cpp index 609b0ba..1f2748c 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -2339,7 +2339,7 @@ void MenuUp() { case ITEM10: fmscansens++; - if (fmscansens > 15) fmscansens = 1; + if (fmscansens > 30) fmscansens = 1; OneBigLineSprite.drawString(String(fmscansens), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -2447,7 +2447,7 @@ void MenuUp() { case ITEM9: amscansens++; - if (amscansens > 15) amscansens = 1; + if (amscansens > 30) amscansens = 1; OneBigLineSprite.drawString(String(amscansens, DEC), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -3201,7 +3201,7 @@ void MenuDown() { case ITEM10: fmscansens--; - if (fmscansens == 0) fmscansens = 15; + if (fmscansens == 0) fmscansens = 30; OneBigLineSprite.drawString(String(fmscansens), 135, 0); OneBigLineSprite.pushSprite(24, 118); @@ -3310,7 +3310,7 @@ void MenuDown() { case ITEM9: amscansens--; - if (amscansens == 0) amscansens = 15; + if (amscansens == 0) amscansens = 30; OneBigLineSprite.drawString(String(amscansens, DEC), 135, 0); OneBigLineSprite.pushSprite(24, 118); From 8b0ff327eacb52fcb67045bda860b89f5060a37e Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Fri, 31 May 2024 16:19:40 +0200 Subject: [PATCH 3/7] Speed up memory switching when SPI speed is set to auto --- TEF6686_ESP32.ino | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 2bdf793..0d3bcd3 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -2275,7 +2275,7 @@ void ModeButtonPress() { menuoption = ITEM1; menupage = INDEX; menuitem = 0; - if (spispeed == 7) tft.setSPISpeed(30); + if (spispeed == 7) tft.setSPISpeed(40); BuildMenu(); menu = true; ScreensaverTimerSet(OFF); @@ -2321,7 +2321,6 @@ void ModeButtonPress() { menuoption = ITEM1; menupage = INDEX; menuitem = 0; - if (spispeed == 7) tft.setSPISpeed(30); BuildMenu(); } } @@ -2780,6 +2779,8 @@ void ShowMemoryPos() { } void DoMemoryPosTune() { + if (spispeed == 7) tft.setSPISpeed(50); + // Process empty stations if (IsStationEmpty()) { memoryposstatus = MEM_DARK; @@ -2825,8 +2826,6 @@ void DoMemoryPosTune() { #endif } - ShowFreq(0); - if (band == BAND_FM || band == BAND_OIRT) { StereoToggle = presets[memorypos].ms; if (!StereoToggle) { @@ -2880,6 +2879,7 @@ void DoMemoryPosTune() { BWtune = true; memtune = true; memreset = true; + ShowFreq(0); } void ShowFreq(int mode) { From 3542892f8996ce510dbfa25306ba23192a8b9755 Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Fri, 31 May 2024 19:25:42 +0200 Subject: [PATCH 4/7] Added command "J" for XDRGTK. J1 start FMDX scan, J0 stop FMDX scan --- TEF6686_ESP32.ino | 7 ++++++- src/comms.cpp | 20 ++++++++++++++------ src/comms.h | 3 +++ 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 0d3bcd3..11aca5e 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -2780,7 +2780,7 @@ void ShowMemoryPos() { void DoMemoryPosTune() { if (spispeed == 7) tft.setSPISpeed(50); - + // Process empty stations if (IsStationEmpty()) { memoryposstatus = MEM_DARK; @@ -4376,6 +4376,7 @@ void cancelDXScan() { ShowTuneMode(); ShowMemoryPos(); + if (XDRGTKUSB || XDRGTKTCP) DataPrint("J0\n"); } void endMenu() { @@ -4473,8 +4474,11 @@ void endMenu() { } void startFMDXScan() { + if (afscreen || advancedRDS) BuildDisplay(); + if (memorypos > scanstop || memorypos < scanstart) memorypos = scanstart; scanmodeold = tunemode; + if (scanmem) { tunemode = TUNE_MEM; if (band != presets[memorypos].band) { @@ -4501,6 +4505,7 @@ void startFMDXScan() { } scantimer = millis(); scandxmode = true; + if (XDRGTKUSB || XDRGTKTCP) DataPrint("J1\n"); } void setAutoSpeedSPI() { diff --git a/src/comms.cpp b/src/comms.cpp index 1b53c9b..4b08704 100644 --- a/src/comms.cpp +++ b/src/comms.cpp @@ -489,14 +489,22 @@ void XDRGTKRoutine() { break; case 'I': - byte fmscansenstemp; + byte fmscansenstemp; fmscansenstemp = atol(buff + 1); if (fmscansenstemp > 0 && fmscansenstemp < 31) { - fmscansens = fmscansenstemp; - EEPROM.writeByte(EE_BYTE_FMSCANSENS, fmscansens); - EEPROM.commit(); - } - DataPrint("I" + String(fmscansens) + "\n"); + fmscansens = fmscansenstemp; + EEPROM.writeByte(EE_BYTE_FMSCANSENS, fmscansens); + EEPROM.commit(); + } + DataPrint("I" + String(fmscansens) + "\n"); + break; + + case 'J': + byte scandxtemp; + scandxtemp = atol(buff + 1); + if (scandxtemp == 0 && scandxmode) cancelDXScan(); + if (scandxtemp == 1 && !scandxmode) startFMDXScan(); + DataPrint("J" + String(scandxtemp) + "\n"); break; case 'M': diff --git a/src/comms.h b/src/comms.h index a13645b..d8e85e9 100644 --- a/src/comms.h +++ b/src/comms.h @@ -22,6 +22,7 @@ extern bool menu; extern bool RDSSPYTCP; extern bool RDSSPYUSB; extern bool RDSstatus; +extern bool scandxmode; extern bool screenmute; extern bool seek; extern bool setupmode; @@ -138,5 +139,7 @@ extern void updateEQ(); extern void tftPrint(int8_t offset, const String & text, int16_t x, int16_t y, int color, int smoothcolor, uint8_t fontsize); extern void showAutoSquelch(bool mode); extern void ShowStepSize(); +extern void startFMDXScan(); +extern void cancelDXScan(); #endif \ No newline at end of file From 826807a1f40e817e04f6cd1afe4117fc3ec5ab24 Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Fri, 31 May 2024 20:24:29 +0200 Subject: [PATCH 5/7] Fixed regression on squelch --- TEF6686_ESP32.ino | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 11aca5e..491536e 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -3298,7 +3298,8 @@ void showAutoSquelch(bool mode) { } void doSquelch() { - if (!XDRGTKUSB && !XDRGTKTCP && usesquelch && !autosquelch) Squelch = analogRead(PIN_POT) / 4 - 100; + if (!XDRGTKUSB && !XDRGTKTCP && usesquelch && !autosquelch) Squelch = map(analogRead(PIN_POT), 0, 4095, -100, 920); + if (unit == 0) SquelchShow = Squelch / 10; if (unit == 1) SquelchShow = ((Squelch * 100) + 10875) / 1000; if (unit == 2) SquelchShow = round((float(Squelch) / 10.0 - 10.0 * log10(75) - 90.0) * 10.0) / 10; From be2ecccebad1fc79cd3e67a59590e14f61dda7a8 Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Fri, 31 May 2024 20:43:31 +0200 Subject: [PATCH 6/7] Update contrast setting --- TEF6686_ESP32.ino | 25 ++++++++++++------------- src/gui.cpp | 4 ++-- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index 491536e..ec05bb2 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -646,7 +646,7 @@ void setup() { if (rotarymode == 0) rotarymode = 1; else rotarymode = 0; EEPROM.writeByte(EE_BYTE_ROTARYMODE, rotarymode); EEPROM.commit(); - analogWrite(CONTRASTPIN, ContrastSet * 2 + 27); + analogWrite(CONTRASTPIN, map(ContrastSet, 0, 100, 15, 255)); tftPrint(0, myLanguage[language][1], 155, 70, ActiveColor, ActiveColorSmooth, 28); tftPrint(0, myLanguage[language][2], 155, 130, ActiveColor, ActiveColorSmooth, 28); while (digitalRead(BWBUTTON) == LOW) delay(50); @@ -662,7 +662,7 @@ void setup() { } EEPROM.writeByte(EE_BYTE_DISPLAYFLIP, displayflip); EEPROM.commit(); - analogWrite(CONTRASTPIN, ContrastSet * 2 + 27); + analogWrite(CONTRASTPIN, map(ContrastSet, 0, 100, 15, 255)); tftPrint(0, myLanguage[language][3], 155, 70, ActiveColor, ActiveColorSmooth, 28); tftPrint(0, myLanguage[language][2], 155, 130, ActiveColor, ActiveColorSmooth, 28); while (digitalRead(MODEBUTTON) == LOW) delay(50); @@ -670,7 +670,7 @@ void setup() { if (digitalRead(BANDBUTTON) == LOW) { analogWrite(SMETERPIN, 511); - analogWrite(CONTRASTPIN, ContrastSet * 2 + 27); + analogWrite(CONTRASTPIN, map(ContrastSet, 0, 100, 15, 255)); tftPrint(0, myLanguage[language][4], 155, 70, ActiveColor, ActiveColorSmooth, 28); tftPrint(0, myLanguage[language][5], 155, 130, ActiveColor, ActiveColorSmooth, 28); while (digitalRead(BANDBUTTON) == LOW) delay(50); @@ -678,7 +678,7 @@ void setup() { } if (digitalRead(ROTARY_BUTTON) == LOW && digitalRead(BWBUTTON) == HIGH) { - analogWrite(CONTRASTPIN, ContrastSet * 2 + 27); + analogWrite(CONTRASTPIN, map(ContrastSet, 0, 100, 15, 255)); if (optenc == 0) { optenc = 1; tftPrint(0, myLanguage[language][6], 155, 70, ActiveColor, ActiveColorSmooth, 28); @@ -693,7 +693,7 @@ void setup() { } if (digitalRead(ROTARY_BUTTON) == LOW && digitalRead(BWBUTTON) == LOW) { - analogWrite(CONTRASTPIN, ContrastSet * 2 + 27); + analogWrite(CONTRASTPIN, map(ContrastSet, 0, 100, 15, 255)); DefaultSettings(hardwaremodel); tftPrint(0, myLanguage[language][66], 155, 70, ActiveColor, ActiveColorSmooth, 28); tftPrint(0, myLanguage[language][2], 155, 130, ActiveColor, ActiveColorSmooth, 28); @@ -713,7 +713,7 @@ void setup() { tft.drawBitmap(130, 124, TEFLogo, 59, 23, ActiveColor); for (int x = 0; x <= ContrastSet; x++) { - analogWrite(CONTRASTPIN, x * 2 + 27); + analogWrite(CONTRASTPIN, map(x, 0, 100, 15, 255)); delay(30); } @@ -1171,19 +1171,18 @@ void WakeToSleep(bool yes) { StoreFrequency(); break; case LCD_BRIGHTNESS_1_PERCENT: - analogWrite(CONTRASTPIN, 1 * 2 + 27); + analogWrite(CONTRASTPIN, map(ContrastSet / 100, 0, 100, 15, 255)); break; case LCD_BRIGHTNESS_A_QUARTER: - analogWrite(CONTRASTPIN, MIN(ContrastSet, 25) * 2 + 27); + analogWrite(CONTRASTPIN, map(ContrastSet / 4, 0, 100, 15, 255)); break; case LCD_BRIGHTNESS_HALF: - analogWrite(CONTRASTPIN, MIN(ContrastSet, 50) * 2 + 27); + analogWrite(CONTRASTPIN, map(ContrastSet / 2, 0, 100, 15, 255)); break; } } else { switch (poweroptions) { case LCD_OFF: - analogWrite(CONTRASTPIN, ContrastSet * 2 + 27); MuteScreen(0); screensavertriggered = false; screensaver_IRQ = OFF; @@ -1192,13 +1191,13 @@ void WakeToSleep(bool yes) { case LCD_BRIGHTNESS_1_PERCENT: case LCD_BRIGHTNESS_A_QUARTER: case LCD_BRIGHTNESS_HALF: - analogWrite(CONTRASTPIN, ContrastSet * 2 + 27); MuteScreen(0); screensavertriggered = false; screensaver_IRQ = OFF; ScreensaverTimerReopen(); break; } + analogWrite(CONTRASTPIN, map(ContrastSet, 0, 100, 15, 255)); } } @@ -4065,7 +4064,7 @@ void SetTunerPatch() { radio.getIdentification(device, hw, sw); TEF = highByte(hw) * 100 + highByte(sw); tft.fillScreen(BackgroundColor); - analogWrite(CONTRASTPIN, ContrastSet * 2 + 27); + analogWrite(CONTRASTPIN, map(ContrastSet, 0, 100, 15, 255)); if (TEF != 102 && TEF != 205) { tftPrint(0, myLanguage[language][35], 150, 78, ActiveColor, ActiveColorSmooth, 28); @@ -4113,7 +4112,7 @@ void MuteScreen(bool setting) { screenmute = false; setupmode = true; tft.writecommand(0x11); - analogWrite(CONTRASTPIN, ContrastSet * 2 + 27); + analogWrite(CONTRASTPIN, map(ContrastSet, 0, 100, 15, 255)); if (band < BAND_GAP) { if (afscreen) { BuildAFScreen(); diff --git a/src/gui.cpp b/src/gui.cpp index 1f2748c..4f9c006 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -2022,7 +2022,7 @@ void MenuUp() { OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); OneBigLineSprite.drawString(String(ContrastSet, DEC), 135, 0); OneBigLineSprite.pushSprite(24, 118); - analogWrite(CONTRASTPIN, ContrastSet * 2 + 27); + analogWrite(CONTRASTPIN, map(ContrastSet, 0, 100, 15, 255)); break; case ITEM3: @@ -2882,7 +2882,7 @@ void MenuDown() { OneBigLineSprite.setTextColor(PrimaryColor, PrimaryColorSmooth, false); OneBigLineSprite.drawString(String(ContrastSet, DEC), 135, 0); OneBigLineSprite.pushSprite(24, 118); - analogWrite(CONTRASTPIN, ContrastSet * 2 + 27); + analogWrite(CONTRASTPIN, map(ContrastSet, 0, 100, 15, 255)); break; case ITEM3: From a1658ee6aeef6db56a38ca7b9ac9cc013497b664 Mon Sep 17 00:00:00 2001 From: Sjef Verhoeven PE5PVB Date: Fri, 31 May 2024 23:16:13 +0200 Subject: [PATCH 7/7] Versioning --- src/language.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/language.h b/src/language.h index a6e7b0d..9a2d9bc 100644 --- a/src/language.h +++ b/src/language.h @@ -1,7 +1,7 @@ #ifndef LANGUAGE_H #define LANGUAGE_H -#define VERSION "v2.10 RC11" +#define VERSION "v2.10 RC12" // [number of languages][number of texts]