Commit Graph
177 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
Jared DohrmanandClaude Fable 5 088d7f40f9 feat(observer-wifi): gateway watchdog and wifi reconnect command
Both Clyde North observers sat WL_CONNECTED on an AP that kept beaconing
after its bridge to the wired LAN died: association up, good RSSI, stale
DHCP lease, but ARP-invisible and both MQTT brokers stuck in backoff.
The firmware equated "associated" with "online", so neither node ever
re-scanned and the outage held until a manual reassociation.

Add a connectivity watchdog to NetworkService: while connected, ARP-probe
the gateway every 30s (posted to the lwIP tcpip thread, safe on both the
IDF4 and IDF5 cores). If the gateway stays silent for 3 minutes, clear
the channel hint and force a full disconnect/rescan so the node can roam
to a healthy AP, backing off exponentially (up to 48min) while the
outage persists. Nodes without a gateway skip the probe.

Add a `wifi reconnect` repeater command that triggers the same forced
reassociation on demand, and report `gw:ok|lost wd:<count>` in
`get wifi.status`. Teach the web panel parser the new fields (also fixes
the IP metric rendering as "x.x.x.x channel:n") and show Gateway and
Channel in the Wi-Fi card.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 19:23:12 +10:00
ripplebizandGitHub b09cb27a1f Merge pull request #3106 from ViezeVingertjes/fix/scoped-reply-routing
Fix replies dropped when flood.max.unscoped is low
2026-08-13 15:00:37 +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
agessaman 23066573e5 fix(station-g3): expose FEM gain preferences 2026-08-06 15:29:14 -07:00
ripplebizandGitHub 84e3a67bd7 Merge pull request #3115 from oltaco/meshnology_w12
Add support for Meshnology W12 and LR2021 Wrapper
2026-08-05 15:04:00 +10:00
taco 9d4f93806d LR2021: auto-LDRO for side detectors 2026-08-05 14:23:32 +10:00
taco 696a82d7c2 LR2021 multi-SF support (side detectors) 2026-08-05 14:23:32 +10:00
ViezeVingertjes b155081882 Merge remote-tracking branch 'upstream/dev' into fix/scoped-reply-routing
# Conflicts:
#	examples/simple_repeater/MyMesh.cpp
2026-08-04 11:49:58 +02:00
ViezeVingertjes fad11c90f3 Fix replies dropped when flood.max.unscoped is low 2026-08-03 22:57:12 +02:00
Scott Powell 0fd11ed223 * bounds check added for anon_req reply_path_len 2026-08-04 01:00:31 +10:00
Scott Powell 2af1e6d099 * first draft of new ConfigSerializer. (simple embedded JSON prefs) 2026-07-15 01:23:57 +10: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
Neil Alexander 0d7379520f Fix recv_pkt_region incorrect usage
The `recv_pkt_region` is set when processing a flood packet in `filterRecvFloodPacket`
but direct/non-flood packets would never pass through that function, so the pointer was
not cleared for them.

`sendFloodReply` would then later use it blindly, which meant that the response would
either inherit the region from the last flood packet, or refer to a non-initialised pointer
if no region floods had been received yet.
2026-07-02 09:28:41 +01:00
Jared DohrmanandClaude Opus 4.8 7176f62dae feat(mqtt): add packet counters to status; complete and reorganize MQTT bridge variants
MQTT status payload:
- Add packets_sent and packets_received (cumulative radio TX/RX totals)
  to the status `stats` object, aligning with the Waev/MeshMapper schema.

Variants (variants/eastmesh_mqtt -> variants/eastmesh):
- Rename the variant folder to variants/eastmesh.
- Add the remaining *_repeater_observer_mqtt_bridge envs (2 -> 36), one
  per observer board.
- Regroup envs by board (observer -> espnow -> mqtt_bridge) and add
  per-vendor section banners.

Docs & release notes:
- Update folder path references in README, AGENTS, and boards docs.
- Add observer-eastmesh and observer-eastmesh-bridge-espnow 2026.6.6
  release notes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 22:09:31 +10:00
prabathbr b2365c4ac0 Merge branch 'main' of https://github.com/xJARiD/MeshCore-EastMesh
* 'main' of https://github.com/xJARiD/MeshCore-EastMesh:
  docs: updated release notes for waev
  feat(mqtt): add Waev broker

