Commit Graph
206 Commits
Author SHA1 Message Date
Valentin Kivachuk Burda 259802b706 ota: configurable hop limit (ota config hops) + accept-gate + forward RAM guard
Bound OTA-over-LoRa duty cycle across repeaters with one runtime-tunable,
persisted limit (OtaManager::max_hops, `ota config hops <0..8>`, default 3):

- Accept-gate: a node ignores OTA that arrived from more than max_hops hops
  away (neither processes nor relays it). 0 = direct only.
- Forward-cap: relay a flood only while still under max_hops, appending this
  node's path-hash (hop count increments like the mesh flood routing).
- RAM guard: relay an OTA flood only while more than OTA_FWD_MIN_FREE packet-
  pool slots stay free, so heavy OTA (best-effort, lowest-priority) can never
  monopolise the shared pool and starve real traffic — a dropped relay is
  re-requested by the source.

Persisted in NodePrefs (CommonCLI) and shown in `ota config`. Docs updated.
2026-06-30 20:35:48 +02:00
Valentin Kivachuk Burda 9ff1c883c2 ota: configurable advertise interval (default 24h) + advertise on served-set change
The discovery beacon previously re-announced at a random 3-10 min interval.
Replace that with a fixed, user-configurable cadence:

- OtaManager::advert_mins() — re-advertise every N minutes after the boot
  burst; 0 disables periodic re-advertise (boot burst only). Default 24h.
- Persisted in NodePrefs (CommonCLI) and runtime-tunable: `ota config advert
  <minutes>` (0..10080; 0 = off), and shown in `ota config`.
- When periodic advert is disabled, the scheduler still re-checks the config
  on a slow timer, so a later `ota config advert <mins>` takes effect live.

Also advertise immediately whenever the served set changes — when a motatool
folder is attached to / detached from the ESP32 WiFi seeder — so peers learn
about newly-available firmware without waiting for the next interval (the
`ota folder` serial path already announced on attach).

Docs: protocol beacon-cadence note + user-guide `ota config advert`.
2026-06-30 14:29:38 +02:00
Valentin Kivachuk Burda 280b9b1555 ota: serve & manage OTA over WiFi (motatool --tcp + ESP32 companion seeder/console)
Extends the USB-serial folder relay to WiFi so an ESP32 companion can both
serve .mota and be operated headlessly:

- motatool `serve --tcp <host[:port]>`: a TcpTransport sibling of the serial
  transport (default port 5001). SeederCore/Folder are reused unchanged — the
  COUNT/DESCRIBE/READ protocol is transport-agnostic.
- ESP32 companion: a dedicated OTA seeder port (5001) for `serve --tcp`, plus
  an OTA text console on 5002 (`nc <ip> 5002` -> `ota status|ls|announce|...`,
  the same handle_ota_command CLI serial nodes have). Both run alongside the
  phone-app port (5000); all three coexist.
- WiFi.setSleep(false): ESP32 STA mode's modem power-save periodically sleeps
  the modem/CPU and stalls the SX1262 SPI+DIO servicing, leaving LoRa deaf
  while WiFi is associated. Disabling it restores the radio (HW-validated:
  a V3 WiFi companion is then discovered over LoRa and discovers its peers).
