Commit Graph

131 Commits

Author SHA1 Message Date
agessaman 4a60f16683 Refactor logging and error handling in MyMesh and MQTTBridge. Implement checks for Serial availability before printing logs to prevent potential blocking. Update MQTTBridge to include circuit breaker logic for managing reconnect attempts and enhance slot management with new state tracking. Expand MQTTPresetDef to include a new preset with configurable token lifetime and retain options. 2026-03-23 20:21:47 -07:00
agessaman c67fb12b44 Refactor MQTT bridge implementation to use dynamic allocation for the MQTTBridge instance, preventing static initialization crashes on ESP32. Update related methods to check for bridge existence before invoking operations. Enhance documentation to clarify memory limits for active connection slots based on PSRAM availability. 2026-03-21 12:21:34 -07:00
agessaman b43e9618db Refactor MQTT bridge implementation to support up to 3 configurable connection slots with built-in presets for LetsMesh Analyzer (US/EU) and MeshMapper. Update CLI commands for slot management and enhance configuration migration from legacy settings. Adjust related documentation and code structure for improved clarity and functionality. 2026-03-20 22:41:41 -07:00
agessaman abe6e046fe Merge branch 'upstream/dev' into mqtt-bridge-implementation
Reverted prior dev merge, then merged current meshcore-dev dev. Resolved
CommonCLI by restoring MQTT prefs flow with upstream com_prefs layout
(rx_boosted_gain at offset 79), rxgain CLI, poweroff/shutdown, and FEM
variant files from upstream.

Made-with: Cursor
2026-03-20 15:55:39 -07:00
agessaman 22eb9b87a3 Revert "Merge remote-tracking branch 'origin/dev' into mqtt-bridge-implementation"
This reverts commit 2b63765522, reversing
changes made to 304719e8e0.
2026-03-20 15:54:14 -07:00
agessaman 2b63765522 Merge remote-tracking branch 'origin/dev' into mqtt-bridge-implementation 2026-03-20 06:06:06 -07:00
João Brázio 92bef49c55 Merge branch 'dev' into 2026/remote-lna 2026-03-16 09:40:10 +00:00
João Brázio 274e00df50 Merge remote-tracking branch 'upstream/dev' into 2026/remote-lna 2026-03-16 09:37:55 +00:00
Scott Powell fcfdc5fc5b * Repeater and Room Server: flood advert timer now uses the path_hash_mode pref 2026-03-16 13:56:19 +11:00
ripplebiz cf0cc851d4 Merge pull request #1297 from ViezeVingertjes/feature/duty-cycle-token-bucket
Implement token bucket duty cycle enforcement
2026-03-08 23:54:32 +11:00
agessaman 304719e8e0 Remove default enabling of MQTT analyzer servers in MyMesh::begin for both simple_repeater and simple_room_server examples. 2026-03-07 10:51:04 -08:00
ripplebiz 29be7e293c Merge pull request #1877 from DanielNovak/fix-countbefore-sentinel-regression
Fix countBefore regression: replace sentinel with getOutboundTotal()
2026-03-07 18:48:02 +11:00
agessaman db8b4419e4 Merge upstream/dev into mqtt-bridge-implementation
Resolve conflict in docs/faq.md: take upstream TOC and content (expanded
project list, 5.15/5.16, 7.7 transmit power, intro links).

Made-with: Cursor
2026-03-06 05:55:08 -08:00
João Brázio 3e7fb4add1 Add setRxBoostedGain method declaration and implementation for SX1262/SX1268 2026-03-05 18:48:40 +00:00
João Brázio 9a95e25ef2 Remove unused RX boosted gain mode functions and related preprocessor directives across multiple variants 2026-03-05 18:38:57 +00:00
João Brázio f858f2e4bb Rename sx126x_rx_boosted_gain to rx_boosted_gain 2026-03-05 18:14:47 +00:00
João Brázio 8df87d5609 Merge remote-tracking branch 'upstream/dev' into 2026/remote-lna 2026-03-05 17:21:38 +00:00
Scott Powell 5684b4f1b8 * LOOP_DETECT_MODERATE bug fix 2026-03-05 17:38:51 +11:00
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
Daniel Novak c7568a8db0 Replace 0xFFFFFFFF sentinel with explicit getOutboundTotal()
Instead of overloading getOutboundCount() with a magic sentinel value,
add a dedicated getOutboundTotal() method to the PacketManager interface
that returns the total queue size without time filtering.

This eliminates the fragile convention that caused the regression and
makes the two operations — time-filtered count vs total count —
explicitly separate in the API.
2026-02-28 17:19:04 +01:00
João Brázio 64a16d7ad2 Merge branch 'dev' into 2026/remote-lna 2026-02-27 10:32:14 +00: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
agessaman ee1a9b4ab7 Remove unused preprocessor directive in MyMesh.cpp 2026-02-25 19:38:39 -08:00
agessaman 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 a66773bac0 * CommonCLI: added "get/set path.hash.mode " 2026-02-23 14:25:19 +11: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
Liam Cottle bbc5f0c11a Merge pull request #1718 from realtag-github/repeater-v1.13-implement-discover
discover sends a single repeater discovery request and populates the neighbor list; self is excluded
2026-02-17 23:53:28 +13:00
Scott Powell 5de3e1bf32 * repeater: slight increase to default direct.txdelay 2026-02-17 20:10:13 +11:00
3DPGG 3e53df5082 Fix LilyGo_TLora_V2_1_1_6_terminal_chat build
This change addresses two issues. The first is that the
LilyGo_TLora_V2_1_1_6_terminal_chat build would try to compile
simple_repeater/MyMesh.cpp. All other examples of terminal chat
targets are instead building simple_secure_chat/main.cpp . This
change would align this build to the rest of the builds.

