From 766dffccc61c7626edbac887f6397d173af894b3 Mon Sep 17 00:00:00 2001 From: KubaPro010 Date: Sun, 18 Jan 2026 14:32:42 +0100 Subject: [PATCH] faster wake up --- include/Tuner_Interface.h | 4 -- include/comms.h | 2 +- include/constants.h | 2 +- include/globals.h | 3 +- include/nonvolatile.h | 1 + platformio.ini | 3 ++ src/TEF6686.cpp | 3 ++ src/Tuner_Interface.cpp | 6 --- src/globals.cpp | 3 +- src/gui.cpp | 4 +- src/logbook.cpp | 2 - src/main.cpp | 101 +++++++++++++++++++++----------------- src/nonvolatile.cpp | 28 +++++------ src/rtc.cpp | 2 +- 14 files changed, 82 insertions(+), 82 deletions(-) diff --git a/include/Tuner_Interface.h b/include/Tuner_Interface.h index 816dbd2..595c5da 100644 --- a/include/Tuner_Interface.h +++ b/include/Tuner_Interface.h @@ -1,10 +1,6 @@ #pragma once -#ifndef DEEPELEC_DP_66X #define FORBIDDEN_TUNER(x) ((x) != 102 && (x) != 205) -#else -#define FORBIDDEN_TUNER(x) ((x) != 102) -#endif void Tuner_Patch(byte TEF); bool Tuner_WriteBuffer(unsigned char *buf, uint16_t len); diff --git a/include/comms.h b/include/comms.h index 061a326..49bd385 100644 --- a/include/comms.h +++ b/include/comms.h @@ -1,6 +1,7 @@ #pragma once #include "globals.h" +#include "nonvolatile.h" #include void Communication(); @@ -35,4 +36,3 @@ extern void TuneUp(); extern void TuneDown(); extern void ShowTuneMode(); extern const char* textUI(uint16_t number); -extern void saveData(); \ No newline at end of file diff --git a/include/constants.h b/include/constants.h index c0b5287..82b3e0b 100644 --- a/include/constants.h +++ b/include/constants.h @@ -315,7 +315,7 @@ #define EE_BYTE_AMSCANSENS 2200 #define EE_BYTE_FMSCANSENS 2201 #define EE_BYTE_FREQFONT 2202 -#define EE_BYTE_SKIN 2203 +// Empty space, this was not used #define EE_BYTE_XDRGTKMUTE 2204 #define EE_BYTE_FMAGC 2205 #define EE_BYTE_AMAGC 2206 diff --git a/include/globals.h b/include/globals.h index ef26f3f..09876f5 100644 --- a/include/globals.h +++ b/include/globals.h @@ -96,7 +96,6 @@ extern byte charwidth; extern byte chipmodel; extern byte hardwaremodel; extern byte ContrastSet; -extern byte CurrentSkin; extern byte CurrentTheme; extern byte displayflip; extern byte eonptyold[20]; @@ -172,7 +171,7 @@ extern int batupdatetimer; extern int berPercentold; extern int BWAutoColor; extern int BWAutoColorSmooth; -extern int BWOld; +extern uint16_t BWOld; extern int bwupdatetimer; extern int DisplayedSegments; extern int ForceMono; diff --git a/include/nonvolatile.h b/include/nonvolatile.h index 1bc9c25..5fb7b2e 100644 --- a/include/nonvolatile.h +++ b/include/nonvolatile.h @@ -1,3 +1,4 @@ +#pragma once #include #include "globals.h" #include "logbook.h" diff --git a/platformio.ini b/platformio.ini index 489d00d..cf8696a 100644 --- a/platformio.ini +++ b/platformio.ini @@ -20,12 +20,15 @@ build_flags = -Wl,--gc-sections -Werror -Wno-error=missing-field-initializers + -std=gnu++17 monitor_filters = esp32_exception_decoder default build_unflags = -fexceptions -frtti + -std=gnu++11 + -std=gnu++14 extra_scripts = pre:extra_script.py diff --git a/src/TEF6686.cpp b/src/TEF6686.cpp index ea14d83..394594c 100644 --- a/src/TEF6686.cpp +++ b/src/TEF6686.cpp @@ -104,6 +104,8 @@ uint16_t TEF6686::TestAF() { } void TEF6686::init(byte TEF) { + auto old_clock = Wire.getClock(); + Wire.setClock(400000); Tuner_Reset(); while(devTEF_APPL_Get_Operation_Status() != 0) delay(2); @@ -132,6 +134,7 @@ void TEF6686::init(byte TEF) { while(devTEF_APPL_Get_Operation_Status() != 2) delay(2); // Wait for it to start + Wire.setClock(old_clock); devTEF_Set_Cmd(TEF_FM, Cmd_Set_Highcut_Mph, 6, 0, 360, 300); devTEF_Set_Cmd(TEF_FM, Cmd_Set_Highcut_Max, 4, 0, 4000); devTEF_Set_Cmd(TEF_FM, Cmd_Set_LowCut_Max, 4, 0, 100); diff --git a/src/Tuner_Interface.cpp b/src/Tuner_Interface.cpp index 8a08cd2..a4be50e 100644 --- a/src/Tuner_Interface.cpp +++ b/src/Tuner_Interface.cpp @@ -1,8 +1,6 @@ #include "globals.h" #include "Tuner_Patch_Lithio_V102_p224.h" -#ifndef DEEPELEC_DP_66X #include "Tuner_Patch_Lithio_V205_p512.h" -#endif #include bool Tuner_WriteBuffer(unsigned char *buf, uint16_t len) { @@ -64,11 +62,9 @@ void Tuner_Patch(byte TEF) { case 102: Tuner_Patch_Load(pPatchBytes102, PatchSize102); break; -#ifndef DEEPELEC_DP_66X case 205: Tuner_Patch_Load(pPatchBytes205, PatchSize205); break; -#endif } Wire.beginTransmission(TEF668X_ADDRESS); Wire.write(0x1c); @@ -84,11 +80,9 @@ void Tuner_Patch(byte TEF) { case 102: Tuner_Patch_Load(pLutBytes102, LutSize102); break; -#ifndef DEEPELEC_DP_66X case 205: Tuner_Patch_Load(pLutBytes205, LutSize205); break; -#endif } Wire.beginTransmission(TEF668X_ADDRESS); Wire.write(0x1c); diff --git a/src/globals.cpp b/src/globals.cpp index d4dd431..894acd2 100644 --- a/src/globals.cpp +++ b/src/globals.cpp @@ -83,7 +83,6 @@ byte charwidth = 8; byte chipmodel; byte hardwaremodel; byte ContrastSet; -byte CurrentSkin; byte CurrentTheme; byte displayflip; byte eonptyold[20]; @@ -159,7 +158,7 @@ int batupdatetimer; int berPercentold; int BWAutoColor; int BWAutoColorSmooth; -int BWOld; +uint16_t BWOld; int bwupdatetimer; int DisplayedSegments; int ForceMono; diff --git a/src/gui.cpp b/src/gui.cpp index 0253f5a..091459d 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -8,7 +8,7 @@ bool setWiFiConnectParam = false; void doTheme() { // Use this to put your own colors in: http://www.barth-dev.de/online/rgb565-color-picker/ switch (CurrentTheme) { - case 0: // Default PE5PVB theme + case 0: // Essence PrimaryColor = Yellow; PrimaryColorSmooth = YellowSmooth; SecondaryColor = Skyblue; @@ -2845,7 +2845,7 @@ void BuildMenu() { tftPrint(ACENTER, textUI(29), 160, 6, PrimaryColor, PrimaryColorSmooth, 16); } else { tftPrint(ALEFT, textUI(181), (hardwaremodel == PORTABLE_TOUCH_ILI9341 ? 20 : 8), 6, PrimaryColor, PrimaryColorSmooth, 16); - tftPrint(ARIGHT, textUI(189 + menupage - 1), 312, 6, ActiveColor, ActiveColorSmooth, 16); + tftPrint(ARIGHT, textUI(186 + menupage - 1), 312, 6, ActiveColor, ActiveColorSmooth, 16); } if (hardwaremodel == PORTABLE_TOUCH_ILI9341) { diff --git a/src/logbook.cpp b/src/logbook.cpp index 4c2871e..ecc1231 100644 --- a/src/logbook.cpp +++ b/src/logbook.cpp @@ -406,11 +406,9 @@ void sendUDPlog() { String CHIP = ""; switch (chipmodel) { case 0: CHIP = "TEF6686"; break; -#ifndef DEEPELEC_DP_66X case 1: CHIP = "TEF6687"; break; case 2: CHIP = "TEF6688"; break; case 3: CHIP = "TEF6689"; break; -#endif } String RTPLUS = ""; diff --git a/src/main.cpp b/src/main.cpp index 33f36a9..48bb7f3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -24,7 +24,18 @@ using fs::FS; #pragma endregion Console console(&tft); -bool gpio_chip = false; +RTC_NOINIT_ATTR bool gpio_chip = false; +RTC_NOINIT_ATTR bool tef_found = false; + +template +void panic(Args... args) { + radio.power(1); + tft.fillScreen(TFT_RED); + console.reset(); + + (console.print(args), ...); + while (true); +} #pragma region helpers inline void Round30K(unsigned int freq) { @@ -66,7 +77,7 @@ inline void deepSleep() { MuteScreen(1); StoreFrequency(); radio.power(1); - esp_sleep_enable_ext0_wakeup((gpio_num_t)ROTARY_BUTTON, LOW); + esp_sleep_enable_ext0_wakeup((gpio_num_t)ROTARY_PIN_A, LOW); esp_deep_sleep_start(); } @@ -96,7 +107,7 @@ inline void EdgeBeeper() { radio.tone(50, -5, 2000); } -inline const char* textUI(uint16_t number) { +const char* textUI(uint16_t number) { if (number >= language_entrynumber) return "Overflow"; else return (const char*)pgm_read_ptr(&(myLanguage[language][number])); } @@ -167,7 +178,10 @@ void ShowBW() { else if(!BWtune) return; if (BW != BWOld || BWreset) { - if (BWset == 0) tftReplace(ARIGHT, String(BWOld, DEC), String(BW, DEC), 203, 4, BWAutoColor, BWAutoColorSmooth, BackgroundColor, 28); else tftReplace(ARIGHT, String (BWOld, DEC), String(BW, DEC), 203, 4, PrimaryColor, PrimaryColorSmooth, BackgroundColor, 28); + if(BW == 0) panic("BW is 0"); + else if(BW > 311) panic("BW larger than 311"); + + if(BWset == 0) tftReplace(ARIGHT, String(BWOld, DEC), String(BW, DEC), 203, 4, BWAutoColor, BWAutoColorSmooth, BackgroundColor, 28); else tftReplace(ARIGHT, String (BWOld, DEC), String(BW, DEC), 203, 4, PrimaryColor, PrimaryColorSmooth, BackgroundColor, 28); BWOld = BW; BWreset = false; if (wifi) { @@ -1156,26 +1170,8 @@ void MuteScreen(bool setting) { } #pragma endregion -void read_encoder(); -void setup() { - WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); - gpio_set_drive_capability((gpio_num_t) 5, GPIO_DRIVE_CAP_0); - gpio_set_drive_capability((gpio_num_t) 16, GPIO_DRIVE_CAP_0); - gpio_set_drive_capability((gpio_num_t) 17, GPIO_DRIVE_CAP_0); - gpio_set_drive_capability((gpio_num_t) 18, GPIO_DRIVE_CAP_0); - gpio_set_drive_capability((gpio_num_t) 19, GPIO_DRIVE_CAP_0); - gpio_set_drive_capability((gpio_num_t) 21, GPIO_DRIVE_CAP_0); - gpio_set_drive_capability((gpio_num_t) 22, GPIO_DRIVE_CAP_0); - gpio_set_drive_capability((gpio_num_t) 23, GPIO_DRIVE_CAP_0); - - setupmode = true; - - bool tef_found = false; - - Wire.begin(); - Wire.setClock(100000); - delay(1); - +void setup_periph() { + Wire.setClock(400000); Serial.begin(115200); Serial.println(); byte error, address; @@ -1208,13 +1204,40 @@ void setup() { Serial.flush(); Serial.end(); + Wire.setClock(100000); + + if(tef_found) { + // The tuner being missing here, would cause a infinite loop with no exit and no error, as it resets and polls the chip if it reset, if no response then we try again, and now, you see? + radio.init(TEF); + } +} + +void read_encoder(); +void setup() { + WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); + gpio_set_drive_capability((gpio_num_t) 5, GPIO_DRIVE_CAP_0); + gpio_set_drive_capability((gpio_num_t) 16, GPIO_DRIVE_CAP_0); + gpio_set_drive_capability((gpio_num_t) 17, GPIO_DRIVE_CAP_0); + gpio_set_drive_capability((gpio_num_t) 18, GPIO_DRIVE_CAP_0); + gpio_set_drive_capability((gpio_num_t) 19, GPIO_DRIVE_CAP_0); + gpio_set_drive_capability((gpio_num_t) 21, GPIO_DRIVE_CAP_0); + gpio_set_drive_capability((gpio_num_t) 22, GPIO_DRIVE_CAP_0); + gpio_set_drive_capability((gpio_num_t) 23, GPIO_DRIVE_CAP_0); EEPROM.begin(EE_TOTAL_CNT); + + setupmode = true; + + Wire.begin(); + Wire.setClock(100000); + loadData(); if (spispeed == SPI_SPEED_DEFAULT) tft.setSPISpeed(SPI_FREQUENCY / 1000000); else if (spispeed == 7) setAutoSpeedSPI(); else tft.setSPISpeed(spispeed * 10); + if(esp_reset_reason() != ESP_RST_DEEPSLEEP) setup_periph(); + LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; MWLowEdgeSet = mwstepsize == false ? FREQ_MW_LOW_EDGE_MIN_9K : FREQ_MW_LOW_EDGE_MIN_10K; @@ -1436,9 +1459,6 @@ void setup() { TEF = EEPROM.readByte(EE_BYTE_TEF); if(FORBIDDEN_TUNER(TEF)) SetTunerPatch(); - // The tuner being missing here, would cause a infinite loop with no exit and no error, as it resets and polls the chip if it reset, if no response then we try again, and now, you see? - radio.init(TEF); - uint16_t device, hw, sw; radio.getIdentification(&device, &hw, &sw); if (TEF != (highByte(hw) * 100 + highByte(sw))) SetTunerPatch(); @@ -1448,7 +1468,6 @@ void setup() { fmsi = false; chipmodel = 0; console.print("Detected a TEF6686 Lithio"); -#ifndef DEEPELEC_DP_66X } else if (lowByte(device) == 1) { fullsearchrds = true; chipmodel = 1; @@ -1462,7 +1481,6 @@ void setup() { fullsearchrds = true; chipmodel = 3; console.print("Detected a TEF6689 Lithio FMSI DR"); -#endif } console.print("Chip Patch: v" + String(TEF)); @@ -3078,11 +3096,8 @@ void ShowSignalLevel() { void ShowOffset() { if (OStatus != OStatusold) { - if (millis() >= offsetupdatetimer + TIMER_OFFSET_TIMER) { - offsetupdatetimer = millis(); - } else { - return; - } + if (millis() >= offsetupdatetimer + TIMER_OFFSET_TIMER) offsetupdatetimer = millis(); + else return; int baseX = 13; // Left boundary int baseY = 2; // Top boundary @@ -3206,9 +3221,7 @@ void ShowModLevel() { float h = map(i, gradientStart, gradientEnd, hsv1.h, hsv2.h); float s = map(i, gradientStart, gradientEnd, hsv1.s * 100, hsv2.s * 100) / 100.0; float v = map(i, gradientStart, gradientEnd, hsv1.v * 100, hsv2.v * 100) / 100.0; - - uint16_t gradientColor = HSVtoRGB565(h, s, v); - tft.fillRect(16 + 2 * i, 133, 2, 6, gradientColor); + tft.fillRect(16 + 2 * i, 133, 2, 6, HSVtoRGB565(h, s, v)); } } @@ -3234,7 +3247,7 @@ void doSquelch() { 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; + if (unit == 2) SquelchShow = round(((float)Squelch / 10.0 - 10.0 * log10(75) - 90.0) * 10.0) / 10; if (Squelch > 920) Squelch = 920; if (autosquelch) { @@ -3415,12 +3428,10 @@ void doTuneMode() { else tunemode = TUNE_AUTO; } else tunemode = TUNE_AUTO; break; - case TUNE_MI_BAND: case TUNE_AUTO: tunemode = TUNE_MEM; break; - case TUNE_MEM: if (!bandforbidden) tunemode = TUNE_MAN; break; @@ -3506,7 +3517,7 @@ void ShowBattery() { if (millis() >= batupdatetimer + TIMER_BAT_TIMER) batupdatetimer = millis(); else return; - float v = analogReadMilliVolts(BATTERY_PIN) * 0.002; + float v = analogReadMilliVolts(BATTERY_PIN) * 0.002; // 0.002 converts to volts plus corrects the /2 voltage divider byte battery = map(constrain(v, BATTERY_LOW_VALUE, BATTERY_FULL_VALUE), BATTERY_LOW_VALUE, BATTERY_FULL_VALUE, 0, BAT_LEVEL_STAGE); byte batteryprobe = map(constrain(v, BATTERY_LOW_VALUE, BATTERY_FULL_VALUE), BATTERY_LOW_VALUE, BATTERY_FULL_VALUE, 0, 20); if (batteryold != batteryprobe) { @@ -3785,7 +3796,7 @@ void read_encoder() { old_AB <<= 2; if (digitalRead(ROTARY_PIN_A)) old_AB |= 0x02; if (digitalRead(ROTARY_PIN_B)) old_AB |= 0x01; - encval += enc_states[( old_AB & 0x0f )]; + encval += enc_states[old_AB & 0xf]; if (!(255 - old_AB)) encval = 0; if (encval > 3) { @@ -3803,8 +3814,7 @@ void read_encoder() { void tftReplace(int8_t offset, const String & textold, const String & text, int16_t x, int16_t y, int color, int smoothcolor, int background, uint8_t fontsize) { uint8_t selectedFont = 0; - if (fontsize == 16) selectedFont = 0; - else if (fontsize == 28) selectedFont = 1; + if (fontsize == 28) selectedFont = 1; else if (fontsize == 48) selectedFont = 2; switch (offset) { @@ -3825,8 +3835,7 @@ void tftReplace(int8_t offset, const String & textold, const String & text, int1 void tftPrint(int8_t offset, const String & text, int16_t x, int16_t y, int color, int smoothcolor, uint8_t fontsize) { uint8_t selectedFont = 0; - if (fontsize == 16) selectedFont = 0; - else if (fontsize == 28) selectedFont = 1; + if (fontsize == 28) selectedFont = 1; else if (fontsize == 48) selectedFont = 2; tft.setTextColor(color, smoothcolor, (fontsize == 52 ? true : false)); diff --git a/src/nonvolatile.cpp b/src/nonvolatile.cpp index 0ed0a57..a6bab61 100644 --- a/src/nonvolatile.cpp +++ b/src/nonvolatile.cpp @@ -97,7 +97,6 @@ void saveData() { EEPROM.writeByte(EE_BYTE_AMSCANSENS, amscansens); EEPROM.writeByte(EE_BYTE_FMSCANSENS, fmscansens); EEPROM.writeByte(EE_BYTE_FREQFONT, freqfont); - EEPROM.writeByte(EE_BYTE_SKIN, CurrentSkin); EEPROM.writeByte(EE_BYTE_XDRGTKMUTE, XDRGTKMuteScreen); EEPROM.writeByte(EE_BYTE_FMAGC, fmagc); EEPROM.writeByte(EE_BYTE_AMAGC, amagc); @@ -128,7 +127,7 @@ void saveData() { } void loadData() { - if (EEPROM.readByte(EE_BYTE_CHECKBYTE) != EE_CHECKBYTE_VALUE) DefaultSettings(); + if (EEPROM.readByte(EE_BYTE_CHECKBYTE) != EE_CHECKBYTE_VALUE) DefaultSettings(); frequency = EEPROM.readUInt(EE_UINT16_FREQUENCY_FM); frequency_OIRT = EEPROM.readUInt(EE_UINT16_FREQUENCY_OIRT); @@ -205,7 +204,6 @@ void loadData() { amscansens = EEPROM.readByte(EE_BYTE_AMSCANSENS); fmscansens = EEPROM.readByte(EE_BYTE_FMSCANSENS); freqfont = EEPROM.readByte(EE_BYTE_FREQFONT); - CurrentSkin = EEPROM.readByte(EE_BYTE_SKIN); XDRGTKMuteScreen = EEPROM.readByte(EE_BYTE_XDRGTKMUTE); fmagc = EEPROM.readByte(EE_BYTE_FMAGC); amagc = EEPROM.readByte(EE_BYTE_AMAGC); @@ -249,27 +247,27 @@ void DefaultSettings() { EEPROM.writeUInt(EE_UINT16_CONVERTERSET, 0); EEPROM.writeUInt(EE_UINT16_FMLOWEDGESET, 875); EEPROM.writeUInt(EE_UINT16_FMHIGHEDGESET, 1080); - EEPROM.writeByte(EE_BYTE_CONTRASTSET, 50); + EEPROM.writeByte(EE_BYTE_CONTRASTSET, 20); EEPROM.writeByte(EE_BYTE_STEREOLEVEL, 0); EEPROM.writeByte(EE_BYTE_BANDFM, FM_BAND_ALL); EEPROM.writeByte(EE_BYTE_BANDAM, AM_BAND_ALL); EEPROM.writeByte(EE_BYTE_HIGHCUTLEVEL, 70); EEPROM.writeByte(EE_BYTE_HIGHCUTOFFSET, 0); EEPROM.writeByte(EE_BYTE_LEVELOFFSET, 0); - EEPROM.writeByte(EE_BYTE_RTBUFFER, 1); + EEPROM.writeByte(EE_BYTE_RTBUFFER, 0); EEPROM.writeByte(EE_BYTE_EDGEBEEP, 0); EEPROM.writeByte(EE_BYTE_SOFTMUTEAM, 1); EEPROM.writeByte(EE_BYTE_SOFTMUTEFM, 0); EEPROM.writeUInt(EE_UINT16_FREQUENCY_AM, 828); EEPROM.writeByte(EE_BYTE_LANGUAGE, 0); - EEPROM.writeByte(EE_BYTE_SHOWRDSERRORS, 1); + EEPROM.writeByte(EE_BYTE_SHOWRDSERRORS, 0); EEPROM.writeByte(EE_BYTE_TEF, 0); EEPROM.writeByte(EE_BYTE_STEPSIZE, 0); EEPROM.writeByte(EE_BYTE_TUNEMODE, 0); EEPROM.writeByte(EE_BYTE_IMSSET, 1); EEPROM.writeByte(EE_BYTE_EQSET, 1); EEPROM.writeByte(EE_BYTE_BAND, BAND_FM); - EEPROM.writeByte(EE_BYTE_LOWLEVELSET, -15); + EEPROM.writeByte(EE_BYTE_LOWLEVELSET, -10); EEPROM.writeByte(EE_BYTE_MEMORYPOS, 0); EEPROM.writeByte(EE_BYTE_REGION, 0); EEPROM.writeByte(EE_BYTE_RDS_UNDERSCORE, 0); @@ -277,9 +275,9 @@ void DefaultSettings() { EEPROM.writeByte(EE_BYTE_WIFI, 0); EEPROM.writeByte(EE_BYTE_SUBNETCLIENT, 1); EEPROM.writeByte(EE_BYTE_SHOWSWMIBAND, 1); - EEPROM.writeByte(EE_BYTE_RDS_FILTER, 1); + EEPROM.writeByte(EE_BYTE_RDS_FILTER, 0); EEPROM.writeByte(EE_BYTE_RDS_PIERRORS, 0); - EEPROM.writeUInt(EE_UINT16_FREQUENCY_LW, 180); + EEPROM.writeUInt(EE_UINT16_FREQUENCY_LW, 225); EEPROM.writeUInt(EE_UINT16_FREQUENCY_MW, 540); EEPROM.writeUInt(EE_UINT16_FREQUENCY_SW, 1800); EEPROM.writeString(EE_STRING_XDRGTK_KEY, "password"); @@ -292,14 +290,14 @@ void DefaultSettings() { EEPROM.writeUInt(EE_UINT16_LOWEDGEOIRTSET, 0); EEPROM.writeUInt(EE_UINT16_HIGHEDGEOIRTSET, 0); EEPROM.writeByte(EE_BYTE_POWEROPTIONS, 1); - EEPROM.writeByte(EE_BYTE_CURRENTTHEME, 0); + EEPROM.writeByte(EE_BYTE_CURRENTTHEME, 3); EEPROM.writeByte(EE_BYTE_FMDEFAULTSTEPSIZE, 1); EEPROM.writeByte(EE_BYTE_SCREENSAVERSET, 0); EEPROM.writeInt(EE_INT16_AMLEVELOFFSET, 0); EEPROM.writeByte(EE_BYTE_UNIT, 0); EEPROM.writeByte(EE_BYTE_AF, 0); EEPROM.writeByte(EE_BYTE_STEREO, 1); - EEPROM.writeByte(EE_BYTE_BATTERY_OPTIONS, BATTERY_VALUE); + EEPROM.writeByte(EE_BYTE_BATTERY_OPTIONS, BATTERY_PERCENT); EEPROM.writeByte(EE_BYTE_AM_CO_DECT, 100); EEPROM.writeByte(EE_BYTE_AM_CO_DECT_COUNT, 3); EEPROM.writeByte(EE_BYTE_AM_RF_GAIN, 0); @@ -309,16 +307,15 @@ void DefaultSettings() { EEPROM.writeByte(EE_BYTE_BWSET_FM, 0); EEPROM.writeByte(EE_BYTE_BWSET_AM, 2); EEPROM.writeByte(EE_BYTE_BANDAUTOSW, 0); - EEPROM.writeByte(EE_BYTE_FASTPS, 1); + EEPROM.writeByte(EE_BYTE_FASTPS, 0); EEPROM.writeByte(EE_BYTE_TOT, 0); EEPROM.writeByte(EE_BYTE_MWREGION, 0); EEPROM.writeByte(EE_BYTE_AMSCANSENS, 4); EEPROM.writeByte(EE_BYTE_FMSCANSENS, 4); EEPROM.writeByte(EE_BYTE_FREQFONT, 3); - EEPROM.writeByte(EE_BYTE_SKIN, 0); EEPROM.writeByte(EE_BYTE_XDRGTKMUTE, 0); EEPROM.writeByte(EE_BYTE_FMAGC, 92); - EEPROM.writeByte(EE_BYTE_AMAGC, 100); + EEPROM.writeByte(EE_BYTE_AMAGC, 102); EEPROM.writeByte(EE_BYTE_FMSI, 1); EEPROM.writeByte(EE_BYTE_SCANSTART, 0); EEPROM.writeByte(EE_BYTE_SCANSTOP, 9); @@ -327,7 +324,6 @@ void DefaultSettings() { EEPROM.writeByte(EE_BYTE_SCANCANCEL, 0); EEPROM.writeByte(EE_BYTE_SCANMUTE, 0); EEPROM.writeByte(EE_BYTE_AUTOSQUELCH, 0); - EEPROM.writeByte(EE_BYTE_LONGBANDPRESS, 0); EEPROM.writeByte(EE_BYTE_SHOWCLOCK, 1); EEPROM.writeByte(EE_BYTE_SHOWLONGPS, 1); EEPROM.writeUInt(EE_UINT16_MEMSTARTFREQ, 875); @@ -355,11 +351,13 @@ void DefaultSettings() { EEPROM.writeByte(EE_BYTE_INVERTDISPLAY, 0); EEPROM.writeByte(EE_BYTE_DISPLAYFLIP, 1); EEPROM.writeByte(EE_BYTE_HARDWARE_MODEL, PORTABLE_TOUCH_ILI9341); + EEPROM.writeByte(EE_BYTE_LONGBANDPRESS, SCREENOFF); #else EEPROM.writeByte(EE_BYTE_ROTARYMODE, 0); EEPROM.writeByte(EE_BYTE_INVERTDISPLAY, 1); EEPROM.writeByte(EE_BYTE_DISPLAYFLIP, 0); EEPROM.writeByte(EE_BYTE_HARDWARE_MODEL, BASE_ILI9341); + EEPROM.writeByte(EE_BYTE_LONGBANDPRESS, STANDBY); #endif for (int i = 0; i < EE_PRESETS_CNT; i++) { diff --git a/src/rtc.cpp b/src/rtc.cpp index 9b38908..457c183 100644 --- a/src/rtc.cpp +++ b/src/rtc.cpp @@ -6,7 +6,7 @@ bool rtcset; bool NTPupdated; ESP32Time rtc; -bool rx_rtc_avail = false; +RTC_NOINIT_ATTR bool rx_rtc_avail = false; inline int16_t readFromModule(byte address) { Wire.beginTransmission(RX8010SJ_ADDRESS);