diff --git a/companion/src/firmwares/generalsettings.h b/companion/src/firmwares/generalsettings.h
index f3b415ec4..5325119b4 100644
--- a/companion/src/firmwares/generalsettings.h
+++ b/companion/src/firmwares/generalsettings.h
@@ -140,6 +140,7 @@ class GeneralSettings {
unsigned int rotarySteps;
unsigned int countryCode;
bool jitterFilter;
+ bool rtcCheckDisable;
unsigned int imperial;
char ttsLanguage[2+1];
int beepVolume;
diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp
index 1dbfaa7e8..8332a7ff0 100644
--- a/companion/src/firmwares/opentx/opentxeeprom.cpp
+++ b/companion/src/firmwares/opentx/opentxeeprom.cpp
@@ -2571,7 +2571,8 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, Board::Type
internalField.Append(new SignedField<2>(this, generalData.antennaMode));
else
internalField.Append(new SpareBitsField<2>(this));
- internalField.Append(new SpareBitsField<3>(this));
+ internalField.Append(new BoolField<1>(this, generalData.rtcCheckDisable));
+ internalField.Append(new SpareBitsField<2>(this));
for (int i=0; i<4; i++) {
internalField.Append(new SignedField<16>(this, generalData.trainer.calib[i]));
diff --git a/companion/src/generaledit/hardware.cpp b/companion/src/generaledit/hardware.cpp
index 09f109bda..8868e7766 100644
--- a/companion/src/generaledit/hardware.cpp
+++ b/companion/src/generaledit/hardware.cpp
@@ -200,6 +200,15 @@ HardwarePanel::HardwarePanel(QWidget * parent, GeneralSettings & generalSettings
}
else {
ui->filterEnable->hide();
+ ui->filterLabel->hide();
+ }
+
+ if (IS_STM32(board)) {
+ ui->rtcCheckDisable->setChecked(!generalSettings.rtcCheckDisable);
+ }
+ else {
+ ui->rtcCheckDisable->hide();
+ ui->rtcCheckLabel->hide();
}
disableMouseScrolling();
@@ -217,6 +226,11 @@ void HardwarePanel::on_filterEnable_stateChanged()
generalSettings.jitterFilter = !ui->filterEnable->isChecked();
}
+void HardwarePanel::on_rtcCheckDisable_stateChanged()
+{
+ generalSettings.rtcCheckDisable = !ui->rtcCheckDisable->isChecked();
+}
+
void HardwarePanel::on_PPM_MultiplierDSB_editingFinished()
{
int val = (int)(ui->PPM_MultiplierDSB->value()*10)-10;
diff --git a/companion/src/generaledit/hardware.h b/companion/src/generaledit/hardware.h
index 07ba62c40..8101b784c 100644
--- a/companion/src/generaledit/hardware.h
+++ b/companion/src/generaledit/hardware.h
@@ -49,6 +49,7 @@ class HardwarePanel : public GeneralPanel
void on_txCurrentCalibration_editingFinished();
void on_txVoltageCalibration_editingFinished();
void on_filterEnable_stateChanged();
+ void on_rtcCheckDisable_stateChanged();
void on_serialPortMode_currentIndexChanged(int index);
diff --git a/companion/src/generaledit/hardware.ui b/companion/src/generaledit/hardware.ui
index 79bb36a32..45e8e8da6 100644
--- a/companion/src/generaledit/hardware.ui
+++ b/companion/src/generaledit/hardware.ui
@@ -7,7 +7,7 @@
0
0
470
- 1585
+ 1618
@@ -57,7 +57,7 @@
- -
+
-
@@ -169,7 +169,7 @@
- -
+
-
-49
@@ -192,27 +192,7 @@
- -
-
-
- RS2
-
-
-
- -
-
-
-
- 0
- 10
-
-
-
- Qt::Horizontal
-
-
-
- -
+
-
@@ -231,6 +211,26 @@
+ -
+
+
+
+ 0
+ 10
+
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ RS2
+
+
+
-
@@ -267,7 +267,7 @@
- -
+
-
Current Offset
@@ -284,7 +284,7 @@
- -
+
-
PPM 2
@@ -312,6 +312,9 @@
+ -
+
+
-
@@ -322,6 +325,19 @@
-
+ -
+
+
+
+
+
+
+
+
+
+
+
+
-
@@ -342,17 +358,14 @@
- -
-
+
-
+
-
-
-
-
@@ -375,16 +388,6 @@
- -
-
-
-
-
-
-
-
-
-
-
@@ -434,6 +437,16 @@
+ -
+
+
+
+
+
+
+
+
+
-
@@ -447,23 +460,6 @@
- -
-
-
- 3
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
@@ -471,6 +467,13 @@
+ -
+
+
+ 3
+
+
+
-
@@ -512,7 +515,7 @@
- -
+
-
1
@@ -545,6 +548,19 @@
+ -
+
+
+
+
+
+
+
+
+
+
+
+
-
@@ -562,19 +578,6 @@
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -589,9 +592,6 @@
- -
-
-
-
@@ -599,6 +599,13 @@
+ -
+
+
+ SI
+
+
+
-
@@ -613,10 +620,10 @@
- -
-
+
-
+
- SI
+ SL
@@ -627,13 +634,6 @@
- -
-
-
- SL
-
-
-
-
@@ -688,7 +688,7 @@
- -
+
-
@@ -707,7 +707,7 @@
- -
+
-
PPM 1
@@ -727,14 +727,14 @@
- -
+
-
PPM 4
- -
+
-
@@ -766,6 +766,20 @@
+ -
+
+
+ SB
+
+
+
+ -
+
+
+ 3
+
+
+
-
@@ -788,21 +802,7 @@
- -
-
-
- SB
-
-
-
- -
-
-
- 3
-
-
-
- -
+
-
PPM Multiplier
@@ -903,16 +903,6 @@
- -
-
-
- Antenna
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
-
-
-
-
@@ -933,7 +923,17 @@
- -
+
-
+
+
+ Antenna
+
+
+ Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
+
+
+
+ -
PPM 3
@@ -1029,6 +1029,26 @@
+ -
+
+
+ 3
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
-
-
@@ -1058,26 +1078,6 @@
- -
-
-
- 3
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1113,6 +1113,20 @@
+ -
+
+
+
+
+
+
+ -
+
+
+ RTC Batt Check
+
+
+
diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h
index 4c07cdb9c..8a5952bfe 100644
--- a/radio/src/datastructs.h
+++ b/radio/src/datastructs.h
@@ -735,7 +735,8 @@ PACK(struct RadioData {
NOBACKUP(int8_t txVoltageCalibration);
uint8_t backlightMode:3;
int8_t antennaMode:2;
- int8_t spare1:3;
+ uint8_t disableRtcWarning:1;
+ int8_t spare1:2;
NOBACKUP(TrainerData trainer);
NOBACKUP(uint8_t view); // index of view in main screen
NOBACKUP(BUZZER_FIELD); /* 2bits */
diff --git a/radio/src/gui/480x272/radio_hardware.cpp b/radio/src/gui/480x272/radio_hardware.cpp
index db5fbc759..35bec7cb1 100644
--- a/radio/src/gui/480x272/radio_hardware.cpp
+++ b/radio/src/gui/480x272/radio_hardware.cpp
@@ -54,6 +54,7 @@ enum MenuRadioHardwareItems {
ITEM_RADIO_HARDWARE_SJ, // Gimbal switch right
ITEM_RADIO_HARDWARE_BATTERY_CALIB,
ITEM_RADIO_HARDWARE_RTC_BATTERY,
+ ITEM_RADIO_HARDWARE_RTC_CHECK,
ITEM_RADIO_HARDWARE_SERIAL_BAUDRATE,
ITEM_RADIO_HARDWARE_BLUETOOTH_MODE,
ITEM_RADIO_HARDWARE_BLUETOOTH_PAIRING_CODE,
@@ -118,6 +119,7 @@ bool menuRadioHardware(event_t event)
0, /* battery */
READONLY_ROW, /* RTC */
+ 0, /* RTC check */
0, /* max baudrate */
@@ -271,6 +273,14 @@ bool menuRadioHardware(event_t event)
}
break;
+ case ITEM_RADIO_HARDWARE_RTC_CHECK:
+ {
+ lcdDrawText(MENUS_MARGIN_LEFT, y, STR_RTC_CHECK);
+ uint8_t b = 1 - g_eeGeneral.disableRtcWarning;
+ g_eeGeneral.disableRtcWarning = 1 - editCheckBox(b, HW_SETTINGS_COLUMN + 50, y, attr, event);
+ break;
+ }
+
case ITEM_RADIO_HARDWARE_BLUETOOTH_MODE:
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_BLUETOOTH);
g_eeGeneral.bluetoothMode = editChoice(HW_SETTINGS_COLUMN+50, y, STR_BLUETOOTH_MODES, g_eeGeneral.bluetoothMode, BLUETOOTH_OFF, BLUETOOTH_TRAINER, attr, event);
diff --git a/radio/src/gui/common/stdlcd/radio_hardware.cpp b/radio/src/gui/common/stdlcd/radio_hardware.cpp
index a62bd9f08..4f8156453 100644
--- a/radio/src/gui/common/stdlcd/radio_hardware.cpp
+++ b/radio/src/gui/common/stdlcd/radio_hardware.cpp
@@ -151,6 +151,7 @@ enum {
#if defined(STM32)
ITEM_RADIO_HARDWARE_RTC_BATTERY,
+ ITEM_RADIO_HARDWARE_RTC_CHECK,
#endif
#if defined(TX_CAPACITY_MEASUREMENT)
@@ -255,7 +256,7 @@ void onHardwareAntennaSwitchConfirm(const char * result)
#endif
#if defined(STM32)
- #define RTC_ROW READONLY_ROW,
+ #define RTC_ROW READONLY_ROW, 0,
#else
#define RTC_ROW
#endif
@@ -510,6 +511,10 @@ void menuRadioHardware(event_t event)
lcdDrawTextAlignedLeft(y, STR_RTC_BATT);
putsVolts(HW_SETTINGS_COLUMN2, y, getRTCBatteryVoltage(), PREC2|LEFT);
break;
+
+ case ITEM_RADIO_HARDWARE_RTC_CHECK:
+ g_eeGeneral.disableRtcWarning = 1 - editCheckBox(1 - g_eeGeneral.disableRtcWarning, HW_SETTINGS_COLUMN2, y, STR_RTC_CHECK, attr, event);
+ break;
#endif
#if defined(TX_CAPACITY_MEASUREMENT)
diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp
index 345449ab9..3bc6913ad 100644
--- a/radio/src/opentx.cpp
+++ b/radio/src/opentx.cpp
@@ -912,7 +912,8 @@ void checkAll()
#endif
#if defined(STM32)
- checkRTCBattery();
+ if (!g_eeGeneral.disableRtcWarning)
+ checkRTCBattery();
#endif
if (g_model.displayChecklist && modelHasNotes()) {
diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp
index 953330f4b..7eee84f91 100644
--- a/radio/src/translations.cpp
+++ b/radio/src/translations.cpp
@@ -572,6 +572,7 @@ const char STR_MENU_DISPLAY[] = TR_MENU_DISPLAY;
const char STR_MENU_OTHER[] = TR_MENU_OTHER;
const char STR_MENU_INVERT[] = TR_MENU_INVERT;
const char STR_JITTER_FILTER[] = TR_JITTER_FILTER;
+const char STR_RTC_CHECK[] = TR_RTC_CHECK;
const char STR_EXIT[] = TR_EXIT;
const char STR_MODULE_RANGE[] = TR_MODULE_RANGE;
const char STR_RECEIVER_OPTIONS[] = TR_RECEIVER_OPTIONS;
diff --git a/radio/src/translations.h b/radio/src/translations.h
index 070c11e66..ba36e8d6a 100644
--- a/radio/src/translations.h
+++ b/radio/src/translations.h
@@ -851,6 +851,7 @@ extern const char STR_MENU_DISPLAY[];
extern const char STR_MENU_OTHER[];
extern const char STR_MENU_INVERT[];
extern const char STR_JITTER_FILTER[];
+extern const char STR_RTC_CHECK[];
#if MENUS_LOCK == 1
extern const char STR_UNLOCKED[];
diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt
index c839d7d3f..840808917 100644
--- a/radio/src/translations/cz.h.txt
+++ b/radio/src/translations/cz.h.txt
@@ -1145,6 +1145,7 @@
#define TR_MENU_OTHER "Ostatní"
#define TR_MENU_INVERT "Invertovat"
#define TR_JITTER_FILTER "ADC Filtr"
+#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
#define ZSTR_RSSI "RSSI"
#define ZSTR_R9PW "R9PW"
diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt
index 65e3f7cb3..5f57de855 100644
--- a/radio/src/translations/de.h.txt
+++ b/radio/src/translations/de.h.txt
@@ -1150,6 +1150,7 @@
#define TR_MENU_OTHER "Weitere"
#define TR_MENU_INVERT "Invertieren"
#define TR_JITTER_FILTER "ADC Filter"
+#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
// ----------------------------------------------------------------
#define ZSTR_RSSI "RSSI"
#define ZSTR_R9PW "R9PW"
diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt
index b2090eaea..20ac2103d 100644
--- a/radio/src/translations/en.h.txt
+++ b/radio/src/translations/en.h.txt
@@ -1149,6 +1149,7 @@
#define TR_MENU_OTHER "Other"
#define TR_MENU_INVERT "Invert"
#define TR_JITTER_FILTER "ADC filter"
+#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
#define ZSTR_RSSI "RSSI"
#define ZSTR_R9PW "R9PW"
diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt
index 3395c170c..0f081176e 100644
--- a/radio/src/translations/es.h.txt
+++ b/radio/src/translations/es.h.txt
@@ -1170,6 +1170,7 @@
#define TR_MENU_OTHER "Other"
#define TR_MENU_INVERT "Invert"
#define TR_JITTER_FILTER "ADC Filter"
+#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
#define ZSTR_RSSI "RSSI"
#define ZSTR_R9PW "R9PW"
diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt
index 65c67607b..e65b5f52b 100644
--- a/radio/src/translations/fi.h.txt
+++ b/radio/src/translations/fi.h.txt
@@ -1158,6 +1158,7 @@
#define TR_MENU_OTHER "Other"
#define TR_MENU_INVERT "Invert"
#define TR_JITTER_FILTER "ADC Filter"
+#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
#define ZSTR_RSSI "RSSI"
#define ZSTR_R9PW "R9PW"
diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt
index fc3d2945f..51b03fa7d 100644
--- a/radio/src/translations/fr.h.txt
+++ b/radio/src/translations/fr.h.txt
@@ -1173,6 +1173,7 @@
#define TR_MENU_OTHER "Autres"
#define TR_MENU_INVERT "Inverser"
#define TR_JITTER_FILTER "Filtre ADC"
+#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
#define ZSTR_RSSI "RSSI"
#define ZSTR_R9PW "R9PW"
diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt
index 900913578..1530edfb0 100644
--- a/radio/src/translations/it.h.txt
+++ b/radio/src/translations/it.h.txt
@@ -1166,6 +1166,7 @@
#define TR_MENU_OTHER "Altro"
#define TR_MENU_INVERT "Inverti"
#define TR_JITTER_FILTER "ADC Filter"
+#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
#define ZSTR_RSSI "RSSI"
#define ZSTR_R9PW "R9PW"
diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt
index 7aaf4d5ac..7fd696397 100644
--- a/radio/src/translations/nl.h.txt
+++ b/radio/src/translations/nl.h.txt
@@ -1160,6 +1160,7 @@ TR_GYR_VSRCRAW
#define TR_MENU_OTHER "Verdere"
#define TR_MENU_INVERT "Inverteer"
#define TR_JITTER_FILTER "ADC Filter"
+#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
#define ZSTR_RSSI "RSSI"
#define ZSTR_R9PW "R9PW"
diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt
index 1922fa9b0..b342291a2 100644
--- a/radio/src/translations/pl.h.txt
+++ b/radio/src/translations/pl.h.txt
@@ -1166,6 +1166,7 @@
#define TR_MENU_OTHER "Inny "
#define TR_MENU_INVERT "Odwróć"
#define TR_JITTER_FILTER "ADC Filter"
+#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
#define ZSTR_RSSI "RSSI"
#define ZSTR_R9PW "R9PW"
diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt
index cefcb53fd..bad49e96e 100644
--- a/radio/src/translations/pt.h.txt
+++ b/radio/src/translations/pt.h.txt
@@ -1155,6 +1155,7 @@
#define TR_MENU_OTHER "Other"
#define TR_MENU_INVERT "Invert"
#define TR_JITTER_FILTER "ADC Filter"
+#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
#define ZSTR_RSSI "RSSI"
#define ZSTR_R9PW "R9PW"
diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt
index 3d60f986b..bfda7e796 100644
--- a/radio/src/translations/se.h.txt
+++ b/radio/src/translations/se.h.txt
@@ -1166,6 +1166,7 @@
#define TR_MENU_OTHER "Annat"
#define TR_MENU_INVERT "Invertera"
#define TR_JITTER_FILTER "ADC Filter"
+#define TR_RTC_CHECK TR("Check RTC", "Check RTC voltage")
#define ZSTR_RSSI "RSSI"
#define ZSTR_R9PW "R9PW"