Commit Graph
961 Commits
Author SHA1 Message Date
agessaman 56ac85fa72 Merge upstream/dev into mqtt-bridge-implementation
Resolve conflict in CommonCLI.h: keep MQTT/WiFi/timezone fields and add
upstream loop_detect. Add loop_detect sanitization in loadPrefsInt.

Made-with: Cursor
2026-03-04 21:38:36 -08:00
Scott Powell e233346bf0 * repeater: new "get/set loop.detect {off | minimal | moderate | strict }" 2026-03-05 16:26:09 +11:00
Liam Cottle dc9e7abacc Merge pull request #1490 from mesher-de/feature-0hop-cli
Add CLI-command for zerohop advert
2026-03-05 15:24:48 +13:00
Liam Cottle 044c66e261 Merge pull request #1001 from kallanreed/fix_gps_debug_logging
Use correct macro for GPS logging test
2026-03-05 13:14:37 +13:00
agessaman dcbbe5a6d7 Merge upstream/dev into mqtt-bridge-implementation
Resolve conflicts in Heltec tracker/v4 board files: keep upstream
GPIO setup (RTC hold release) and branch comments for GC1109 FEM.

Made-with: Cursor
2026-03-03 12:59:40 -08:00
Liam Cottle cdd3d5f34e Merge pull request #1841 from weebl2000/nit-prefs
prefs is 5 char length :nerd:
2026-03-04 01:39:55 +13:00
ripplebiz 7c594ebc50 Merge pull request #1743 from weebl2000/fixagcreset
fix agc reset on SX126x, SX1276 & LR11x0 chips
2026-03-03 22:19:34 +11:00
Liam Cottle d7ad89046b Merge pull request #1633 from weebl2000/fix/gps-uart-power-leak
Fix GPS UART consuming +8mA when disabled (nRF52)
2026-03-03 23:26:58 +13:00
Wouter BijenandClaude Opus 4.6 2cb08775c0 Clarify comment wording: 1 = direct (0 hops)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 08:40:17 +01:00
Wouter BijenandClaude Opus 4.6 c016db86d5 Address PR review: subtract-1 encoding and clamp max_hops
- Change > to >= so stored value 1 means direct/0-hop only (liamcottle)
- Clamp max_hops to 63 on write since getPathHashCount() caps at 63 (robekl)
- Update comments to reflect encoding: 0=no limit, 1=direct only, N=up to N-1 hops

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 08:37:22 +01:00
Wouter BijenandClaude Opus 4.6 00566741f6 Add configurable max hops filter for auto-add contacts
Filter auto-add of new contacts by hop count (issues #1533, #1546).
Setting is configurable from the companion app via extended
CMD_SET/GET_AUTOADD_CONFIG protocol (0 = no limit, 1-63 = max hops).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 20:41:41 +01:00
Wessel Nieboer 8a9a0dca5f Fix GPS +8mA power leak when disabled (nRF52)
On the T114, GPS_RESET (pin 38) is the same pin as PIN_3V3_EN.
MicroNMEALocationProvider::begin() sets pin 38 HIGH (powering the 3V3
rail) but stop() never set it back LOW, leaving the GPS module powered
even when disabled.

Assert reset pin in stop() to mirror begin(), and guard
_location->loop() behind gps_active check.

Fixes meshcore-dev/MeshCore#1628
2026-02-28 19:13:42 +01:00
Wessel Nieboer 9bae9d0ed2 fix comment, we know the band now after checking LR1110 user manual 2026-02-28 19:09:25 +01:00
Wessel Nieboer 85f764a114 Calibrate configured frequency for AGC reset 2026-02-28 19:09:25 +01:00
Wessel Nieboer f54948e06d Also implement LR11x10 AGC reset
Similar to SX126x but simpler.
2026-02-28 19:09:25 +01:00
Wessel Nieboer b2032e11b6 make it more dry 2026-02-28 19:09:25 +01:00
Wessel Nieboer 9106ab46e1 reset noise_floor sampling after agc reset 2026-02-28 19:09:25 +01:00
Wessel Nieboer a2dc2eb50c when doing AGC reset, call Calibrate(0x7F)
1. warm sleep
2. wake to stdby
3. Calibrate(0x7F) to reset all internal blocks
4. re-apply DIO2 RF / boosted gain & register patch to make sure
everything is as it was
2026-02-28 19:09:25 +01:00
Wessel Nieboer f81ec4b14c fix agc reset 2026-02-28 19:09:25 +01:00
Wessel Nieboer d9e67222f5 prefs is 5 char length :nerd: 2026-02-28 19:07:38 +01:00
enricolorenzoni59 8ad17d1022 gps sync reply: fill buffer with text 2026-02-28 09:07:30 +00:00
Liam Cottle eee42c5099 Merge pull request #1569 from IoTThinks/MCdev-Fixed-Incorrect-Release-of-RefCountedDigitalPin
Fixed RefCountedDigitalPin.h and SSD1306Display for Heltec v4
2026-02-28 17:35:17 +13:00
agessaman 8b35945269 Merge upstream/dev (Packet.cpp fix)
Resolve conflict by taking upstream path encoding fix:
- writeTo: use writePath() for path serialization
- readFrom: use isValidPathLen() and getPathByteLen() for validation

Made-with: Cursor
2026-02-26 09:51:05 -08:00
agessaman c8e220b1ba Refactor Packet handling in MQTTMessageBuilder to support multibyte paths. Update path length handling in Packet::writeTo and Packet::readFrom methods, ensuring correct byte length calculations. Modify path string formatting in MQTTMessageBuilder for improved clarity on path details. 2026-02-25 22:01:44 -08:00
Scott Powell b67decfba0 * bug fix: Packet::writeTo(), Packet::readFrom() 2026-02-26 15:36:21 +11:00
agessaman 51e9907fa6 Merge upstream/dev into mqtt-bridge-implementation
Resolve conflicts in CommonCLI: keep upstream path_hash_mode and
sanitization (adc_multiplier, path_hash_mode constrain), retain
MQTT/NodePrefs layout and MQTT fields.

Made-with: Cursor
2026-02-25 19:41:42 -08:00
Scott Powell 8737c64fdb * Packet::copyPath() fix 2026-02-25 17:10:31 +11:00
agessamanandCursor 397a48fc22 Merge upstream/dev into mqtt-bridge-implementation
Resolve conflicts: keep MQTT/WiFi/timezone/analyzer defaults and get
handlers, add upstream neighbour sort guard, adc_multiplier and
pending_discover, and bootloader.ver get handler.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 16:23:11 -08:00
Scott Powell 45564bad9b * Dispatcher bug fixes 2026-02-23 23:51:30 +11:00
Scott Powell a66773bac0 * CommonCLI: added "get/set path.hash.mode " 2026-02-23 14:25:19 +11:00
Scott Powell 05e7b682b9 Merge branch 'dev' into multibyte-paths 2026-02-23 13:11:36 +11:00
Daniel Novak 011edd3c99 Fix millis() wraparound in PacketQueue time comparisons
PacketQueue::countBefore() and PacketQueue::get() use unsigned
comparison (_schedule_table[j] > now) to check if a packet is
scheduled for the future. This breaks when millis() wraps around
after ~49.7 days: packets scheduled just before the wrap appear
to be in the far future and get stuck in the queue.

Use signed subtraction instead, matching the approach already used
by Dispatcher::millisHasNowPassed(). This correctly handles the
wraparound for time differences up to ~24.8 days in either
direction, well beyond the maximum queue delay of 32 seconds.
2026-02-22 18:01:55 +01:00
Scott Powell 3e76161e9c * refactor of Contact/Client out_path_len (stored in files), from signed to unsigned byte (+2 squashed commits)
Squashed commits:
[f326e25] * misc
[fa5152e] * new 'path mode' parsing in Dispatcher
2026-02-21 19:35:51 +11:00
ripplebiz d05d6abab8 Merge pull request #1726 from weebl2000/fix-packet-pool-leak-queue-full
Fix packet pool leak when rx queue is full
2026-02-21 17:18:02 +11:00
Kevin Le 39fb2902ec Avoid negative _claims 2026-02-18 22:32:01 +07:00
Kevin Le 063f5056f2 Fixed RefCountedDigitalPin.h to release claim correctly. Ensure no negative claims number. 2026-02-18 22:32:01 +07:00
taco 1500a5a9cb add get bootloader.ver command for nrf52 2026-02-18 15:35:20 +11:00
Wessel Nieboer ffc9815e9a Fix packet pool leak when rx queue is full
PacketQueue::add() silently dropped packets when the queue was at
capacity. The packet pointer was lost — never enqueued, never returned
to the unused pool. Each occurrence permanently shrank the 32-packet
pool until allocNew() returned NULL and the node went deaf. Return bool
from add() and free the packet back to the pool on failure.
2026-02-17 23:54:33 +01:00
mesher-de 8e404e9aea add advert.zerohop command to CLI 2026-02-17 13:56:18 +01:00
agessaman 2d4b7a647a Enhance MQTT client configuration by setting keepalive interval to 45 seconds to maintain WebSocket connections through Cloudflare proxy. 2026-02-16 09:41:53 -08:00
agessaman 88ce0d33c3 Update platformio.ini for heltec_v4: switch to heltec_v4_oled configuration for MQTT observer and room server environments, adjusting build flags and source filters accordingly. 2026-02-16 08:39:29 -08:00
agessamanandCursor e89cbee844 Merge upstream/dev into mqtt-bridge-implementation
Resolve conflict in heltec_tracker_v2/platformio.ini: keep
SX126X_REGISTER_PATCH=1 from upstream and retain GC1109 comment.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 08:24:56 -08:00
recrof cafc212bb2 fix M5Stack Unit M6L build errors 2026-02-15 11:25:27 +01:00
Adam Gessaman 8b841d9cfd Merge remote-tracking branch 'origin/dev' into mqtt-bridge-implementation 2026-02-09 09:50:44 -08:00
Adam Gessaman f98c663406 Refine memory pressure management in MQTTBridge
- Updated pressure window and threshold constants to differentiate between critical and moderate memory pressure scenarios.
- Enhanced recovery logic to trigger based on specific pressure conditions, improving responsiveness to memory fragmentation.
- Added explicit calls to recreate analyzer client objects during recovery, ensuring proper setup after memory management actions.

These changes aim to optimize memory handling and recovery processes in the MQTTBridge, enhancing overall stability.
2026-02-09 09:48:34 -08:00
ripplebiz 3f33455b4d Merge pull request #1570 from Quency-D/fix-heltec-power-consumption
Fix heltec-v4 power consumption
2026-02-09 16:49:49 +11:00
agessaman ba4243b525 Enhance NTP synchronization in MQTTBridge
- Improved NTP sync logic by implementing retry attempts for NTP updates, enhancing reliability on various hardware.
- Added a fallback mechanism to use ESP32's built-in SNTP if NTPClient fails, ensuring time synchronization continuity.
- Updated the handling of epoch time validation to ensure it meets a minimum threshold before proceeding with time updates.
- Streamlined the process of setting the system timezone and updating the RTC clock, improving overall time management efficiency.
2026-02-06 20:57:18 -08:00
Adam Gessaman 2640127049 Enhance NTP sync handling in MQTTBridge
- Updated the logic for JWT token timestamp validation to allow reconnection if the system clock is set, even when NTP sync is not confirmed. This change prevents unnecessary connection blocks after a successful NTP sync at boot.
- Introduced a check to determine if the system clock is clearly set, improving the robustness of the connection maintenance process.
2026-02-06 05:54:19 -08:00
Wessel Nieboer 0b1fd580f1 Fix double claim, eliminate dead code at compile time 2026-02-06 11:35:05 +01:00
Adam Gessaman bebde37fb7 Refactor MQTTBridge memory management with unified critical check
- Introduced a new method `runCriticalMemoryCheckAndRecovery()` to streamline memory checks and recovery processes.
- Added member variables to track fragmentation pressure and the last critical check run time.
- Removed redundant critical memory check logic from `mqttTaskLoop()` and `loop()`, enhancing code clarity and maintainability.
- Improved logging and pressure tracking for better diagnostics during memory management.
2026-02-05 21:45:23 -08:00