Commit Graph
1576 Commits
Author SHA1 Message Date
mikecarper f01970058d feat: add capability-aware firmware build profiles 2026-08-25 20:07:09 -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 8b7c5fafb4 Validate companion repeater status responses 2026-08-25 10:27:04 -07:00
mikecarper 7077283e95 Make RXPS preamble adaptive for fast radio settings 2026-08-24 20:42:54 -07:00
mikecarper 4a4a795f52 Harden recoverable external radio startup 2026-08-24 16:54:41 -07:00
mikecarper ba70c5b3c6 Harden fast RXPS timing and board behavior 2026-08-24 15:10:54 -07:00
Scott Powell 6dad3d5ab4 * companion: fix for setSpreadFactor(). "set cad ..." and "board" now implemented. 2026-08-24 20:44:17 +10:00
mikecarper dc92ee61ef Expand and harden full companion profiles 2026-08-24 01:57:38 -07:00
Scott Powell 845242f4aa * prefs, custom dirty state 2026-08-24 17:22:15 +10:00
Scott Powell 5a162ff4c6 * new DynamicConfigSerializer
* board/variant KeyValueStore now can write to 'custom' object in Json prefs
2026-08-24 17:12:56 +10:00
mikecarper f2d4ffbb7e Unify full firmware profiles and add dual USB logging 2026-08-23 19:22:45 -07:00
liamcottle 7dc2d54818 add UI_NO_HIBERNATE build flag to disable hibernate screen on wio tracker l1 2026-08-24 13:45:19 +12: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
Scott Powell 47b0b7b3b8 * T096, and Station G3: refactoring the 'FEM' prefs to variant-specific code
* CommonCLI: 'FEM' commands removed
* introduced static no-op attachDynamicPrefs() for all boards
2026-08-24 01:50:22 +10:00
Florent 088ae3caeb ui: opt-out for discover screen 2026-08-23 10:42:00 -04:00
Scott Powell e485d01dcb support for CMD_SEND_TXT_MSG and new TXT_TYPE_CLI_COMMAND 2026-08-23 22:49:45 +10:00
Scott Powell 2c0ace2519 * new TXT_TYPE_CLI_COMMAND (3) 2026-08-23 22:04:05 +10:00
Scott Powell 52306bfe0f legacy queueMessage() case, eg. repeater replies 2026-08-23 20:07:28 +10:00
Scott Powell f7c568e3d9 onCommandDataRecv() use '>' prefix for CLI replies. 2026-08-23 20:03:49 +10:00
Scott Powell 21179760d3 "Unknown command" replies 2026-08-23 19:35:43 +10:00
Scott Powell b4f7e941fa * CommonRadioPrefs refactors done 2026-08-23 17:30:30 +10:00
Scott Powell 41588d8052 * adding new CommonRadioPrefs
* refactor: moving various radio CLI handling to CommonRadioPrefs
2026-08-23 14:45:15 +10:00
Kevin Le 4eae86fa09 Moved uptime to below battery icon. Shifted dots left. 2026-08-23 09:25:31 +07:00
Florent 52f0362c09 ui: repeater discover screen 2026-08-21 18:24:46 -04:00
entr0p1 e749010bbc Duplicate MAX_CLIENTS definition
MAX_CLIENTS is defined in both src/helpers/ClientACL.h and examples/simple_repeater/MyMesh.h. Appears it was centralised in the former header file some time ago. Both are included in some places and, depending on which order they're in, either value can win.

This change drops the duplicate entry from the repeater firmware and bumps the central limit up to 32 (per the original repeater firmware value).

