Commit Graph
305 Commits
Author SHA1 Message Date
Robert Ekl f66ff1d13f docs: correct stale CLI default values
Five "Default:" values in cli_commands.md no longer matched the firmware:

- radio / freq: the default preset moved to EU/UK (Narrow) in b777a7c6,
  changing LORA_FREQ/BW/SF from 869.525/250/11 to 869.618/62.5/8
  (platformio.ini:29-31). No variant overrides these, and LORA_CR is 5
  on every path, so the full preset is 869.618,62.5,8,5.
- flood.advert.interval: raised to 47 hours in 40180b8f for both repeater
  and room server; sensor leaves it disabled.
- advert.interval: prefs store minutes/2 and the getter doubles on read, so a
  factory-fresh node reports 2, not 0. But savePrefs() zeroes any interval
  below the 60 minute minimum (CommonCLI.cpp:162-165), and it is called from
  every `set` handler -- so the value becomes 0 as soon as the node is
  configured. Documented both states, since neither alone is the whole story.
- direct.txdelay: repeater defaults to 0.3, room server and sensor to 0.2.

Sources: platformio.ini:29-31, simple_repeater/MyMesh.cpp:893,903-904,
simple_room_server/MyMesh.cpp:650,661-662, simple_sensor/SensorMesh.cpp:716,
726-727, CommonCLI.cpp:162-165,680-681.
2026-09-02 11:31:24 -05:00
mikecarper 5af7b73ff9 Add safe ESP32 transports and Indicator UI
Reserve board-specific GPIOs, make ESP-NOW channel/format handling configurable, and coordinate WiFi, BLE, NTP, MQTT, and host actions safely.

Add the Indicator message page, exclusive transport selector, dynamic 480/320 rendering, larger transport typography, pairing cleanup, and corresponding tests and documentation.
2026-08-31 14:29:42 -07:00
mikecarper 8920c35da5 Harden marathon-tested OTA and hardware paths
Add durable TempRadio, ACL, clock, bridge, GPS/I2C, USB logging, and Indicator recovery safeguards together with expanded automation, build/profile contracts, release metadata, and the hardware validation ledger.
2026-08-30 19:26:15 -07:00
mikecarper 11e70a5b32 fix: stabilize primary ESP-NOW WiFi coexistence 2026-08-28 21:01:17 -07:00
mikecarper da61c48e7b feat: integrate R8 observer and companion updates 2026-08-28 18:39:26 -07:00
mikecarper 89c12d416e refactor: use companion CLI for hardware settings 2026-08-28 17:37:39 -07:00
mikecarper c24bc82814 Merge upstream dev companion CLI updates 2026-08-28 17:31:28 -07:00
mikecarper 2b3b93ab2f fix: harden ESP-NOW and full companion networking
Add selectable shared ESP-NOW channels, raw/wrapped bridge compatibility, and bounded fragmentation for maximum-size packets.\n\nGive ESP32 Full profiles WiFi coexistence, stabilize WebConfig and USB terminal lifecycles, and keep disabled bridges stopped during observer updates.\n\nUpdate generated UI, firmware selection, documentation, and regression coverage.
2026-08-28 16:36:34 -07:00
agessaman 6b55ab0fde docs: document display.timeout and display.flip
Adds both settings to docs/cli_commands.md in the existing format, and records
the R8 dashboard, display controls and the two hardware fixes in the changelog.

