Commit Graph
1071 Commits
Author SHA1 Message Date
Scott Powell 9a6c0ae71c * misc fixes 2026-11-01 17:52:27 +11:00
Scott Powell 8bcf760558 Merge branch 'dev' into new-direct-mode 2026-10-29 12:18:41 +11:00
ripplebiz 42ded8da64 Merge pull request #3688 from Blake-Latchford/fix/stats-dup-count-wrap
Saturate duplicate packet stats instead of wrapping
2026-10-28 17:06:21 +11:00
Liam Cottle fd56b1a36c Merge pull request #3615 from radek-sixi/fix/common-radio-prefs-signed-tx-power
Fix unsigned conversion of negative TX power in CommonRadioPrefs
2026-10-27 22:44:04 +13:00
Scott Powell f9e893ee8d * updateContactFromFrame() bug fix 2026-10-27 11:30:29 +11:00
Blake LatchfordandClaude Opus 5.5 26e438904e Saturate duplicate packet stats instead of wrapping
Tested on a Heltec V4 repeater with the counter seeded at 65530.

Fixes #3255

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 21:45:10 -04:00
ripplebiz 46216b2d0d Merge pull request #3617 from aXistem-dev/feat/tz-offset-quarter-hours
Show quarter-hour timezone offsets with two decimals
2026-10-26 12:27:10 +11:00
ripplebiz 55abbe72b2 Merge pull request #3667 from Blake-Latchford/fix/kiss-modem-usbcdc-tx-buffer
Fix broken KISS modem build on 6 ESP32-S3 platforms
2026-10-26 12:02:57 +11:00
fdlamotte ea8e95447f Merge pull request #3659 from fdlamotte/elecrow_eink_refactor
Elecrow eink refactor
2026-10-24 19:50:03 -04:00
Florent da98f5318d UiTask: better cleaning of eink screens when hibernating 2026-10-24 10:16:56 -04:00
Scott Powell a8b3118b42 * added 'wide.snr.thresh' config
* repeater: Wide mode, isHashNeighbor() now only considers neighbor nodes with SNR >= threshold
2026-10-23 13:04:26 +11:00
Blake Latchford 47259633f2 Fix broken KISS modem build on 6 ESP32-S3 platforms
Broken out from PR #3496 which has been open for a month.
2026-10-22 17:57:33 -04:00
Marcel Verdult 56b5f4e9c6 fix(chat): refuse a negative text length for a group message
CMD_SEND_CHANNEL_TXT_MSG reads txt_type, channel_idx and a 4 byte timestamp, so
the frame needs 7 bytes before the text starts, and the branch had no length
guard. For a shorter frame "len - i" is computed in size_t, wraps, and reaches
sendGroupMessage() as a negative int. The clamp there tests
"text_len + prefix_len > MAX_TEXT_LEN", which a negative value passes, and the
following memcpy() converts the length back to a size_t: a 3 byte frame asks for
4294967292 bytes into a 197 byte stack buffer.

Two guards, because there are two mistakes. The branch now states its minimum
like most other branches of handleCmdFrame do, so a frame below 7 bytes is
answered through the existing path instead of being parsed. And
sendGroupMessage() refuses a negative length the way sendGroupData() in the same
file already does, which protects every other caller.

A frame of exactly 7 bytes keeps working and sends an empty message, as before.

Evidence. On a T-Echo running dev 428a95c6, built with
FIRMWARE_BUILD_DATE "f1-dev" and confirmed by "ver => v1.18.0 (Build: f1-dev)":

  CH_TXT len=7    -> RESP_CODE_OK
  GET_STATS core  -> uptime=78s
  CH_TXT len=3    -> NO REPLY
  DEVICE_QUERY    -> NO REPLY  (three times over 8 s, node never came back)