# Conflicts:
#	release-notes.yml
2026-06-26 12:21:21 +10:00
Jared DohrmanandClaude Opus 4.8 6ad3e5224e feat(mqtt): add Waev broker
Add Waev (mqtt.waev.app) as a curated MQTT broker, selectable from the
web-panel Primary/Secondary dropdowns and the CLI.

- Broker spec on bit 0x20, audience mqtt.waev.app, Google Trust Services
  WE1 CA (matches Waev's cert chain); widen broker mask/count to 0x3F/6
- Per-broker JWT lifetime via BrokerSpec.token_ttl_secs: Waev enforces a
  1-hour max token TTL and rejects the 6h default with MQTT CONNACK 5,
  so it mints a 3600s token while other brokers keep the 6h default
- CLI get/set mqtt.waev, web-panel dropdown entry + hidden toggle, docs
- Log token TTL in the "token ready" line for broker auth debugging

fix(web): make Custom MQTT settings full width when Custom is selected

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 10:29:38 +10:00
taco 1f9bb67400 return bool when setting rx boost 2026-06-26 07:44:01 +10:00
taco 5d0ff7fe6e remove guard on MyMesh::setRxBoostedGain() 2026-06-26 07:06:37 +10:00
prabathbr 90d2c9302f test MQTT bridge 2026-06-24 21:42:22 +10:00
Jared Dohrman 93a9c80305 feat(mqtt): add MeshMapper broker, retire LetsMesh, Primary/Secondary broker 2026-06-23 09:22:17 +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
Quency-DandGitHub 9100a58671 Merge branch 'dev' into cli-lna-command 2026-06-10 11:30:04 +08:00
Jared Dohrman b8f80dad48 feat: add CLI-configurable NTP servers 2026-06-09 20:49:07 +10:00
Jared Dohrman 9bce46c298 feat: add custom MQTT WSS transport 2026-06-09 19:09:33 +10:00
Jared Dohrman ec88d300c1 fix: stabilise observer wifi ota and s3 telemetry 2026-06-07 13:54:09 +10:00
Jared Dohrman cbfe1cec66 fix: harden observer boot and T-Beam S3 telemetry 2026-06-07 12:32:42 +10: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
Scott Powell 8fc2da5c98 * default now 8, per the will of the peoples. 2026-06-06 21:00:58 +10:00
Scott Powell 5f6821bb66 * new CLI config: flood.max.advert (default 16) 2026-06-06 13:09:24 +10:00
Jared Dohrman a613ba92e2 feat: add web panel firmware update flow 2026-06-04 19:28:43 +10:00
Jared Dohrman a5e0120ed6 fix: remove stale prefs initializer 2026-06-03 11:54:27 +10: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
Scott Powell f66c1d0258 * simplified the new flood.max.unscoped pref 2026-06-02 14:15:33 +10:00
ripplebizandGitHub 09349c5b28 Merge pull request #2661 from mrzarquon/mrz/flood_max_unscoped
Implement flood.max.unscoped to allow selective repeating of unscoped messages
2026-06-02 14:00: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
Scott Powell 760bb5951d * Bug fix: adding neighbor when path_mode != 0 2026-06-01 23:08:39 +10:00
Jared Dohrman 4aa2a3dabd feat: add custom mqtt support 2026-05-25 09:51:37 +10: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 VysokyandGitHub 40180b8fe6 Update repeater flood advert interval to 47 hours 2026-05-21 14:50:58 +02:00
Jared Dohrman 9415dc4107 fix: retry SD archive recovery while stats are enabled 2026-05-14 17:58:08 +10:00
Jared Dohrman 63d4ced2c1 feat: add repeat status to mqtt status 2026-05-13 12:28:25 +10:00
Quency-DandGitHub 12e6899580 Merge branch 'dev' into cli-lna-command 2026-05-09 18:19:31 +08: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 fb19c04304 fix: tighten repeater CLI getters and build metadata 2026-05-01 08:38:38 +10:00
Jared Dohrman f886bb3244 fix: hide inactive GPS stats 2026-04-28 20:07:49 +10:00
Jared Dohrman c729a58c81 fix: extend MQTT JWT lifetime and suppress reconnect noise during planned refresh 2026-04-26 18:10:33 +10:00
Quency-DandGitHub ddedb3c7a7 Merge branch 'dev' into cli-lna-command 2026-04-25 15:28:07 +08:00