Commit graph

151 commits

Author SHA1 Message Date
Ryan Gregg
88892de864 Fix Ethernet init checking hardwareStatus before begin() and deduplicate CLI code
The Ethernet retry loop in repeater and room server checked
hardwareStatus() and linkStatus() before calling Ethernet.begin(),
which always returned EthernetNoHardware since hardware detection
only happens during begin(). Extract shared Ethernet CLI code into
EthernetCLI.h to prevent future divergence. Also fix time_t type
mismatch in companion radio Ethernet init.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 10:48:42 -07:00
Ryan Gregg
61ba79966b Address PR review feedback from liamcottle (second round)
- Rename eth command to eth.status for consistency with other commands
- Rename generateDeviceMac to generateEthernetMac for clarity
- Refactor ethernet_handle_command to return false by default
- Allow new TCP clients to replace existing connections (repeater, room server, SerialEthernetInterface)
- Boot companion radio without Ethernet on init failure (LoRa-only recovery mode)
- Remove > prompt from ethernet CLI for consistency with serial interface
- Fix variable redeclaration compile error in SerialEthernetInterface when ETHERNET_STATIC_IP is defined
- Fix TCP socket leak when duplicate client detection fires
- Remove dead recv_queue and adv_restart_time members from SerialEthernetInterface
- Fix port numbers in docs (port 23 for repeater/room server CLI, port 5000 for companion radio)
- Clarify eth.status command is only available in repeater and room server firmware

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 12:43:08 -07:00
Ryan Gregg
3e9ceba24a Updates based on PR review feedback from liamcottle 2026-03-10 22:35:31 -07:00
Ryan Gregg
70b51bd096 Add native Ethernet support for RAK4631 repeater, room server, and companion
Add W5100S Ethernet adapter support for RAK4631-based firmware, enabling
TCP CLI access on port 23 as an alternative to BLE/Serial connections.

- New SerialEthernetInterface for nRF52 with DHCP, reconnection handling,
  and shared WB_IO2 power pin management with GPS module
