Jonathan Bennett
bd3cbfc1ad
Add support for the RV-3028 on native Linux ( #7802 )
CI / docker-deb-amd64-tft (push) Waiting to run
CI / docker-alp-amd64 (push) Waiting to run
CI / docker-alp-amd64-tft (push) Waiting to run
CI / docker-deb-arm64 (push) Waiting to run
CI / docker-deb-armv7 (push) Waiting to run
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (rp2350) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (rp2350) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
CI / publish-firmware (push) Blocked by required conditions
Daily Packaging / docker-multiarch (push) Has been cancelled
Daily Packaging / package-ppa (jammy) (push) Has been cancelled
Daily Packaging / package-ppa (noble) (push) Has been cancelled
Daily Packaging / package-ppa (plucky) (push) Has been cancelled
Daily Packaging / package-ppa (questing) (push) Has been cancelled
Daily Packaging / package-obs (push) Has been cancelled
Daily Packaging / hook-copr (push) Has been cancelled
2025-09-01 08:04:04 -05:00
Tom Fifield
11db6d4dcc
Can't trust RTCs to tell the time. ( #7779 )
...
Further to https://github.com/meshtastic/firmware/pull/7772 ,
we discovered that some RTCs have hard-coded start times well in the
past.
This patch gives RTCs the same treatment as GPS - if the time is
earlier than BUILD_EPOCH, we don't use it.
Fixes #7771
Fixes #7750
2025-08-29 13:23:14 -05:00
Ben Meadors
cf574c71d8
Fix build
CI / build-esp32-c6 (push) Blocked by required conditions
CI / build-nrf52 (push) Blocked by required conditions
CI / build-rpi2040 (push) Blocked by required conditions
CI / build-stm32 (push) Blocked by required conditions
CI / build-debian-src (push) Waiting to run
CI / package-pio-deps-native-tft (push) Waiting to run
CI / test-native (push) Waiting to run
CI / docker-deb-amd64 (push) Waiting to run
CI / docker-deb-amd64-tft (push) Waiting to run
CI / docker-alp-amd64 (push) Waiting to run
CI / docker-alp-amd64-tft (push) Waiting to run
CI / docker-deb-arm64 (push) Waiting to run
CI / docker-deb-armv7 (push) Waiting to run
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
CI / publish-firmware (push) Blocked by required conditions
Semgrep Full Scan / semgrep-full (push) Has been cancelled
2025-07-18 09:24:34 -05:00
Tom Fifield
abe0a34fc0
Add additional Epoch check for time set ( #7375 )
...
CI / build-esp32-c3 (push) Blocked by required conditions
CI / build-esp32-c6 (push) Blocked by required conditions
CI / build-nrf52 (push) Blocked by required conditions
CI / build-rpi2040 (push) Blocked by required conditions
CI / build-stm32 (push) Blocked by required conditions
CI / build-debian-src (push) Waiting to run
CI / package-pio-deps-native-tft (push) Waiting to run
CI / test-native (push) Waiting to run
CI / docker-deb-amd64 (push) Waiting to run
CI / docker-deb-amd64-tft (push) Waiting to run
CI / docker-alp-amd64 (push) Waiting to run
CI / docker-alp-amd64-tft (push) Waiting to run
CI / docker-deb-arm64 (push) Waiting to run
CI / docker-deb-armv7 (push) Waiting to run
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
CI / publish-firmware (push) Blocked by required conditions
We have two perhapsSetRTC functions, which are called to set the time.
The one with 3 parameters had a helpful check to reject an invalid time,
by comparing the time from the source against when the firmware was compiled.
The one with 2 parameters, which is called from the GPS lookForTime did not.
As a result, certain GPS with bad time handling could set a time that was
in the past.
This patch adds the same epoch check code to the other perhapsSetRTC method.
Fixes https://github.com/meshtastic/firmware/issues/7364
2025-07-18 05:49:19 -05:00
Ben Meadors
415dc4aa47
Try-fix: L76K spamming bad times can crash nodes ( #7261 )
...
* Try-fix: Clear GPS buffer when we encounter a bad time in NMEA
* Fix signed int warnings
2025-07-07 19:35:57 -05:00
Chloe Bethel
d494c23a88
Enable telemetry and I2C sensors on STM32WL (except accelerometers) ( #7008 )
...
* Update platformio inis for stm32 platform and wio-e5 variant for enabling i2c
* Don't reference timezone functions if MESHTASTIC_EXCLUDE_TZ is defined
* Use custom pow_of_two in RadioInterface instead of floating-point pow()
* First pass: enable sensors for STM32wL
* Fix AirQualityTelemetryModule being created if the PM25AQI header is missing
* Link in power sensor libraries
* more ini tweaks
* Add =1 to EXCLUDE defines, fix indentation.
* Drop HAS_WIRE in ini, it's defined in architecture.h
* Fix build when power sensor libraries are missing
Make MAX sensor integration into Power.cpp optional based on its library header existing.
Also make NullSensor expose a voltage and current sensor, because Power calls directly into these for INA sensors.
This lets us remove all the deps for the STM32WL platform.
* Change default I2C for RAK3172 to be I2C1, not I2C2
* Respect the laws of mathematics (oops)
2025-07-02 06:01:45 -05:00
Ben Meadors
f769c50fa5
More reduction ( #5256 )
...
CI / setup (rp2040) (push) Waiting to run
CI / setup (stm32) (push) Waiting to run
CI / check (push) Blocked by required conditions
CI / build-esp32 (push) Blocked by required conditions
CI / build-esp32-s3 (push) Blocked by required conditions
CI / build-esp32-c3 (push) Blocked by required conditions
CI / build-esp32-c6 (push) Blocked by required conditions
CI / build-nrf52 (push) Blocked by required conditions
CI / build-rpi2040 (push) Blocked by required conditions
CI / build-stm32 (push) Blocked by required conditions
CI / package-raspbian (push) Waiting to run
CI / package-raspbian-armv7l (push) Waiting to run
CI / package-native (push) Waiting to run
CI / after-checks (push) Blocked by required conditions
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
Flawfinder Scan / Flawfinder (push) Waiting to run
* Now with even fewer ings
* Ye
* Mo
* QMA6100PSensor
2024-11-04 19:15:59 -06:00
Ben Meadors
50dac38a1b
Pass#2: Lots more savings in logs and string reduction surgery ( #5251 )
...
CI / setup (rp2040) (push) Waiting to run
CI / setup (stm32) (push) Waiting to run
CI / check (push) Blocked by required conditions
CI / build-esp32 (push) Blocked by required conditions
CI / build-esp32-s3 (push) Blocked by required conditions
CI / build-esp32-c3 (push) Blocked by required conditions
CI / build-esp32-c6 (push) Blocked by required conditions
CI / build-nrf52 (push) Blocked by required conditions
CI / build-rpi2040 (push) Blocked by required conditions
CI / build-stm32 (push) Blocked by required conditions
CI / package-raspbian (push) Waiting to run
CI / package-raspbian-armv7l (push) Waiting to run
CI / package-native (push) Waiting to run
CI / after-checks (push) Blocked by required conditions
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
Flawfinder Scan / Flawfinder (push) Waiting to run
* Pass#2: Lots more savings in logs and string reduction surgery
* Don't need Thread suffix either
* Warn
2024-11-04 12:16:25 -06:00
Thomas Göttgens
05e4a639a1
remove newline from logging statements. ( #5022 )
...
remove newline from logging statements in code. The LOG_* functions will now magically add it at the end.
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2024-10-14 15:11:43 +11:00
Ben Meadors
e8829b8f52
Refactor and consolidate time window logic ( #4826 )
...
* Refactor and consolidate windowing logic
* Trunk
* Fixes
* More
* Fix braces and remove unused now variables.
There was a brace in src/mesh/RadioLibInterface.cpp that was breaking
compile on some architectures.
Additionally, there were some brace errors in
src/modules/Telemetry/AirQualityTelemetry.cpp
src/modules/Telemetry/EnvironmentTelemetry.cpp
src/mesh/wifi/WiFiAPClient.cpp
Move throttle include in WifiAPClient.cpp to top.
Add Default.h to sleep.cpp
rest of files just remove unused now variables.
* Remove a couple more meows
---------
Co-authored-by: Tom Fifield <tom@tomfifield.net>
2024-09-23 08:58:14 -05:00
Todd Herbert
1487ca2a30
Tidier macros
2024-09-24 00:25:43 +12:00
Todd Herbert
11598beb16
Implement optional second I2C bus for NRF52840
...
Enabled at compile-time if WIRE_INFERFACES_COUNT defined as 2
2024-09-24 00:25:43 +12:00
Ben Meadors
11378325e0
Separate GPS and NTP RTCQuality logic and allow GPS time to always set us ( #4721 )
2024-09-17 06:29:18 -05:00
Ben Meadors
35cfe4318a
Stop past timestamps from setting our system time RTC ( #4704 )
...
* Ignore attempts to set times in the past (before our build epoch)
* TRONK
2024-09-13 19:42:31 -05:00
zerolint
6724f1f7ea
Print Unix epoch on time_t 64bit platforms ( #4673 )
...
Fixes (#4600 ) by using unsigned 32bit for epoch.
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2024-09-10 15:51:28 -05:00
Ben Meadors
464f270b12
More explicit guards for attempting to set RTC ( #4452 )
...
* Guard against timesources from the mesh if we have good time
* Trunk
* Consider phone time in the past 24 hours authoritative as well
* Rename
* GPS can be null
* Declaration
* Remove RemoteHardware
* Explicitly remove GPS
* Exclude GPS earlier for RAK2560
2024-08-13 06:56:20 -05:00
Jonathan Bennett
a7da3537e2
Adds MESHTASTIC_EXCLUDE_TZ option ( #4423 )
2024-08-09 00:52:31 -05:00
Jonathan Bennett
54bccb898e
Run tzset() and localtime() in getTZOffset() to ensure proper timezone offset ( #3999 )
...
* Run tzset() and localtime() in getTZOffset() to ensure proper timezone offset
* Try #2 to fix timezone/DST
2024-05-31 07:15:16 -05:00
andrew-moroz
77cf5c6200
Fix time updates from client device and potentially incorrect UI frame receiving 'toggle watch face' button tap ( #3974 )
2024-05-26 07:04:31 -05:00
todd-herbert
dfcabba0b2
Prevent overflow when calculating timezones ( #3730 )
2024-04-26 20:43:09 -05:00
Ben Meadors
39bbf0d352
Added more clear RTC handling and quality logging ( #3691 )
...
* Also refresh timestamp for "timeonly" fixed position nodes
* Added more clear RTC quality handling
* Fix clock drift from Phone GPS / NTP too
2024-04-21 14:40:47 -05:00
Thomas Göttgens
ea61808fd9
tryfix: use UTC on Phone API ( #3576 )
2024-04-08 17:26:23 -05:00
Thomas Göttgens
65e5bdc212
display log and onscreen times in local timezone
2024-04-08 00:10:54 +02:00
GUVWAF
ba021c97b2
Pico W: Handle Wi-Fi reconnects and update core ( #2994 )
...
* Fix time lost on the Pico W right after NTP
Shouldn't check for `#ifdef` as it will always be defined, but might be set to 0
* Handle reconnect for Wi-Fi on RP2040
* Update arduino-core for Wi-Fi + FreeRTOS fixes
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2023-12-06 15:49:56 -06:00
Jonathan Bennett
1a2c7f00e1
Gps cleanup and powersave ( #2807 )
...
* Refactor GPS to not probe if pins not defined
* Use Named Constructor to clean up code
* Move doGPSPowerSave to GPS class
* Make sure to set GPS awake on triple-click
* Cleanup and remove dead code
* Rename GPS_PIN_WAKE to GPS_PIN_STANDBY
* Actually put GPS to sleep between fixes
* add GPS_POWER_TOGGLE for heltec-tracker and t-deck
* Change GPS_THREAD_INTERVAL to 200 ms
* More dead code, compiler warnings, and add returns
* Add Number of sats to log output
* Add pgs enable and triple-click config
* Track average GPS fix time to judge low-power time
* Feed PositionModule on GPS fix
* Don't turn off the 3v3_s line on RAK4631
when the rotary is present.
* Add GPS power standbyOnly option
* Delay setting time currentQuality
to avoid strange log message.
* Typos, comments, and remove unused variable
* Short-circuit the setAwake logic on GPS disable
* heltec-tracker 0.3 GPS power saving
* set en_gpio to defined state
* Fix fixed_position logic with GPS disabled
* Don't process GPS serial when not isAwake
* Add quirk for Heltec Tracker GPS powersave
---------
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: mverch67 <manuel.verch@gmx.de>
Co-authored-by: Manuel <71137295+mverch67@users.noreply.github.com>
2023-09-23 23:45:35 -05:00
Thomas Göttgens
e0bf15b80e
trunk fmt
2023-08-03 10:05:38 +02:00
Jm Casler
5f38e79b8f
Add documentation to a few areas
2023-08-03 10:05:38 +02:00
luzpaz
003047baaf
Fix various typos ( #2607 )
...
* Fix various typos
Found via `codespell -q 3 -L acount,clen,dout`
* Trunk reformatting
---------
Co-authored-by: code8buster <communismisgreat@national.shitposting.agency>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2023-07-14 16:25:20 -05:00
A. Rager
e6d69e2b67
Refactor i2cScan.h To Handle 2 Bus ( #2337 )
...
* Break i2cScan out into a set of classes for scanning i2c
* refactor i2cscan addresses to be structs that allow addressing by port + address
* build whoopsies
* trunk fmt
* trunk fmt
* lost some build fixes from the merge
* more cleaning for build safety, RTC behavior
2023-03-08 21:13:46 -06:00
Thomas Göttgens
51b2c431d9
trunk roundhouse kick
2023-01-21 21:23:24 +01:00
Ben Meadors
0b5cae5393
Log levels refactoring
2022-12-29 20:41:37 -06:00
Thomas Göttgens
6a696af8f6
Revert "remember which devices were scanned on which bus and set them accordingly." - this is not working at all.
2022-11-13 14:56:52 +01:00
Thomas Göttgens
861ded37db
remember which devices were scanned on which bus and set them accordingly.
2022-11-12 17:12:40 +01:00
lewishe
cd95d0865f
Repair the sharing of Wire1 between RTC and PMU in tbeams3
2022-11-12 15:12:53 +08:00
Thomas Göttgens
7f0fb2a2b6
Move file to right spot in source tree
2022-09-28 20:13:41 +02:00
majbthrd
ade32b1827
lay groundwork for a possible future architecture ( #1571 )
...
* lay groundwork for a possible future architecture
* switch from feature opt-out to feature opt-in
* lay groundwork for a possible future architecture
* switch from feature opt-out to feature opt-in
* fix USE_RTC in variant.h for rak4631_epaper and t-echo
* ensure Screen.h is not included without configuration.h
Co-authored-by: Peter Lawrence <12226419+majbthrd@users.noreply.github.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2022-07-31 07:11:47 -05:00
Thomas Göttgens
4d611ba2f0
Forgot the readFromRTC for PCF8563 (T-Echo)
2022-05-04 17:06:06 +02:00
Thomas Göttgens
516dff5b09
RTC Module support for T-Echo and others with PCF8563
2022-04-28 08:18:03 +02:00
Thomas Göttgens
9e97fac252
- implement generic support for on-device battery powered RTC Modules.
...
- implement support for I2C RV-3028 based RTC modules like the RAK12002
- pretty print some debug timestamps
2022-04-27 11:05:08 +02:00
Kevin Hester
f40c6f21d4
fix portduino rtc
2021-05-03 09:30:03 +08:00
Kevin Hester
a9c8564524
fix millisecond unsigned rollover errors found via portduino
2021-03-30 23:11:33 +08:00
Vadim Furman
d93d5d2e37
Revert clock update for Net quality clocks
2021-03-19 17:21:08 -07:00
Vadim Furman
98d878cdfe
Port to lora_isp4520 board
2021-03-14 19:00:20 -07:00
Wei Fang
279c89dca3
Shall upgrade RTC currentQuality if higher q available
2020-12-30 21:46:43 -08:00
Kevin Hester
21570fc24f
fix #540 use gps to fix rtc clock drift every 12 hrs
2020-12-27 12:54:44 +08:00
Kevin Hester
4a70ba1f7a
fix nodeinfo stored times (I think) for @lgoix
2020-10-09 10:01:13 +08:00
Kevin Hester
023f1c24fb
RTC: add notion of 'quality' for different time sources
...
Allow use of mesh based time until a GPS time arrives
2020-10-08 07:46:20 +08:00
Kevin Hester
f00d07baa3
RTC: pull rtc code into own file for cleanup
2020-10-08 07:28:57 +08:00