2026-10-22 09:33:07 +00:00
Florent 408d674ace DisplayDriver: fixing alignment issue in vtable for nrf52 and epd display 2026-10-21 17:13:27 -04:00
Florent a31e2c92df refactoring eink devices behaviour 2026-10-21 14:08:56 -04:00
Confituurke a8e8d01a3c Use two decimals only for exact quarter-hour offsets 2026-10-21 11:24:34 +02:00
Scott Powell fe298318be * squashed 2026-10-19 10:41:51 +11:00
Confituurke b7389353e2 Show quarter-hour timezone offsets with two decimals
'get tz.offset' printed one decimal, so a UTC+5:45 offset (5.75)
read back as 5.8. Print two decimals when the offset is on a quarter
hour (x.25 / x.75); everything else keeps one decimal.
2026-10-17 13:03:06 +02:00
rado 85ad886589 Fix unsigned conversion of negative TX power in CommonRadioPrefs 2026-10-17 09:36:59 +02:00
Liam Cottle 428a95c643 Merge pull request #3606 from amdoolittle/feature/ble-conditional-display
Remove BLE screen when BLE not available
2026-10-17 15:38:18 +13:00
liamcottle 0e63c183a8 tz_offset should be treated as float when down casting calculation result to int32 2026-10-17 15:22:46 +13:00
liamcottle 7a0fde2912 timezone offset is now stored as float to allow half hour offsets 2026-10-17 15:16:38 +13:00
amdoolittle 6e1f474f7d Update UITask.cpp
Housekeeping: removed unnecessary space
2026-10-16 17:30:19 -07:00
amdoolittle b9c328a882 Remove BLE screen when BLE not available 2026-10-16 10:04:44 -07:00
Scott Powell 07a833bbbe * version 1.18.0 2026-10-15 19:42:01 +11:00
Liam Cottle 2586f7abe3 Merge pull request #3591 from liamcottle/feature/companion-ble-wifi
Add WiFi support to Heltec v3 and v4 BLE variants
2026-10-14 20:23:11 +13:00
liamcottle a0fc769660 rework companion ui for ip address so it fits in multi interface variants 2026-10-14 16:29:41 +13:00
Scott Powell 481f72cae7 * only 'repeat on' now intercepted 2026-10-14 12:21:38 +11:00
Scott Powell 8579c66747 * Room: "set repeat" CLI now deprecated 2026-10-14 11:48:58 +11:00
Scott Powell f19733e478 * don't respond to DISCOVER requests if node has adverts turned off. (isHiddenNode()) 2026-10-04 15:02:00 +11:00
Huw Duddy 37a71d9381 Merge pull request #3495 from meshcore-dev/increase-max-search-results
increased MAX_SEARCH_RESULTS to 24. (was 8)
2026-09-29 20:42:48 +10:00
Scott Powell b204f9a114 * changed onUnhandledResponse() to return true if handled/consumed
* unhandled responses (eg. push telemetry) now sent to app as PUSH_CODE_BINARY_RESPONSE frames
2026-09-24 13:49:57 +10:00
Scott Powell f9e70426ae increased MAX_SEARCH_RESULTS to 24. (was 8)
Closes #3243
2026-09-24 13:35:27 +10:00
Scott Powell 560fb847d5 missing board.loop() in companion, room server, kiss modem. 2026-09-22 18:01:15 +10:00
ripplebiz a76d511ff4 Merge pull request #3131 from liekmarflow/feature/board-api-hooks
Add board loop hook for periodic work
2026-09-22 16:43:18 +10:00
Wolfram Keil 61be70849a Add board loop hook for periodic work 2026-09-22 08:01:48 +02:00
Blake Latchford 0c3fe356d0 Constrain agc.reset.interval and allow intervals > 255s 2026-09-21 12:26:36 -04:00
ripplebiz 65737d48f4 Merge pull request #3402 from meshcore-dev/sensor-improvements
Sensor improvements
2026-09-21 19:03:18 +10:00
ripplebiz b37e7dd955 Merge pull request #3431 from meshcore-dev/abstract-ui-overhaul
Abstract UI overhaul
2026-09-20 18:08:29 +10:00
liamcottle 73afe3a0f5 allow fetching configured wifi password via companion cli 2026-09-20 14:22:13 +12:00
Scott Powell 64434c5326 * misc 2026-09-19 20:13:18 +10:00
Kevin Le c425648bfc Off LED before powering off for repeater 2026-09-19 11:26:42 +07:00
Scott Powell 843598724c * fix for X1 2026-09-18 19:03:20 +10:00
Liam Cottle 166f75c1b6 Merge pull request #3442 from liamcottle/feature/companion-cli-commands
added reboot, shutdown and poweroff to companion cli commands
2026-09-18 18:25:33 +12:00
liamcottle 242e401a2c added reboot, shutdown and poweroff to companion cli commands 2026-09-18 18:17:52 +12:00
Blake Latchford 1077331e31 Extend WiFi disconnect logging to specify reason
Today if a user builds firmware with an incorrect WiFi SSID or password,
they get a generic `WiFi disconnected.` error message.

Extend logging to descirbe the reason that WiFi was disconnected.

I gathered the updated logs for the 3 scenarios below.

```
WiFi: Attempting manual WiFi reconnect...
WiFi: WiFi disconnected (reason=ASSOC_LEAVE). Flagging for reconnect...
WiFi: WiFi disconnected (reason=4WAY_HANDSHAKE_TIMEOUT). Flagging for reconnect...
WiFi: WiFi disconnected (reason=4WAY_HANDSHAKE_TIMEOUT). Flagging for reconnect...
WiFi: WiFi disconnected (reason=4WAY_HANDSHAKE_TIMEOUT). Flagging for reconnect...
```

```
WiFi: WiFi disconnected (reason=NO_AP_FOUND). Flagging for reconnect...
```

```
WiFi: WiFi connected successfully!
WiFi: Got connection
```
2026-09-17 19:39:51 -04:00
Scott Powell b3b17025e3 * more MyMesh::Listener interface hooks 2026-09-17 17:33:36 +10:00
Scott Powell 30dd723c26 * MyMesh::begin() refactor, removing last display concepts 2026-09-17 14:25:41 +10:00
Scott Powell 5c3d9281ff * refactored the UI_DISCOVER_* feature 2026-09-17 13:45:33 +10:00
Scott Powell 3caf033de2 * refactor: removed UITask dependency from MyMesh. New MyMesh::Listener interface
* UITask's are now a MyMesh task Listener
2026-09-16 21:03:44 +10:00