- Ethernet build targets for repeater, room server, and companion firmware
- Prevent GPS from toggling WB_IO2 when Ethernet module is active
- CI build check for all three ETH firmware targets

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 20:43:59 -07:00
liamcottle
d13bc446de added build flag to enable/disable boot advert 2026-01-26 22:39:39 +13:00
liamcottle
ed589f9620 boot adverts are now zero hop instead of flood 2026-01-26 22:20:36 +13:00
Scott Powell
3d9378d91e * Fix for VolatileRTCClock wrapping around to initial synced time every 49 days 2025-10-30 16:45:50 +11:00
Scott Powell
3666cd72e5 * room refactor: extracted MyMesh class 2025-09-09 20:52:19 +10:00
Quency-D
c9671d7d8d add heltec meshpocket board. 2025-09-02 13:56:24 +08:00
Scott Powell
637891b814 * ver bump 2025-09-01 19:32:15 +10:00
Scott Powell
ee194a7b19 * added CommonCLI::saveIdentity() 2025-09-01 15:22:11 +10:00
Scott Powell
8b3c16c497 * ver bump 2025-08-31 23:42:15 +10:00
recrof
5dc930410c set default flood advert interval to 12 hours 2025-08-20 13:44:41 +02:00
Scott Powell
28af68c187 * new CommonCLI commands: "get prv.key", "set prv.key {hex}" 2025-08-01 19:28:44 +10:00
Scott Powell
32e8ce4130 * REQ_TYPE_GET_TELEMETRY_DATA, first reserved byte (of 4) is now inverse mask to apply to permissions 2025-07-31 13:45:53 +10:00
Scott Powell
365cb89634 * ver bump to 1.7.4 2025-07-24 20:30:35 +10:00
Scott Powell
ea4aa93594 * CommonCLI: "set radio " now with optional 5th param timeout_mins, for applying temporary radio params for that many mins
* "advert" command now with longer delay, so that CLI reply is sent first
2025-07-23 21:40:37 +10:00
Scott Powell
6bc8dd28d4 * CommonCLI: new "multi.acks" config setting 2025-07-16 18:51:18 +10:00
Scott Powell
c26418016b Merge branch 'dev' into double-acks 2025-07-15 17:02:20 +10:00
Scott Powell
f74819f8db * ver bump 2025-07-15 15:59:10 +10:00
Scott Powell
1f23632751 Merge branch 'dev' into double-acks 2025-07-09 14:59:25 +10:00
Scott Powell
9cecbad2a7 * refactor: CommonCLI, processing of optional command prefix moved to handleCommand() call sites
* Sensor, anon_req now just for admin login (guest password now unused)
* special CLI command, "setperm {pubkey-hex} {permissions-int16}" for admin(s) to manage user access (permissions 0 = remove)
2025-07-08 23:19:35 +10:00
Scott Powell
810b1f8fe7 * Mesh::onAnonDataRecv() slight optimisation, so that shared-secret calc doesn't need to be repeated
* SensporMesh: req_type now optionally encoded in anon_req payload (so can send various requests without a prior login)
2025-07-08 23:19:35 +10:00
Scott Powell
7bec45b3dd Merge branch 'dev' into double-acks 2025-07-08 22:14:48 +10:00
Scott Powell
483b31665c * ver bump to v1.7.2 2025-07-02 21:11:07 +10:00
Scott Powell
f7920114c5 Merge branch 'dev' into double-acks 2025-06-29 21:10:43 +10:00
Scott Powell
165fb33d5c * ver bump to v1.7.1 2025-06-29 20:06:24 +10:00
Scott Powell
70252b010c Merge branch 'dev' into double-acks 2025-06-24 13:07:36 +10:00
Scott Powell
60d0064080 * room server: new posts now delayed by 6 seconds before syncing to clients 2025-06-23 15:56:19 +10:00
Scott Powell
b1ca3d1eb1 * new PAYLOAD_TYPE_MULTIPART
* experimental double ACK's (at each hop), sent 300ms apart (direct mode only)
2025-06-23 01:14:08 +10:00
Scott Powell
0f9efa2ee8 * room server: suggested keep_alive interval now disabled 2025-06-16 17:02:44 +10:00
Scott Powell
8a7ec9d7fe * interference threshold now disabled by default 2025-06-13 17:24:47 +10:00
Scott Powell
32ca3dc9d0 * repeater and room server: new CLI setting "agc.reset.interval" (seconds) 2025-06-13 14:15:21 +10:00
Scott Powell
af0c409cbb * ver bump to v1.7.0 2025-06-07 16:15:17 +10:00
Scott Powell
5d15a68d0d * SERVER_RESPONSE_DELAY now applied to: login responses, companion telemetry responses 2025-06-04 18:10:47 +10:00
Scott Powell
bdc369be67 * repeater & room server: new SERVER_RESPONSE_DELAY and TXT_ACK_DELAY defines. 2025-06-03 19:01:03 +10:00
Scott Powell
8cf20c7c24 * Room server fix: re-tries for pushPostToClient() used to have same packet hash 2025-06-02 22:19:46 +10:00
Scott Powell
4c3f8ac6b6 * Room server: stats refactor -> noise_floor 2025-05-27 22:38:01 +10:00
Scott Powell
b3d78ac8a7 * interference threshold now stored in prefs, CLI: set/get "int.thresh" 2025-05-26 17:18:49 +10:00
Scott Powell
0bad7ee106 * ver bump to 1.6.2 2025-05-24 16:19:19 +10:00
Scott Powell
a73eb9823d * big refactor of the 'display' object. Now defined in variants/*/target modules. 2025-05-19 14:16:55 +10:00
Scott Powell
65d398fcbc * ver bump to v1.6.1 2025-05-17 20:04:55 +10:00
Scott Powell
e291b57a07 * Dispatcher::checkSend() bug: getOutboundCount() should only count non-future packets 2025-05-14 16:50:11 +10:00
Scott Powell
805ca7b900 * CommonCLI: added "clear stats" command 2025-05-13 18:12:58 +10:00
Scott Powell
177dd90ca1 * Repeater/Room server: new diagnostics, stats.n_full_events now repurposed to 'err_events' (bit flags)
* new Radio::isInRecvMode() method
2025-05-13 15:38:10 +10:00
Scott Powell
d072e7b575 * ver bump to v1.6.0 2025-05-09 18:12:42 +10:00
Scott Powell
f855523481 * refactor: removed mesh::Mesh dependency from CommonCLI 2025-05-06 11:51:51 +10:00
Scott Powell
99774f10ac * new: SensorManager
* BasChatMesh: new onContactRequest(), for PAYLOAD_TYPE_REQ handling.
* companion, repeater and room_server: now with basic 'plumbing' to handle REQ_TYPE_GET_TELEMETRY_DATA (0x03).
* dependency: added CayenneLPP to libdeps
* all target.* modules now with a stub 'sensors' object.
2025-05-03 13:14:03 +10:00
JQ
77f44f727e merge from dev 2025-05-01 18:10:03 -07:00
Scott Powell
8a8e89f282 * refactor: "neighbors" command 2025-04-30 21:41:09 +10:00