Commit Graph
2365 Commits
Author SHA1 Message Date
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
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
Adam GessamanandCursor 075552296a Merge origin/dev into mqtt-bridge-implementation
Resolve conflict in variants/heltec_v4/platformio.ini by taking
origin/dev version for PA pin comments and SX126X_RX_BOOSTED_GAIN.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-05 09:55:37 -08:00
ripplebiz f7e92a7cd1 Merge pull request #1398 from Socalix/heltecv4-register1
Improve Heltec v4 RX reception with undocumented register patch
2026-02-05 19:14:18 +11:00
agessaman 26aaace9e9 Enhance MQTTBridge with improved WiFi management and fragmentation recovery
- Added new member variables to track WiFi connection state and implement exponential backoff for reconnection attempts.
- Refactored WiFi monitoring logic into a dedicated function to streamline the mqttTaskLoop.
- Introduced fragmentation recovery logic to handle memory pressure more effectively, ensuring MQTT clients are recreated when necessary.
- Reset reconnect backoff attempts upon successful connection to the main broker.

These changes aim to improve the stability and performance of the MQTTBridge under varying network conditions.
2026-02-04 21:40:16 -08:00
agessaman 1d0d33f939 Add PSRAM support for memory management in MQTTBridge
- Introduced PSRAM-aware memory allocation functions (`psram_malloc` and `psram_free`) to optimize memory usage on ESP32 boards with external RAM.
- Updated MQTTBridge initialization to allocate JWT token buffers and raw data storage in PSRAM when available.
- Enhanced FreeRTOS queue creation to utilize PSRAM for storage, improving memory efficiency.
- Implemented dynamic allocation for JSON buffers in PSRAM during status publishing and packet handling, reducing stack usage.
- Ensured proper memory cleanup for PSRAM allocations in the `end` method to prevent memory leaks.

This update aims to enhance performance and stability in memory-constrained environments by leveraging available PSRAM resources.
2026-02-04 20:02:32 -08:00
agessaman abcfe60948 Add PSRAM diagnostics to MQTTBridge initialization
- Implemented PSRAM availability checks and logging to assist in debugging memory fragmentation on boards with external RAM.
- Enhanced logging to provide detailed information about PSRAM size, free memory, and initialization status.
- Updated platformio.ini files across multiple variants to remove obsolete mbedTLS configuration flags, streamlining the build process.
2026-02-04 18:59:19 -08:00
agessaman 21158e1fd2 Update platformio.ini files across multiple variants to enhance mbedTLS configuration
- Added new build flags for mbedTLS: CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN, CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN, and CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN.
- These changes improve the handling of SSL content lengths, optimizing performance for various hardware variants.
- Updated source filters to include MQTTBridge and MQTTMessageBuilder in relevant configurations.
2026-02-04 18:32:16 -08:00
Adam Gessaman ccaaa534ff Added MQTTBridge memory management and debugging capabilities
- Added memory debugging features to log heap usage and fragmentation recovery for MQTT clients.
- Introduced `recreateMqttClientsForFragmentationRecovery()` to manage MQTT client lifecycles and reduce memory fragmentation.
- Updated critical memory checks to log detailed heap statistics and active MQTT client counts.
- Included new debug logging for memory status every 60 seconds when memory debugging is enabled.

This update aims to improve stability and performance in memory-constrained environments.
2026-02-04 18:28:17 -08:00
ripplebiz 76a46a74e9 Merge pull request #1562 from oltaco/nrf52-sleep-repeater
Add Low-Power Sleep for nRF52 Boards
2026-02-05 13:16:47 +11:00
ripplebiz 4b9d5462bb Merge pull request #1532 from oltaco/esp32board.h-removewifi
Refactor ESP32Board.h to save ~500 bytes of DRAM
2026-02-05 13:09:04 +11:00
Liam Cottle 236025913d Merge pull request #1487 from oltaco/refactor-ui-with-ringbuffer
Show most recent message on display when no client is connected
2026-02-04 15:48:39 +13:00
taco 598489be47 refactor ui with ring buffer and display most recent 2026-02-04 09:38:05 +11:00
agessaman 498566e6c9 MQTT bridge: fix memory use, improve status reporting
- Main broker: only allocate _mqtt_client when custom broker configured
  (analyzer-only saves one PsychicMqttClient). Reconnect main broker after
  forced disconnect with 30s throttle; set last_attempt on disconnect so
  throttle applies and avoids reconnect storms on flaky WiFi.