Changes:
- Remove MAX_CLIENTS from repeater MyMesh.h
- Increase MAX_CLIENTS limit in ClientACL.h to 32
2026-08-21 15:11:57 -04:00
Scott Powell afb969ccca * initial wiring/routing of CLI commands to companion (either via app/serial interface, or remotely via txt message) 2026-08-21 20:55:57 +10:00
mikecarper c7bc7a0740 Compact flood filter persistence 2026-08-21 00:55:05 -07:00
agessaman e45e977fb1 fix(examples): add MQTT teardown delay before OTA allocation 2026-08-20 21:13:58 -07:00
ripplebiz e0031870f6 Merge pull request #3233 from entr0p1/fix/centralise-max-clients
Fix duplicate MAX_CLIENTS definition
2026-08-20 14:09:30 +10:00
mikecarper 671dd30769 Expand companion offline queues 2026-08-19 17:32:05 -07:00
mikecarper 3c6fee3277 Ensure full repeater packet logging 2026-08-19 16:20:24 -07:00
mikecarper 4ebbdc3d9b Merge remote-tracking branch 'review/observer-firmware' into keymindCascade
# Conflicts:
#	MQTT_IMPLEMENTATION.md
#	examples/simple_repeater/MyMesh.cpp
#	examples/simple_room_server/MyMesh.cpp
#	examples/simple_sensor/SensorMesh.cpp
#	src/helpers/CommonCLI.h
#	src/helpers/MQTTPresets.h
#	src/helpers/bridges/MQTTBridge.cpp
#	src/helpers/bridges/MQTTBridge.h
#	src/helpers/radiolib/CustomLLCC68Wrapper.h
#	src/helpers/ui/SH1106Display.cpp
2026-08-19 13:45:47 -07:00
mikecarper a192c1ea69 Merge remote-tracking branch 'iotthinks/PowerSaving-v17' into keymindCascade
# Conflicts:
#	examples/companion_radio/main.cpp
#	variants/heltec_v4/platformio.ini
2026-08-19 13:31:42 -07:00
mikecarper 5f0452412d Merge remote-tracking branch 'upstream/dev' into keymindCascade 2026-08-19 13:30:32 -07:00
mikecarper a39bbbd467 Add normalradio to common CLI 2026-08-19 12:44:49 -07:00
hansimgamrandClaude Opus 4.8 41c60da575 Show plug at >=95% instead of exactly 100%
Boards without a charge-complete signal only infer "full" from voltage, and
a real pack rarely reads the full BATT_MAX_MILLIVOLTS (4.2V), so the plug icon
was effectively never shown. Treat "full" as a high band (>= 95%) so the plug
appears when the battery is charged rather than requiring an exact 100%.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-19 12:44:41 -04:00
hansimgamrandClaude Opus 4.8 3a440ac41a Add charging indicator to companion_radio battery icon
Show a small lightning-bolt icon to the left of the battery indicator on
the ui-new home screen while the device is externally powered, and a plug
icon once the battery reads full. The bolt/plug sits beside the battery so
the fill bar stays clean and uninterrupted. When a buzzer is present, the
mute icon shifts one slot further left so the two never overlap.

Charging state is derived from board.isExternalPowered(), so this works on
any board that reports external power (e.g. the nRF52 VBUS-detect path).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-19 12:44:41 -04:00
Kevin Le a3b9ad91a5 Disabled automatic light sleep for companions with USB CDC Serial 2026-08-19 19:19:16 +07:00
liamcottle 67d6d42a4c fix for 3-byte paths passed to CMD_SEND_RAW_DATA 2026-08-19 18:59:24 +12:00
mikecarper 47993d178e Update MeshCore features and OTA layout handling 2026-08-18 23:17:42 -07:00
Scott Powell 4b8966d4f9 WIO Tracker L1 1W variant 2026-08-19 15:29:19 +10:00
Kevin Le 61048f5868 Added missing POWERSAVING_FIRSTSLEEP_SECS for room servers 2026-08-19 10:19:05 +07:00
Huw Duddy dab6b63567 Merge pull request #3235 from meshcore-dev/send-raw-direct-fix
Fix for CMD_SEND_RAW_DATA and multi-byte paths
2026-08-19 11:32:34 +10: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 7fb413bc12 Merge remote-tracking branch 'upstream/dev' into keymindCascade
# Conflicts:
#	examples/simple_repeater/MyMesh.cpp
2026-08-18 11:51:58 -07:00
Kevin Le 4027acc74b Fixed to support usb companions 2026-08-18 20:57:20 +07:00
fdlamotte 29b33467fb Merge pull request #3180 from fdlamotte/thinknode_m8
thinknode_m8: initial support

adds some functionalities to ui_task and epddisplay:

epd display, 
- supports screen off, and clear screen
- supports forcing full refresh every N partial refreshes (off by default, configured to 60 for M8)

ui_task
- UI_SHOW_CLOCK flag to display clock on first screen
- rotary button can act like joystick (with regards to Enter key), defaults to old config for existing nodes
- screen off on long press when using rotary button (very handy for the watch)
2026-08-18 09:33:42 -04:00
Rastislav Vysoky 2db4b40617 repeater: set loop.detect to minimal as default for new installs 2026-08-18 14:56:58 +02:00