Commit Graph
945 Commits
Author SHA1 Message Date
Jarosław Domański fc660cc061 Fix RX_EN handling during RX power saving 2026-08-10 14:50:34 +02:00
Jarosław Domański a1d632d16c Stop RX duty-cycle before CAD to avoid main-loop hang.
CAD on a still-running SX126x duty-cycle sequencer can lose CAD-done IRQ when the RTC knocks the chip back to standby, leaving scanChannel() waiting forever.
2026-07-25 14:57:11 +02:00
Jarosław Domański 5d793ed682 Fixed RX duty-cycle packet metadata handling (last message snr and rssi now should be good) 2026-07-18 02:08:34 +02:00
Jarosław Domański b68aa103df Fixed LR1110 RX duty-cycle setup and calibration. Noise floor calibration is now performed right after radio module start. 2026-07-18 01:50:37 +02:00
Jarosław Domański 0af1bf14c5 Added RX duty-cycle noise floor calibration again (this time it works!) 2026-07-17 15:21:25 +02:00
Jarosław Domański 6582e8451f Improved RX duty-cycle watchdog observation with esp32 sleep in mind 2026-07-17 15:21:25 +02:00
Jarosław Domański ce7d7d4210 Added RX duty-cycle watchdog recovery 2026-07-17 15:21:25 +02:00
Jarosław Domański f5be585a41 Fixed RX power saving RSSI sampling during listen windows 2026-07-17 15:21:25 +02:00
Jarosław Domański 8c634ab72f Fixed RX duty-cycle rearming and profile timings 2026-07-17 15:21:25 +02:00
Jarosław Domański 5d650e4913 Added RX duty-cycle power saving support 2026-07-17 15:21:25 +02:00
Kevin Le 38509583fa Fixed typo at Get methods for GPS 2026-07-16 22:59:51 +07:00
Kevin Le cd8711f507 Show hours and minutes in PowerSaving GPS and add _sensors->powersaving_enabled 2026-07-16 19:31:39 +07:00
Kevin Le 16fbf33582 PowerSaving GPS version 1 for repeaters 2026-07-16 18:48:39 +07:00
Kevin Le 46c729b2e9 Fixed powerOff at uA for Esp32C6 and station g3 2026-07-06 09:16:50 +07:00
Kevin Le 1976494d7b PR 1727: Added get/set cad. Added # channel busy. 2026-06-24 22:03:35 +07:00
Kevin Le 1d1cba676c Skip agc reset if in STATE_TX_WAIT 2026-06-24 21:49:53 +07:00
Kevin Le 22e45d559d Power off board including radio, display, GPS and components 2026-06-20 12:17:40 +07:00
Kevin Le 19efda9f2e Reverted code change to GPS 2026-06-12 21:19:05 +07:00
Kevin Le e0733f8346 Added 0x77 for ENV_INCLUDE_BME680_BSEC 2026-06-09 11:34:36 +07:00
Kevin Le e67933ca2a PowerSaving 16 2026-06-08 21:11:49 +07:00
Scott Powell 5f6821bb66 * new CLI config: flood.max.advert (default 16) 2026-06-06 13:09:24 +10:00
Liam Cottle da21d42a2e Merge pull request #2672 from meshcore-dev/non-contact-requests
Non contact requests
2026-06-04 16:05:47 +12:00
Liam Cottle b83355e702 Merge pull request #2671 from sefinek/fix/typos-grammar-formatting
Fix typos and formatting in documentation and comments
2026-06-04 15:57:48 +12:00
ripplebiz 6be398d748 Merge pull request #2663 from oltaco/no-autoshutdown-when-powered
Disable auto-shutdown when externally powered, add auto-shutdown warning for OLED displays
2026-06-04 13:42:00 +10:00
Scott Powell 3c96a7de43 * powersaving on/off lowercase fix 2026-06-04 13:36:18 +10:00
ripplebiz 999e20a4c2 Merge pull request #1687 from IoTThinks/MCdev-PowerSaving-for-all-esp32-repeaters-202602
Added PowerSaving for all ESP32-based repeaters
2026-06-04 13:31:51 +10:00
Liam Cottle cb73a4a156 Merge pull request #2022 from weebl2000/adjust-max-framesize
Increase MAX_FRAME_SIZE by 4 bytes
2026-06-03 19:58:01 +12:00
Kevin Le aeca6f3f3f Added "override" to getIRQGpio() for ESP32Board.h 2026-06-03 14:10:28 +07:00
Sefinek cc05ae555a docs: fix typos, grammar, and formatting in FAQ and code comments 2026-06-02 22:12:18 +02:00
taco 5e3edd0bbc add bool isEink() for eink display drivers 2026-06-02 18:36:07 +10:00
Scott Powell f66c1d0258 * simplified the new flood.max.unscoped pref 2026-06-02 14:15:33 +10:00
Chris Barker a33f3011a5 Feat: Adds flood.max.unscoped setting
Before this commit, there was no way to set a different max hop count
for unscoped messages.