- Analyzer clients: call disconnect() when WiFi transitions to disconnected
  so ESP-IDF frees MQTT buffers (it does not free on WiFi drop). Reduces
  fragmentation and Max drop after disconnect/reconnect cycles.
- get wifi.status: report WiFi uptime (Xd Xh Xm Xs) when WITH_MQTT_BRIDGE.
  Track connect time in bridge; backfill when already connected at first check.
- get mqtt.status: show msgs on/off, broker (connected/disconnected/n/a),
  analyzer US/EU (connected/disconnected/off), and queue count.

Note: PsychicMqttClient change (register event only on first client creation)
belongs in the library repo if committed separately.
2026-02-02 19:09:31 -08:00
ripplebiz e03f311e51 Merge pull request #1545 from ViezeVingertjes/kiss-modem-firmware
Add KISS-like Modem example and protocol documentation
2026-02-03 12:33:19 +11:00
Adam Gessaman 7fda48d5d6 Merge pull request #2 from atoomnetmarc/mqtt-bridge-implementation
Add Heltec_T190_repeater_observer_mqtt environment
2026-02-02 10:06:58 -08:00
ViezeVingertjes f0ba14ff75 Remove sync word handling from KissModem. 2026-02-02 18:05:26 +01:00
ripplebiz ab994664ac Merge pull request #1549 from Meshcore-Portugal/jbrazio/t114-fix
Revert "Merge pull request #1428 from etienn01/update-t114-i2c"
2026-02-02 13:36:25 +11:00
agessaman f91b715e51 Refactor MQTTBridge packet handling to clarify ownership and memory management
- Updated comments to specify that the Dispatcher owns the packet memory and should handle freeing.
- Removed unnecessary calls to free queued packets in the MQTTBridge, ensuring only references are discarded.
- Enhanced code clarity regarding packet lifecycle management in the end and processPacketQueue methods.
2026-01-31 22:19:19 -08:00
taco a342ab8437 nrf52: allow repeater to sleep when idle 2026-02-01 14:51:27 +11:00
ripplebiz 699d1cd0b6 Merge pull request #1495 from oltaco/esp32-advblob-removal
Fix unlimited advert blob growth on ESP32
2026-02-01 13:37:28 +11:00
ripplebiz 13cfc9ad4c Merge pull request #1498 from piotrmalek/fix-env-sensor-manager
Fix incorrect INA260 address in debug message
2026-02-01 13:34:58 +11:00
ripplebiz f231347131 Merge pull request #1512 from litruv/dev
Refactor display scaling definitions for HELTEC_VISION_MASTER_T190
2026-02-01 13:33:53 +11:00
ripplebiz 852c0b0b78 Merge pull request #1547 from oltaco/t114-remove-extra-dcdcen
Heltec T114: Remove extra DCDC enable call
2026-02-01 13:18:21 +11:00
ViezeVingertjes 240b5ea1e3 Refactor KissModem to integrate radio and sensor management directly, removing callback dependencies. 2026-01-31 15:15:19 +01:00
ViezeVingertjes 1bcb52bab3 Add new commands and responses for RSSI, channel status, airtime, noise floor, statistics, battery, and sensors. 2026-01-31 15:05:25 +01:00
João Brázio b5248faec4 Revert "Merge pull request #1428 from etienn01/update-t114-i2c"
This reverts commit 616eb57b16, reversing
changes made to 537acd7ea1.