The display.flip entry calls out that it is persisted config which survives a
firmware update, since a node still carrying flip=1 from testing looks exactly
like a firmware whose orientation was never fixed.
2026-08-28 16:06:16 -07:00
mikecarper c6476b8ba8 feat: consolidate full companion runtime profiles 2026-08-28 08:47:26 -07:00
mikecarper e5fd77e53f feat: add Bluetooth-controlled LoRa OTA
Add the framed BLE mOTA transport and companion control path, complete the full-profile build and runtime fixes, and document and test the OTA workflow.
2026-08-27 01:22:18 -07:00
mikecarper 91870e4bb0 fix: harden firmware builds and runtime reliability 2026-08-26 15:42:12 -07:00
mikecarper 9bc95a60fe fix: default advert location to stored preferences 2026-08-25 23:47:40 -07:00
mikecarper 131bbafc67 feat: retain multi-channel voltage telemetry 2026-08-25 22:51:22 -07:00
mikecarper ad1ff3f03e feat: order flood rules by channel specificity 2026-08-25 21:58:08 -07:00
mikecarper febbadbc32 docs: explain Public hash exemption ordering 2026-08-25 21:48:16 -07:00
mikecarper 605b245eb5 feat: add selective flood retry rules 2026-08-25 21:38:23 -07:00
mikecarper 9d57a3a4f8 feat: complete Cascade Indicator companion support
Add native-resolution Indicator UI, touch navigation, SD-backed pixel and emoji fonts, LoRa radio support, dual-slot WiFi Companion provisioning, and mesh clock fallback. Harden radio recovery and build defaults, normalize ESP32 setup-AP protocols, and document/test the operator workflows.
2026-08-25 18:37:17 -07:00
mikecarper 1792acda6a Harden external radio recovery and power limits 2026-08-25 10:27:26 -07:00
mikecarper 7077283e95 Make RXPS preamble adaptive for fast radio settings 2026-08-24 20:42:54 -07:00
mikecarper da74d7de22 Qualify optional 64-symbol fast preamble 2026-08-24 16:54:35 -07:00
mikecarper ba70c5b3c6 Harden fast RXPS timing and board behavior 2026-08-24 15:10:54 -07:00
mikecarper dc92ee61ef Expand and harden full companion profiles 2026-08-24 01:57:38 -07:00
mikecarper f2d4ffbb7e Unify full firmware profiles and add dual USB logging 2026-08-23 19:22:45 -07:00
mikecarper b699e552ec Add secure host CLI bridge and harden OTA workflows
Expose the Full Companion terminal over TCP and add an authenticated, replay-resistant host command service with documented CPU temperature, reboot, and allowlisted program examples.\n\nImprove LoRa OTA diagnostics and persistent CLI handling, reduce clock correction drift to ten minutes, and make mOTA stream flush behavior an explicit transport policy with regression coverage.
2026-08-23 15:29:30 -07:00
mikecarper 3c6fee3277 Ensure full repeater packet logging 2026-08-19 16:20:24 -07:00
mikecarper a39bbbd467 Add normalradio to common CLI 2026-08-19 12:44:49 -07:00
mikecarper 47993d178e Update MeshCore features and OTA layout handling 2026-08-18 23:17:42 -07:00
mikecarper 0c4619bcc3 Expose Companion WiFi and radio power controls 2026-08-18 16:51:59 -07:00
mikecarper 818f610ba3 Fix Cascade power saving, USB Companion, and mOTA flows 2026-08-18 14:02:10 -07:00
mikecarper 32a681a59b Merge IoTThinks PowerSaving-v17
Port current-compatible power-saving updates while retaining newer local implementations.
2026-08-17 23:45:06 -07:00
mikecarper ba14fa1c32 Enable Companion power saving by default 2026-08-16 21:06:23 -07:00
mikecarper 843d309e2b Fix Companion device power saving 2026-08-15 17:58:37 -07:00
IoTThinks ca85060c42 Merge pull request #13 from Dom4n/feature/rxps-v1.17.1-clean
RX power saving using rx duty cycle
2026-08-15 17:12:54 +07:00
Kevin Le 0024226990 PS: rxps, reboot.interval, outpath 2026-08-14 23:36:52 +07:00
mikecarper a04a284a3f Merge remote-tracking branch 'review/observer-firmware' into keymindCascade
# Conflicts:
#	.github/workflows/build-observer-firmwares.yml
#	.gitignore
#	MQTT_IMPLEMENTATION.md
#	MQTT_INTERNALS.md
#	README.md
#	STABILITY_TESTABILITY_HANDOFF.md
#	docs/cli_commands.md
#	examples/companion_radio/MyMesh.cpp
#	examples/simple_repeater/MyMesh.cpp
#	examples/simple_repeater/UITask.cpp
#	examples/simple_room_server/MyMesh.cpp
#	examples/simple_room_server/UITask.cpp
#	examples/simple_sensor/SensorMesh.cpp
#	platformio.ini
#	scripts/generate_webconfig_html.py
#	scripts/webconfig_mock_server.py
#	src/helpers/CommonCLI.cpp
#	src/helpers/CommonCLI.h
#	src/helpers/JWTHelper.cpp
#	src/helpers/MQTTDefaults.h
#	src/helpers/MQTTMessageBuilder.cpp
#	src/helpers/MQTTPayloadBuilder.h
#	src/helpers/MQTTPresets.h
#	src/helpers/bridges/MQTTBridge.h
#	src/helpers/esp32/WebConfigServer.cpp
#	src/helpers/esp32/WebConfigServer.h
#	src/helpers/ui/SH1106Display.cpp
#	variants/lilygo_tbeam_SX1262/platformio.ini
#	variants/lilygo_tbeam_SX1276/platformio.ini
#	variants/lilygo_tlora_v2_1/platformio.ini
#	variants/thinknode_m7/platformio.ini
#	webui/index.html
2026-08-14 08:53:02 -07:00
mikecarper f0fe67df30 Merge remote-tracking branch 'review/PowerSaving-v16' into keymindCascade
# Conflicts:
#	build-iotthinks.sh
#	examples/simple_repeater/MyMesh.cpp
#	examples/simple_room_server/MyMesh.cpp
#	examples/simple_sensor/SensorMesh.cpp
#	src/helpers/CommonCLI.cpp
#	src/helpers/radiolib/CustomSX1262.h
#	src/helpers/sensors/EnvironmentSensorManager.cpp
#	variants/heltec_v4/platformio.ini
#	variants/heltec_v4_r8/HeltecV4R8Board.cpp
#	variants/heltec_v4_r8/HeltecV4R8Board.h
#	variants/heltec_v4_r8/platformio.ini
2026-08-14 08:22:26 -07:00
Jarosław Domański 285cf10a7a RX power saving using rx duty cycle 2026-08-14 16:11:21 +02:00
mikecarper 8ffafddd6a Add scheduled telemetry history packets 2026-08-13 00:52:17 -07:00
agessaman 7e1a94358b merge: upstream/dev into observer-firmware-dev
Brings in the external FEM gain preferences (fem_txgain, PR #3137 plus the
companion-side port), the AGC reset rxgain fix, the LR2021 preamble/IRQ
timeout logic, and assorted variant fixes (T096, T-Echo Card TCXO, promicro
pinmap, minewsemi, R1 Neo).

