diff --git a/src/configuration.h b/src/configuration.h
index 8b4fd82c7..81632c89e 100644
--- a/src/configuration.h
+++ b/src/configuration.h
@@ -26,10 +26,10 @@ along with this program. If not, see .
#include
-#ifdef RV3028_RTC
+#if __has_include("Melopero_RV3028.h")
#include "Melopero_RV3028.h"
#endif
-#ifdef PCF8563_RTC
+#if __has_include("pcf8563.h")
#include "pcf8563.h"
#endif
diff --git a/src/gps/RTC.cpp b/src/gps/RTC.cpp
index 185adacd9..ceb79eebf 100644
--- a/src/gps/RTC.cpp
+++ b/src/gps/RTC.cpp
@@ -55,9 +55,9 @@ RTCSetResult readFromRTC()
LOG_DEBUG("Read RTC time from RV3028 getTime as %02d-%02d-%02d %02d:%02d:%02d (%ld)", t.tm_year + 1900, t.tm_mon + 1,
t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec, printableEpoch);
- timeStartMsec = now;
- zeroOffsetSecs = tv.tv_sec;
if (currentQuality == RTCQualityNone) {
+ timeStartMsec = now;
+ zeroOffsetSecs = tv.tv_sec;
currentQuality = RTCQualityDevice;
}
return RTCSetResultSuccess;
@@ -94,9 +94,9 @@ RTCSetResult readFromRTC()
LOG_DEBUG("Read RTC time from PCF8563 getDateTime as %02d-%02d-%02d %02d:%02d:%02d (%ld)", t.tm_year + 1900, t.tm_mon + 1,
t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec, printableEpoch);
- timeStartMsec = now;
- zeroOffsetSecs = tv.tv_sec;
if (currentQuality == RTCQualityNone) {
+ timeStartMsec = now;
+ zeroOffsetSecs = tv.tv_sec;
currentQuality = RTCQualityDevice;
}
return RTCSetResultSuccess;
diff --git a/src/main.cpp b/src/main.cpp
index 338487914..111709d07 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -419,7 +419,7 @@ void setup()
struct timeval tv;
tv.tv_sec = time(NULL);
tv.tv_usec = 0;
- perhapsSetRTC(RTCQualityNTP, &tv);
+ perhapsSetRTC(RTCQualityDevice, &tv);
#endif
powerMonInit();
diff --git a/variants/native/portduino/platformio.ini b/variants/native/portduino/platformio.ini
index 62942a80e..c47ab8bf1 100644
--- a/variants/native/portduino/platformio.ini
+++ b/variants/native/portduino/platformio.ini
@@ -3,7 +3,10 @@ extends = portduino_base
build_flags = ${portduino_base.build_flags} -I variants/native/portduino
-I /usr/include
board = cross_platform
-lib_deps = ${portduino_base.lib_deps}
+lib_deps =
+ ${portduino_base.lib_deps}
+ melopero/Melopero RV3028@^1.1.0
+
build_src_filter = ${portduino_base.build_src_filter}
[env:native]
diff --git a/variants/native/portduino/variant.h b/variants/native/portduino/variant.h
index ce7dbd865..a7ca865be 100644
--- a/variants/native/portduino/variant.h
+++ b/variants/native/portduino/variant.h
@@ -4,4 +4,7 @@
#define CANNED_MESSAGE_MODULE_ENABLE 1
#define HAS_GPS 1
#define MAX_RX_TOPHONE settingsMap[maxtophone]
-#define MAX_NUM_NODES settingsMap[maxnodes]
\ No newline at end of file
+#define MAX_NUM_NODES settingsMap[maxnodes]
+
+// RAK12002 RTC Module
+#define RV3028_RTC (uint8_t)0b1010010
\ No newline at end of file