The second issue, found during the course of investigating the
first, stems from simple_repeater/MyMesh.cpp using the
MAX_NEIGHBOURS #define to control whether the neighbor list is kept.
Repeaters that keep this list must define this value, and if the
value is not defined, then all neighbor-related functionality is
compiled out. However, the code that replies to
REQ_TYPE_GET_NEIGHBOURS did not properly check for this #define,
and thus any target that compiles simple_repeater/MyMesh.cpp
without defining MAX_NEIGHBOURS would get an undefined variable
compilation error.

As a practical matter though, there are no targets that compile
simple_repeater/MyMesh.cpp AND do not define MAX_NEIGHBOURS,
except this build due to the first issue. As a result, the
second issue is addressed only as a matter of completeness. The
expected behavior with this change is that such a repeater would
send a valid reply indicating zero known neighbors.
2026-02-16 18:10:29 -08:00
realtag 0770618ee2 Allow repeater discovery even if repeater mode is disabled on the requesting repeater. 2026-02-17 01:39:04 +00:00
realtag bf9c6cb50f Increased the timeout timer to 60 seconds, up from 30 seconds. 2026-02-17 01:22:17 +00:00
realtag 87c78a98bd discover.neighbors sends a tagged repeater discovery request and only accepts matching repeater responses 2026-02-17 01:04:14 +00:00
realtag e8785dd9b0 discover sends a single repeater discovery request and populates the neighbor list; self is excluded 2026-02-17 00:41:24 +00:00
João Brázio 71136671bd Implement remote lna toggle cli cmd 2026-02-10 15:02:23 +00:00
Adam Gessaman 8b841d9cfd Merge remote-tracking branch 'origin/dev' into mqtt-bridge-implementation 2026-02-09 09:50:44 -08:00
ripplebiz f6fc05601c Merge pull request #1609 from weebl2000/bridge-always-has-work
Bridge always has work (prevents sleep)
2026-02-08 22:42:05 +11:00
Wessel Nieboer c4c287d01b Bridge always has work (prevents sleep) 2026-02-07 15:39:24 +01:00
Wessel Nieboer d0720c63c2 Allow negative tx power
Like SX1262 allows -9 dBm lowest, some allow lower but that probably
isn't useful
2026-02-06 02:24:51 +01:00
agessaman 2a84e58b3a Merge upstream/dev into mqtt-bridge-responsiveness-changes
Resolved conflicts in:
- examples/simple_repeater/MyMesh.cpp: kept analyzer/MQTT origin code, updated acl.load() signature
- examples/simple_room_server/MyMesh.cpp: kept MQTT bridge init, added acl parameter to _cli constructor
- src/helpers/CommonCLI.cpp: merged MQTT get commands with ADC/power management commands
2026-01-26 19:30:45 -08:00
ripplebiz d81616ec68 Merge pull request #1476 from mattzzw/region_via_LoRa
Add cli command `region list {allowed|denied}`, enable output of region cmd via remote cli
2026-01-27 11:07:22 +11:00
Matthias Wientapper 0805a47f35 Add output of region cmd via lora cli
Add cli commands "region list {allowed|denied}"
2026-01-26 17:44:43 +01:00
liamcottle ed589f9620 boot adverts are now zero hop instead of flood 2026-01-26 22:20:36 +13:00
ripplebiz 4b7684c7df Merge pull request #1477 from Cisien/dev
Expose a counter to track RadioLib receive errors
2026-01-26 19:04:48 +11:00
Chris c16bcd2fe3 Expose a counter to track RadioLib receive errors
This change counts when readData returns an err code other than RADIOLIB_ERR_NONE. In most cases this is going to be a CRC error. This counter is exposed in the `stats-packets` command, and in the repeater stats payload (4 additional bytes to the payload, which is now 56 bytes with this change. My incompetent robot claims the total payload size is 96 bytes (unverified but probably close).
2026-01-24 20:06:29 -08:00
taco 96ef5e5efe allow set prv.key from remote, validate new prv.key 2026-01-25 01:32:48 +11:00
taco 988287bfd7 recalc ClientACL shared_secrets at startup 2026-01-25 01:32:44 +11:00
taco 6336bd5b72 refactor ClientACL and CommonCLI, add ClientACL::clear() 2026-01-25 01:31:53 +11:00
agessaman c055228c91 Refactor MQTTBridge connection handling for improved stability and responsiveness
- Simplified connection attempt logic to allow immediate reconnects after failures.
- Added checks to ensure the MQTT client is disconnected before new connection attempts.
- Enhanced error handling during publish operations to reset connection state on failures.
- Removed aggressive health checks that caused connection instability, relying on the MQTT client library for connection management.
- Updated status publishing to verify connection state before attempting to publish, ensuring accurate broker status.
2026-01-22 07:51:38 -08:00
agessaman 39ba020fab Merge upstream/dev into mqtt-bridge-responsiveness-changes
Resolved conflicts in:
- examples/simple_repeater/MyMesh.cpp: merged comparison functions with new handler functions
- src/helpers/CommonCLI.cpp: merged MQTT fields handling with adc_multiplier and owner_info
- src/helpers/CommonCLI.h: merged NodePrefs struct changes
- variants/heltec_v3/platformio.ini: kept upstream WiFi settings
- variants/xiao_s3_wio/platformio.ini: added upstream environment definitions

Verified observer firmwares compile successfully.
2026-01-21 20:37:40 -08:00