Conflict resolutions:

- SH1106Display: both sides fixed T-Beam Supreme startup independently. Kept
  our _initialized guard and DISPLAY_ADDRESS_ALT override, took upstream's
  SA0-pair fallback and its unconditional display.begin() so the frame buffer
  is allocated even when no panel answers.
- MyMesh/SensorMesh/CommonCLI: took upstream's fem_txgain default and wiring,
  kept our comments and the observer-side prefs layout.

Also fixes CustomLLCC68Wrapper, which upstream missed when sx126xResetAGC
gained its rx_boost_gain parameter. No variant builds that wrapper today, so
neither tree failed to compile.
2026-08-12 07:19:19 -07:00
mikecarper b80971b85f Enable mesh clock sync for infrastructure roles 2026-08-11 15:55:07 -07:00
mikecarper ea3843e0b4 Merge branch 'PowerSaving-v17' of https://github.com/IoTThinks/MeshCore into keymindCascade
# Conflicts:
#	examples/companion_radio/MyMesh.cpp
#	examples/companion_radio/NodePrefs.h
#	examples/simple_repeater/MyMesh.cpp
#	examples/simple_room_server/MyMesh.cpp
#	examples/simple_sensor/SensorMesh.cpp
#	platformio.ini
#	src/MeshCore.h
#	src/helpers/CommonCLI.cpp
#	src/helpers/CommonCLI.h
#	src/helpers/radiolib/CustomSX1262Wrapper.h
#	src/helpers/radiolib/CustomSX1268Wrapper.h
#	src/helpers/radiolib/LR11x0Reset.h
#	src/helpers/radiolib/SX126xReset.h
2026-08-11 13:28:43 -07:00
Kevin Le 7509e51e3d Station G3: Expose, persist, and apply FEM gain preferences. https://github.com/meshcore-dev/MeshCore/pull/3137 2026-08-12 00:07:37 +07:00
mikecarper 2ff1166c15 Fix BLE pairing display and RX gain defaults 2026-08-10 19:42:44 -07:00
Jarosław Domański fc660cc061 Fix RX_EN handling during RX power saving 2026-08-10 14:50:34 +02:00
Adam Gessaman c58c9b2f31 fix(station-g3): apply FEM PA level at TX start
PA PL1 re-targets the PA's DC-DC supply rail rather than selecting a
logic-level gain, and the serial CLI is serviced on every main-loop pass
regardless of whether a transmit is in flight. A `set radio.fem.txgain`
write could therefore move the rail mid-transmit, while the SX1262 was
still driving the PA at full input power.

Record the requested level in setPAGainEnable() and drive the pin from
setTxModeEnable(), which runs from onBeforeTransmit() ahead of
startTransmit(). The level only matters while transmitting, so deferring
costs nothing.

Document that the pref is saved immediately but applied at the next
transmit, so `get radio.fem.txgain` can lead the hardware until then.
2026-08-08 14:53:57 -07:00
mikecarper cfdf33b7ca Expand repeater FPF7 to 63 rules 2026-08-07 17:22:21 -07:00
mikecarper 5b0af29ad1 Unify repeater flood policy persistence 2026-08-07 17:01:55 -07:00
mikecarper 11b692abfa Harden firmware recovery and retries
Improve companion BLE delivery and idempotent remote CLI retries, make FPF7 persistence atomic with FPF6 migration, verify staged OTA data on resume, and clarify filter policy wildcard and BlackHole semantics.
2026-08-07 16:24:53 -07:00
mikecarper 7f56da7a34 Extend flood policy and harden message retries 2026-08-07 14:26:31 -07:00