164 Commits
Author SHA1 Message Date
Jared Dohrman d3dbc0a063 Merge remote-tracking branch 'upstream/dev' into integrate-upstream-dev-2026-08-15
# Conflicts:
#	src/helpers/ui/SH1106Display.cpp
2026-08-15 08:41:31 +10:00
agessaman e2aa7b98f9 feat(companion_radio): add external FEM gain preferences for RX and TX for companions
Introduced consistent preferences for external LoRa FEM RX and TX gain settings in NodePrefs. Updated companion MyMesh to apply these settings during initialization and transmission. Added unit tests to verify the round-trip serialization of these new preferences.
2026-08-10 11:59:26 -07:00
Jared DohrmanandClaude Fable 5 cfb4cc9bc6 fix(companion-wifi): quiesce STA scanning so the recovery AP is joinable
With saved credentials present (seeded from the WIFI_SSID build flag on
first boot), the recovery AP came up in AP+STA mode while auto-reconnect
and the 10s manual retry kept the station scanning. STA scans drag the
shared radio across channels, so joining clients' WPA2 handshakes timed
out - reported by phones as a wrong password.

Disable auto-reconnect and pause the 10s retry loop while the recovery
AP is active; retry the configured network once a minute instead, so the
AP stays stable between attempts and the node still self-recovers (and
shuts the AP down) when its network returns.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-09 18:34:19 +10:00
Jared DohrmanandClaude Fable 5 4c8ddbd29f feat(companion-wifi): pin-derived recovery AP password with on-screen pin
Mirror the BLE pin rules on WiFi builds so the recovery AP always has a
knowable password: devices with a display get a random per-session pin
shown as Pin:NNNNNN on the home screen, headless devices default to
123456, and 'set pin' overrides both persistently. The AP password is
the active pin zero-padded to 8 digits (WPA2 minimum), so a fresh
device is never an open AP.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-09 16:56:24 +10:00
Jared DohrmanandClaude Fable 5 a5c9ba3e01 feat(companion-wifi): recovery AP with TCP rescue CLI when WiFi is down
When a companion WiFi device has no WiFi credentials or can't connect for
60s, it broadcasts an 'EastMesh-WiFi' AP (WPA2 password = device pin
zero-padded to 8 digits; open if no pin set) with the rescue CLI on TCP
port 23, so wifi.ssid/pwd can be fixed without a serial cable.

- rescue CLI command handler now writes to any Stream (Serial or the TCP
  rescue client)
- while the AP is up, STA keeps retrying; the AP shuts down automatically
  once the configured network connects
- 'set wifi.ssid/pwd' keeps AP+STA mode during a rescue session so the
  session isn't dropped mid-config
- guard ESP32-only SD/SPI code in ArchiveStorage so non-ESP32 builds of
  the shared helpers get further

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-09 16:52:50 +10:00
Jared DohrmanandClaude Fable 5 9551272abe Merge remote-tracking branch 'upstream/dev' into integrate-upstream-dev-2026-08-09
Integrates upstream v1.17.0. Key adaptations:
- companion + repeater NodePrefs moved to upstream's new ConfigSerializer
  (prefs.json) format; EastMesh fields (companion wifi, repeater fan and
  MQTT bridge peer) appended as serializer groups/keys
- legacy binary prefs loaders retain EastMesh tail fields, so existing
  devices migrate their settings to the new format
- companion main.cpp adopts upstream InterfaceManager while keeping
  runtime WiFi credentials from prefs