This patch needs to be reverted because it boot freezes t114 433Mhz variant.
2026-01-31 13:45:58 +00:00
taco 8d5eaf500d add makeBlobPath inline helper for esp32 2026-02-01 00:02:30 +11:00
taco 31ba971c60 only store advblob when adding/updating contacts 2026-02-01 00:02:30 +11:00
taco e6e1b810f8 add DataStore::deleteBlobByKey() 2026-02-01 00:02:29 +11:00
taco c5b1d30280 t114: remove extra DCDC enable 2026-01-31 23:48:28 +11:00
ViezeVingertjes c786cfe613 Add KISS Modem firmware 2026-01-31 10:22:32 +01:00
Liam Cottle 06a83c0453 Merge pull request #1531 from agessaman/add-recv-errors-stats
Add recv_errors to CMD_GET_STATS STATS_TYPE_PACKETS response
2026-01-30 20:57:07 +13:00
agessaman 019bbf74d3 Add recv_errors to CMD_GET_STATS STATS_TYPE_PACKETS response
Append uint32_t recv_errors (RadioLib receive/CRC errors) to packet stats
binary frame. Frame size 26 -> 30 bytes. Update stats_binary_frames.md and
Python/TypeScript parsing examples for backward compatibility (accept >=26).
2026-01-29 20:44:11 -08:00
taco c7eea3915d fix: remove esp_wifi.h from esp32board.h
saves ~500 bytes of dram and allows Tbeam to compile again
2026-01-30 15:07:40 +11:00
ripplebiz cf7d95c6de Merge pull request #1509 from stevenlafl/tbeam-1w
Add LilyGO T-Beam 1W Support
2026-01-30 14:55:17 +11:00
agessaman ee57731441 Add receive error tracking to Dispatcher and MQTT message builder
- Introduced `getPacketsRecvErrors()` method in `Dispatcher` to track receive errors.
- Updated `buildStatusMessage()` in `MQTTMessageBuilder` to include `recv_errors` parameter.
- Modified `publishStatus()` in `MQTTBridge` to retrieve and send receive error statistics.
- Adjusted `RadioLibWrappers` to override `getPacketsRecvErrors()` for consistency.
2026-01-29 19:18:52 -08:00
ripplebiz e60fb14e88 Merge pull request #1500 from Meshcore-Portugal/jbrazio/2026_03a6aa94
Allow usage of "/" in radio names
2026-01-30 12:09:08 +11:00
Liam Cottle e50fe31fd6 Merge pull request #1528 from recrof/revert-1437-dev
Revert "Remove _serial->isConnected() logic from buzzer notifications"
2026-01-30 12:16:12 +13:00
Rastislav Vysoky c345f1da8e Revert "Remove _serial->isConnected() logic from buzzer notifications" 2026-01-30 00:12:04 +01:00
atoomnetmarc b20e05bd8b Add Heltec_T190_repeater_observer_mqtt environment 2026-01-29 20:35:23 +01:00
Adam Gessaman 37e51f3eb1 Merge branch 'dev' into mqtt-bridge-implementation 2026-01-29 08:58:58 -08:00
SoCalix 31fbb679d5 Merge branch 'dev' into heltecv4-register1 2026-01-29 09:12:35 -06:00
fdlamotte acca73f57e Merge pull request #1524 from recrof/thinknode-m3-m6-fixes
Elecrow ThinkNode M3, M6 build errors fix after NRF52Board base class migration
2026-01-29 11:07:32 -04:00
Rastislav Vysoky 2a321b53eb renamed board files 2026-01-29 16:00:19 +01:00
Rastislav Vysoky 3a7ccc085d fixed build errors and typos/inconsistencies 2026-01-29 15:32:51 +01:00
Scott Powell 465776d667 * ver 1.12.0 2026-01-29 21:12:31 +11:00
Steven Linn a9a8299e14 Set LilyGO T-Beam 1W to use TX0 3.0V (within reference +2.85V~+3.15V) 2026-01-28 22:24:57 -07:00
Steven Linn 44e7c092c8 Add battery min/max voltage parameter support 2026-01-28 22:24:49 -07:00
Steven Linn f7e54ea797 Add LilyGO T-Beam 1W Support 2026-01-28 22:24:43 -07:00