- docs: serving .mota over WiFi (protocol §10.2 + user guide).
2026-06-29 20:24:24 +02:00
Valentin Kivachuk Burda 54c8b586c1 ota: protocol spec + user guide 2026-06-29 20:24:24 +02:00
HDDen 58b0f7df9c Update number_allocations.md 2026-06-29 12:41:44 +03:00
HDDen bc35208682 Update number_allocations.md
Added Data-Type range for MeshCore Images codec (range is for small reserve to future versions)
2026-06-28 00:32:22 +03:00
Wessel Nieboer 7c8e092457 Have CAD be a separate toggle (set cad on/off) 2026-06-14 15:20:58 +02:00
Quency-DandGitHub 9100a58671 Merge branch 'dev' into cli-lna-command 2026-06-10 11:30:04 +08:00
Scott Powell 07a3ca9e05 Merge branch 'dev'
# Conflicts:
#	docs/faq.md
2026-06-06 21:12:43 +10:00
IoTThinksandGitHub 6a9a84e8a5 Change default power saving setting to 'off' 2026-06-06 11:04:36 +07:00
Scott Powell 397ac6144f * number allocations: Ripple range reserved 2026-06-06 12:45:35 +10:00
Sefinek 81510e7495 docs: fix remaining rendering issues 2026-06-03 00:38:53 +02:00
Sefinek 4dcd664363 docs: fix remaining rendering issues 2026-06-03 00:32:25 +02:00
Sefinek 4f4699ab61 docs: fix remaining rendering issues 2026-06-03 00:28:09 +02:00
Sefinek f7bff44572 docs: fix remaining rendering issues 2026-06-03 00:24:01 +02:00
Sefinek 456e14f7a7 docs: add missing periods at sentence endings 2026-06-03 00:15:26 +02:00
Sefinek 15913d580f docs: fix FAQ rendering 2026-06-03 00:14:29 +02:00
Sefinek 3daa6adc83 docs: fix FAQ heading capitalization 2026-06-02 23:57:50 +02:00
Sefinek 6b5cf1a9d7 docs: fix FAQ link rendering 2026-06-02 23:48:28 +02:00
Sefinek 1422f02cd3 docs: fix FAQ rendering 2026-06-02 23:35:02 +02:00
Sefinek f9a0f215c4 docs: fix FAQ resource link rendering 2026-06-02 23:31:25 +02:00
Sefinek e0a6fd12b5 docs: fix FAQ bullet list rendering 2026-06-02 22:34:38 +02:00
Sefinek 4749a61bb4 docs: fix FAQ bullet list rendering 2026-06-02 22:30:42 +02:00
Sefinek bf39919f15 docs: remove extra FAQ TOC indentation 2026-06-02 22:28:15 +02:00
Sefinek cc05ae555a docs: fix typos, grammar, and formatting in FAQ and code comments 2026-06-02 22:12:18 +02: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
Liam CottleandGitHub 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
Liam CottleandGitHub 69a8930188 Merge pull request #2635 from sefinek/docs/fix-typos-and-grammar
docs: fix typos, grammar issues and standardise Wi-Fi spelling
2026-06-02 12:41:30 +12:00
Chris Barker b6ae8c9447 Updates Docs to reflect flood.max.unscoped behavior. 2026-06-01 21:30:31 +01:00
Sefinek 15ae641119 docs: fix minor typos in README and terminal_chat_cli 2026-05-28 16:38:15 +02:00
Sefinek 2adea02e9c docs: fix broken and misaligned tables 2026-05-28 15:15:47 +02:00
Sefinek 7937b43b49 docs: remove duplicate radio.rxgain entry and fix hardware note 2026-05-28 14:52:00 +02:00
Sefinek bbe41eb375 fix: rename CMD_DEVICE_QEURY to CMD_DEVICE_QUERY 2026-05-28 14:39:12 +02:00
Sefinek 888ad4589c docs: fix typos, grammar and Wi-Fi capitalisation across docs 2026-05-28 14:23:31 +02:00
ripplebizandGitHub e251dc1659 Merge pull request #2540 from agessaman/feat/regions-quick-loasd
Add bulk region hierarchy command to CLI
2026-05-23 18:37:28 +10:00
agessaman 1296aa7792 Refactor region def with helpers, refine docs
Extract the inline cursor-walk in handleRegionCmd into file-local
helpers (skipSpaces, rtrimSpaces, takeToken, splitNameJump,
processRegionDefSegment), grouped immediately above the consumer.
Behavior is identical; addresses PR #2540 review feedback on
readability.

Tighten the region def docs: collapse five Note callouts into three
grouped paragraphs (Behavior / Existing regions / Limits), add a
case-sensitivity caveat plus an error example, note the cursor reset
between split commands, and use generic placeholder names.
2026-05-21 19:25:01 -07:00
Quency-DandGitHub 250f448c3f Merge branch 'dev' into cli-lna-command 2026-05-20 10:13:28 +08:00
agessaman f3c6c34883 Update CLI command from region bulk to region def 2026-05-16 10:47:51 -07:00
ViezeVingertjes 79caba5bab Document HW_ERR_TX_BUSY in KISS modem protocol 2026-05-16 11:32:33 +02:00
AI7NCandGitHub 16cb6d518f Update cli_commands.md to include 'ver'
Include the 'ver' command for retrieving the firmware version
2026-05-12 12:42:33 -07:00
agessaman 19f950018c Add bulk region hierarchy command to CLI
Add a new command `region bulk` for defining region hierarchies in a single line. This command allows users to create multiple regions in a single message. Updated the documentation to include usage examples and detailed parameter descriptions.
2026-05-12 12:08:03 -07:00
Quency-DandGitHub 12e6899580 Merge branch 'dev' into cli-lna-command 2026-05-09 18:19:31 +08:00
ripplebizandGitHub f9ddd9da72 Merge pull request #2445 from kizniche/update-docs-txdelay-rxdelay
Docs: Add explanatory notes for txdelay, direct.txdelay, and rxdelay
2026-05-06 14:37:36 +10:00
Avi0n 0be082b5f9 fix typos 2026-04-30 14:21:26 -07:00
Kyle 293a8a9a84 docs: add explanatory notes for txdelay, direct.txdelay, and rxdelay CLI commands 2026-04-29 14:10:13 -04:00
Liam CottleandGitHub 470ad43313 Merge pull request #2392 from zjs81/meshcore_open_data_types
Introduce DataType Definitions for Meshcore Open
2026-04-28 15:42:03 +12:00
zjs81 9c8eb301a4 Clarify path length semantics and data handling in inbound group datagrams 2026-04-27 10:49:55 -07:00
zjs81 b6d0b7a5dd Refine data type definitions and update registration process in documentation 2026-04-27 10:22:17 -07:00
Liam CottleandGitHub 03a13aed30 Merge pull request #2413 from keithtweed/patch-1
Update script link in FAQ 4.7 to the repo of the fork
2026-04-27 14:17:19 +12:00
Keith TweedandGitHub b948369d71 Update script link in FAQ 4.7 2026-04-26 19:51:33 -06:00