Now with this change, by defaul it tracks the flood.max setting, until
a user provides a flood.max.unscoped value, which tax precidence for
packets if ROUTE_TYPE_FLOOD is true.
2026-06-01 21:30:17 +01:00
taco f701b58b4b NRF52Board: ungate isExternalPowered() 2026-06-02 00:53:00 +10:00
Scott Powell bc5d648204 * contacts sync fix
* fix for reusing transient/anon contacts only
2026-06-01 19:04:42 +10:00
Scott Powell d9df8307ca * first draft 2026-06-01 16:49:31 +10:00
ripplebiz bb6cf8396d Merge pull request #2634 from NickDunklee/bme680-fixes-consolidation
feat: Integrate BME680 Bosch BSEC support for RAK4631
2026-06-01 13:35:32 +10:00
Nick Dunklee f86e6c019c 8 hour save window, LP, 28 day calibration window 2026-05-28 18:35:22 -06:00
Kevin Le 36a44de119 Reduced time drift from 60s/day to 7s/day for ESP32-based repeaters with power saving. 2026-05-28 15:13:14 +07:00
Kevin Le f4c43f7eb7 Fixed Interrupt WDT Reset 2026-05-28 15:13:14 +07:00
Kevin Le 21455e6296 Gave MCU to OTA to run in inhibit_sleep 2026-05-28 15:13:14 +07:00
Kevin Le daaeaafca1 Moved LoRa GPIOs to platformio.ini for TBeam boards 2026-05-28 15:13:14 +07:00
Kevin Le 570ff77569 Supported sleep for all ESP32-based repeaters 2026-05-28 15:10:36 +07:00
Kevin Le 3621038b7b Added detailed response for powersaving CLI 2026-05-28 15:10:36 +07:00
Nick Dunklee e501704d2c Am idiot, and deleted some of the adafruit code path
I put it back and test-compiled a few builds.
2026-05-27 16:28:15 -06:00
Nick Dunklee 59cee5c8a0 feat: Integrate BME680 Bosch BSEC support for RAK4631
This is a consolidation of my changes for BME680 on RAK4631 nodes.
I will close my other PRs related to this and link back to this one.

*Background on change:*

This change replaces the Adafruit BME680 driver on RAK4631 with the
Bosch BSEC library. Other boards continue to use the existing
Adafruit path via ENV_INCLUDE_BME680.

This makes the IAQ portion of the sensor functional, and more accurate.
It also contains the math and/or CayenneLPP fixes from my other PRs.
The Bosch code also appears to handle calibrating sensor aging as well,
whereas the Adafruit code is just looking at blind values that can drift
with time. Pretty cool to see this shooting out useful data!

RAK4631 platform.io is set to override to ENV_INCLUDE_BME680_BSEC while
leaving the Adafruit code for other node types. (If this becomes applicable
for other node types in future, awesome! I just don't have hardware
to test against.)

Using the BSEC library introduces IAQ sensor calibration, and saves
the calibration state periodically so it does not have to calibrate
again later.

At startup the IAQ sensor takes 30 minutes to heat and to hit a baseline,
then starts calibrating. Once calibrated, it will save those settings
and will only write settings again if calibration falls back and restores
back to state 3.

This fix also has the gas resistance math fix that was in
[pull 2146](https://github.com/meshcore-dev/MeshCore/pull/2146) so
the adafruit path also can at least show accurate values instead
of looping negative.

Also includes the fix from [pull 2149](https://github.com/meshcore-dev/MeshCore/pull/2149) so the pressure output isn't truncated to 1hPa steps.

*Fixes/Changes:*
- Add bsec_config_iaq[] with the 3.3V/3s-LP/28d calibration profile
- BSEC init applies setConfig() for voltage-correct heater targeting
- IAQ, heat-compensated temperature/humidity, pressure, and altitude
  reported over CayenneLPP
- IAQ accuracy reported as analog input over CayenneLPP (0,1,2,3)
- Calibration state persisted to /bsec_state.bin on nRF52 internal
  flash; written only when iaqAccuracy improves to >= 2, should
  keep write frequency well within flash endurance over device lifetime
- Fix non-BSEC query_bme680: float pressure division, addGenericSensor
  for gas resistance (was addAnalogInput, overflows at > 327 Ohm)
- loop() correctly gated for both GPS and BSEC-only builds
- Add fix_bsec_lib.py extra_script to resolve nRF52840 hard-float ABI
  mismatch in Bosch's PlatformIO packaging, silly Bosch

One general note outside of this code change: I noticed while BME680
_functions_ in companion nodes, since companion nodes run Bluetooth,
BLE preempts the CPU, and can do so mid-I2C-transaction.

This can cause the BME680 to see an anomaly and drop calibration and
start a recalibrate. This is behavior that will exist (and has existed)
regardless of using the Adafruit or Bosch paths.

This particular companion behavior does not seem to occur in sensor
or repeater nodes since their BLE is off. Probably affects other
I2C devices as well.

*Tests:*

- RAK19003
- RAK19007
- RAK19001
- repeater, sensor, companion
2026-05-27 15:33:48 -06:00
Wessel Nieboer 62f1b11d5b Increase MAX_FRAME_SIZE by 4 bytes
It's the safest fix for now to fix region scoped messages from being
dropped early
2026-05-26 11:51:14 +02:00
Rafał Wojdyła eb53c61f17 Respect predefined I2C addresses in EnvironmentSensorManager 2026-05-24 13:16:50 +02:00
fdlamotte 73c7718b9e Merge pull request #2235 from jirogit/fix/lr1110-rxgain-cli-guard
fix: enable radio.rxgain CLI command for LR1110 (T1000-E)
2026-05-24 11:56:23 +02:00
ripplebiz e251dc1659 Merge pull request #2540 from agessaman/feat/regions-quick-loasd
Add bulk region hierarchy command to CLI
2026-05-23 18:37:28 +10:00
Liam Cottle a35b1bbbfd Merge pull request #2590 from jocasmark/fix/typos
Fix typos in comments and docs
2026-05-22 19:38:19 +12:00