Commit Graph
5219 Commits
Author SHA1 Message Date
Wessel Nieboer 35142a8896 Fix 1970 date after crash/watchdog/brownout reset on ESP32
Currently, time is only set to ~2024 when it powers on cleanly. When
time is lost, this results in time dropping to 1970. Save time as backup
to RTC slow memory. Should fix time staying accurate during brownouts
etc.
2026-09-07 11:16:08 +02:00
mikecarper de97b7a413 Report nRF52 LoRa mOTA capabilities and storage requirements 2026-09-06 23:50:24 -07:00
mikecarper 8afa4fb8af Restore and share firmware picker selections through URLs 2026-09-06 21:43:13 -07:00
mikecarper 2398004e67 Clarify RAK firmware picker storage choices 2026-09-06 21:31:44 -07:00
mikecarper d17241ec66 Add common search terms to command and feature documentation 2026-09-06 21:25:17 -07:00
mikecarper a41a3ee1e3 Clarify direct retry count and text-message exception 2026-09-06 20:56:57 -07:00
Scott Powell d71a54cd3d * CLI: removed "sub" and "unsub" (cannot support via command line)
* _SUBSCRIBE: binary req/resp payload changes (now keeps supplied 'push_tag')
* Sensor: added MCU temperature support in telemetry
2026-09-07 13:56:47 +10:00
Michael Graff 7c2b4d88be WiFi on/off tri-state: on when SSID set unless explicitly disabled; PicoW ships no default SSID 2026-09-06 22:18:00 -05:00
Michael Graff dac171b49c Default wifi.enabled to 0 2026-09-06 22:05:29 -05:00
Michael Graff eb2ab10de0 Add wifi.enabled pref and CLI; skip WiFi when disabled or SSID blank 2026-09-06 21:56:25 -05:00
Michael Graff 98cf4f3332 Add get wifi.status and get wifi.ip CLI commands 2026-09-06 21:44:47 -05:00
Michael Graff b11a779843 Address review: per-variant wifi src, real SSID reply, rename PicoW env 2026-09-06 21:28:04 -05:00
Michael Graff b9fa450f52 Fix review findings on Pico W WiFi/BLE 2026-09-06 20:43:37 -05:00
Adam Gessaman a98781cccb Merge pull request #51 from stphnrdmr/sr-add-bsmesh
Add BSmesh.de preset
2026-09-06 18:20:05 -07:00
Michael Graff 88cc014f55 Add BLE companion support for Pico W 2026-09-06 20:15:45 -05:00
ripplebiz 89ef200efa Merge pull request #3366 from recrof/companion-cli-fix-2
Companion CLI: fixed txdelay, direct.txdelay, agc.reset.interval, int.thresh
2026-09-07 10:42:48 +10:00
mikecarper 3d40a59fba Add optional chip-family filter to firmware picker 2026-09-06 11:38:13 -07:00
Stephan Rodemeier 4bbe3bf62b Add BSmesh.de preset 2026-09-06 20:09:08 +02:00
Rastislav Vysoky 5d82ed352c Companion CLI: fixed txdelay, direct.txdelay, agc.reset.interval, int.thresh 2026-09-06 15:14:35 +02:00
mikecarper b301d751fd Show role-specific feature commands in firmware picker 2026-09-06 04:52:02 -07:00
IoTThinks e76da0fefa Merge pull request #17 from Dom4n/rxps_v2
RXPS v2
2026-09-06 14:32:56 +07:00
mikecarper ccf38cd41f Update Mesh America catalogs to 1.17.1.5 USA Cascade 2026-09-05 23:15:08 -07:00
mikecarper e4b4eed066 docs: document role feature switches and audit 1.17.1.5 guidance 2026-09-05 23:01:58 -07:00
Michael Graff d33fb4e9a7 Fix config parser aborting on an empty object
'custom:{}' (a DynamicConfigSerializer with nothing set) hits EXPECT_KEY
with a '}' and returns TOK_ERROR, so loadSerial stops there and silently
drops every property after it. Nothing follows 'custom' in NodePrefs
today, so it goes unnoticed until you add one.

Also include stdlib.h, which Arduino.h was providing on-device but not
in the native test build.
2026-09-05 23:15:13 -05:00
Michael Graff a4ac85a0d6 Address review findings on WiFi companion support
- scope the serial config CLI to RP2040; it was exposing the rescue CLI
  (cat/rm/erase) on every ESP32 WiFi build, which gates it behind a
  physical long-press
- bound and space out RP2040 rejoins: the core's join busy-waits, so cap
  it at 5s and retry every 30s instead of every 10s
- stamp the reconnect timer in setup(), so the first loop() doesn't tear
  down an association that is still finishing DHCP
- treat stored credentials as a pair, and pass NULL (not "") for an open
  network