- kept EastMesh release-tag versioning in setup-build-environment action

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-09 16:30:22 +10:00
liamcottle dee133d647 disable cad on companion until it's configurable 2026-08-07 00:19:18 +12:00
Scott Powell 2189f2294c * added prefs initialisers to match original zeroed state 2026-07-18 19:22:53 +10:00
Scott Powell f515716032 * new NodePrefs for companion 2026-07-17 16:05:10 +10:00
Jaroslav Škarvada 15e259c572 Added MCU temp sensor to the companion
Fixes #2896
2026-07-14 17:43:33 +02:00
Jared Dohrman 9fd108f946 Merge remote-tracking branch 'upstream/dev' into integrate-upstream-dev-2026-07-09
# Conflicts:
#	.github/actions/setup-build-environment/action.yml
#	README.md
#	examples/simple_repeater/MyMesh.cpp
#	examples/simple_room_server/MyMesh.cpp
#	examples/simple_sensor/SensorMesh.cpp
#	src/helpers/CommonCLI.cpp
#	src/helpers/CommonCLI.h
#	src/helpers/radiolib/CustomLR1110Wrapper.h
#	variants/tenstar_c3/target.h
2026-07-09 16:51:30 +10:00
Wessel Nieboer 7c8e092457 Have CAD be a separate toggle (set cad on/off) 2026-06-14 15:20:58 +02:00
Wessel Nieboer 4f9a091671 Use hardware channel activity detection for checking interference 2026-06-14 15:19:18 +02:00
Scott Powell 2e73fe948e * fix for anon lastmod 2026-06-14 18:54:51 +10:00
Scott Powell 07648e3344 * fix for anon contacts when full 2026-06-14 17:50:41 +10:00
liamcottle ae0bb7ee95 use releasePacket instead of _mgr->free 2026-06-09 00:42:58 +12:00
liamcottle 07bfe90695 free packet on parse failure 2026-06-09 00:31:48 +12:00
Jared Dohrman 4bce747df0 Merge remote-tracking branch 'upstream/dev' into eastmesh-upstream-dev-sync-20260607
# Conflicts:
#	README.md
#	src/helpers/CommonCLI.cpp
#	src/helpers/ESP32Board.h
#	variants/nibble_screen_connect/platformio.ini
2026-06-07 08:11:15 +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
Jared Dohrman 4c69dbe4bb Merge remote-tracking branch 'upstream/dev' into eastmesh-upstream-sync-20260603
# Conflicts:
#	README.md
#	src/helpers/CommonCLI.cpp
2026-06-03 11:46:45 +10:00
Sefinek cc05ae555a docs: fix typos, grammar, and formatting in FAQ and code comments 2026-06-02 22:12:18 +02:00
Scott Powell 83ad3a6dc0 * direct/zero hop by default 2026-06-02 15:32:28 +10:00
Liam Cottle 94063f6833 Merge pull request #2636 from sefinek/fix/cmd-device-query-typo
fix: rename CMD_DEVICE_QEURY to CMD_DEVICE_QUERY
2026-06-02 12:41:57 +12: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
Scott Powell b259fbd01b * power saving: hasPendingWork() now also checks if there's a pending contacts write 2026-05-31 18:52:42 +10:00
ripplebiz 54c111609a Merge pull request #2286 from IoTThinks/MCdev-PowerSaving-for-nrf52-companion-202604
Added Power Saving for NRF52 companions to have extra 30% battery life
2026-05-31 18:49:46 +10:00
Sefinek bbe41eb375 fix: rename CMD_DEVICE_QEURY to CMD_DEVICE_QUERY 2026-05-28 14:39:12 +02:00
Jared Dohrman 88ead24c4f Merge remote-tracking branch 'upstream/dev' into eastmesh-upstream-dev-20260523
# Conflicts:
#	examples/companion_radio/main.cpp
#	src/helpers/sensors/EnvironmentSensorManager.cpp
2026-05-23 20:59:42 +10:00
Rastislav Vysoky a37078f6c5 Companion repeat: update to more usable default EU frequency
869.495 is in 869.4 to 869.65 range which does have 10% duty cycle and 500mW ERP.
2026-05-22 17:04:19 +02:00
Kevin Le da7663a6fb Fixed hasPendingWork for BLE companions 2026-05-22 10:58:21 +07:00
Kevin Le 6b1099161c Added Power Saving for NRF52 companions 2026-05-22 10:58:17 +07:00
Scott Powell c588540b1b * new CMD_SEND_RAW_PACKET 2026-05-13 13:28:56 +10:00
liamcottle 841db56595 add build flag to configure allowed repeat freq range 2026-05-08 20:16:45 +12:00
Scott Powell 6979326340 * CMD_SET_FLOOD_SCOPE_KEY, now with second variant for explicitly sending un-scoped
* FIRMWARE_VER_CODE bumped to 12
2026-05-07 16:51:03 +10:00
Jared Dohrman 7cfaed45c9 Merge remote-tracking branch 'upstream/dev' into integration/upstream-dev-20260505
# Conflicts:
#	.github/workflows/github-pages.yml
#	.github/workflows/pr-build-check.yml
#	README.md
#	docs/cli_commands.md
#	docs/companion_protocol.md
#	docs/faq.md
#	docs/number_allocations.md
#	mkdocs.yml
#	variants/heltec_v3/platformio.ini
2026-05-05 17:30:48 +10:00
Scott Powell 0a8a0a4904 * Refactor: removed duplicated radio_rng_seed(), radio_set_params(), radio_set_tx_power() 2026-05-01 14:47:07 +10:00
Jared Dohrman e05c9bc09c Merge upstream/dev into develop 2026-04-17 17:54:47 +10:00
Scott Powell efdd2b6a6c * companion: simplified the CMD_GET / CMD_SET _DEFAULT_FLOOD_SCOPE 2026-04-13 23:11:21 +10:00
Scott Powell d131e8ae35 * companion: RegionMap now used in Datastore
* companion: new CMD_SET_DEFAULT_FLOOD_SCOPE
* support for regional builds with DEFAULT_REGION_SCOPE
2026-04-13 21:06:53 +10:00
Scott Powell 3b32f35288 * Companion: default scope 2026-04-10 17:01:41 +10:00
Jared Dohrman b5374a705a feat(web,mqtt): add repeater dashboard, MQTT settings, and stabilise HTTPS/TLS startup 2026-04-10 15:18:19 +10:00
Jared Dohrman 9ec430c241 feat: add persisted wifi CLI settings for companion wifi builds 2026-04-09 15:55:23 +10:00
liamcottle 1d61df72c3 add define for reserved group data type 2026-03-23 23:09:35 +13:00
liamcottle c78f7133c9 reorder command args 2026-03-23 23:02:24 +13:00
liamcottle ed326255d5 add support for direct paths when sending group data 2026-03-23 21:46:21 +13:00
Liam Cottle 91aed048e9 Merge pull request #1928 from dz0ny/feat/grp-data-upstream
feat: Add support for PAYLOAD_TYPE_GRP_DATA
2026-03-23 21:41:51 +13:00
Rastislav Vysoky 285fc685c5 allow to set lower LoRa frequency 2026-03-22 13:54:42 +01:00
Janez T 2f68769185 fix: Widen grp data type
ref: #1928
2026-03-19 09:25:42 +01:00
Janez T 1fb26e7623 fix: Drop grp data timestamp
ref: #1928
2026-03-19 09:22:12 +01:00