- teach build_as_lib.py where SerialWifiInterface moved
2026-09-05 23:15:13 -05:00
Michael Graff 58181bb8a2 Fix blocking WiFi connect on RP2040, log link state
arduino-pico's WiFi.begin() blocks for up to 2x its 15s timeout, which
stalled the mesh loop on every reconnect attempt; use beginNoBlock().
Log the IP when the link comes up, and the status code when retrying.
2026-09-05 23:15:13 -05:00
Michael Graff 739a67c9f1 Allow WiFi credentials to be set at runtime
Store ssid/pwd in NodePrefs and set them with 'set wifi.ssid' /
'set wifi.pwd' over USB serial; build-time WIFI_SSID/WIFI_PWD stay as
the fallback. Headless WiFi builds get the config CLI on Serial, which
is otherwise unused there.
2026-09-05 23:15:13 -05:00
Michael Graff 0b2c47a932 Add WiFi companion support for Pico W
SerialWifiInterface has no ESP32-specific code, so move it to
helpers/wifi and reuse it on RP2040. Guard the ESP32-only WiFi
event/auto-reconnect calls and poll link state on RP2040 instead.
2026-09-05 23:15:13 -05:00
Adam Gessaman eee39709ed Merge pull request #50 from agessaman/feat/station-g3-r2-slot
feat(station-g3): add second RF slot (r2) build targets
2026-09-05 14:27:23 -07:00
mikecarper d6e61e0f33 Stage 1.17.1.5 local release assets and document OTAFIX 2.4.6 2026-09-05 14:04:39 -07:00
agessaman fa5ba6fa5c feat(station-g3): add second RF slot (r2) build targets
The motherboard has two RF daughterboard slots on separate GPIOs, mirrored by
its "LNA P" / "LNA S" jumpers, but the variant only ever pinned slot 1.

The shared configuration moves into [Station_G3_ESP32_common], with the SPI and
LNA lines split into per-slot sections. [Station_G3_ESP32] (slot 1) and
[Station_G3_ESP32_r2] (slot 2) each compose common + their own pins, so neither
set of -D flags has to shadow the other on the compile line - appending an
override would work only by last-wins, and esp32_base's -w hides the resulting
redefinition warning. Every pre-existing env keeps its name and resolves to
byte-identical options; verified by diffing pio project config --json-output.

PA PL1 is one board-level jumper shared by both slots, so P_PA1_EN stays in the
common section along with the TX power calibration.

Adds r2 twins of the repeater, room server and both observer envs, each an exact
mirror of its slot-1 sibling apart from the base it extends.

Slot 2 pins come from on-hardware testing in agessaman/MeshCore#49 and are not
documented publicly; the vendor wiki serves no content to fetchers.

Known limitation, unchanged from that PR: GPIO 42 and 43 fall outside the
ESP32-S3 RTC GPIO range (0-21), so the rtc_gpio_hold_en() calls in
ESP32Board::enterDeepSleep() and StationG3Board::powerOff() return
ESP_ERR_INVALID_ARG on slot 2 and the NSS and LNA pins are not latched through
deep sleep. Fixing it means gpio_hold_en() plus gpio_deep_sleep_hold_en() in
shared code.
2026-09-05 12:14:29 -07:00
mikecarper 2d50bad70a Add retained-RAM staging for nRF52 mOTA 2026-09-05 12:08:21 -07:00
mikecarper 9155ea58c9 Keep classic ESP32 release profiles within their measured RAM budgets 2026-09-05 10:27:07 -07:00
mikecarper 55f59e13c0 Match Halo Keymind Cascade dev release naming and include WM1110 DFU packages 2026-09-05 09:08:42 -07:00
mikecarper a2c3761700 Prepare 1.17.1.5 USA Cascade release and verify update capabilities 2026-09-05 08:59:50 -07:00
mikecarper 8995675e1c Enforce classic ESP32 memory budgets and safe image merging 2026-09-05 08:22:56 -07:00
Scott Powell 62d0556a70 * added region load/save support
* SUBSCRIBE now with timeout param (default 30 mins, max ~18 hours)
2026-09-05 15:59:29 +10:00
Kevin Le 111028ac6c Added sensor build 2026-09-05 11:08:29 +07:00
mikecarper b724d19d6f Protect ESP32 HWCDC console sessions 2026-09-04 17:18:54 -07:00
agessaman 6c1f4c09a6 Fix T-Beam 1W fan races and remove PWM controls 2026-09-04 16:51:53 -07:00
agessaman 8fd6893117 feat: add T-Beam 1W thermal fan control 2026-09-04 16:03:41 -07:00
Jarosław Domański 6bbd34a296 RXPS: use measured preamble-symbol capture model 2026-09-05 00:02:13 +02:00
mikecarper 36435b450f Test FEM gain across CLI firmware roles 2026-09-04 14:01:36 -07:00
João Brázio 8a418faf93 Add isGPSDetected() capability probe to SensorManager
Lets applications know whether a GPS was actually detected
(EnvironmentSensorManager reports its gps_detected state), e.g. to
hide GPS-dependent UI when no receiver is attached.
2026-09-04 21:04:20 +01:00
João Brázio 1d5283de76 Improve null checks and index validation in StaticPoolPacketManager 2026-09-04 21:03:06 +01:00
mikecarper 0268c43d12 Add FEM noise-floor hardware test 2026-09-04 12:03:33 -07:00
João Brázio 95214e8c40 Ensure command buffers stay NUL-terminated to prevent overflow
The serial command buffers must stay NUL-terminated within their
bounds: if they ever aren't, strlen() can return >= sizeof(command)
and the read loop would index past the buffer. Additionally, a full
buffer now becomes a completed line (end-of-line marker placed
inside the buffer, NUL terminator kept) instead of overwriting the
terminator and silently corrupting the buffer for the next pass.

Applies to the serial CLI readers of the repeater, room server,
sensor and secure chat examples, and to the CLI rescue reader of
the companion example.
2026-09-04 20:01:39 +01:00
mikecarper fe10ce4ea4 Route reduced ESP32 overflow aliases to Full 2026-09-04 11:41:01 -07:00
agessaman a0188bd174 fix(network): harden Ethernet-preferred lifecycle 2026-09-04 08:42:46 -07:00
mikecarper 1e32abc41e Fix constrained logging matrix builds 2026-09-04 08:34:34 -07:00