Commit Graph
2929 Commits
Author SHA1 Message Date
agessaman 32449e62cc fix(mqtt): remove errant clearLastWill method from PsychicMqttClient 2026-04-25 18:15:02 -07:00
agessaman 673361b63a fix(mqtt): restore 'origin' field position in packet message structure
Reintroduced the 'origin' field in the buildPacketMessage function to its original position within the JSON object. This adjustment ensures consistency in the message format and aligns with previous structural changes made to enhance clarity.
2026-04-25 17:14:05 -07:00
agessaman 8be27e4e94 refactor(mqtt): reorganize packet message structure in MQTTMessageBuilder
Updated the buildPacketMessage function to improve the structure of the JSON object being built. The 'origin_id' field has been moved to a later position, and the 'hash' field has been added to enhance the packet's metadata. This change aims to streamline the message format for better clarity and consistency.
2026-04-25 17:02:41 -07:00
agessaman bfcf017625 refactor(mqtt): update default TX packet settings and documentation
Changed the default setting for TX packets from disabled to 'advert' across multiple files, including documentation and example implementations. This aligns the behavior of the MQTT bridge with the new default preferences, ensuring that only the node's own advert packets are uplinked by default. Updated relevant comments and documentation to reflect these changes.
2026-04-25 09:32:23 -07:00
agessaman 0a4f002fef feat(platformio): add new MQTT observer configurations for Heltec V4 expansion kit
Introduced two new environments in platformio.ini for the Heltec V4 expansion kit: `heltec_v4_expansionkit_repeater_observer_mqtt` and `heltec_v4_expansionkit_room_server_observer_mqtt`. Each environment includes specific build flags, dependencies, and source filters tailored for MQTT functionality, enhancing the project's capabilities for IoT applications.
2026-04-24 21:49:29 -07:00
agessaman 7b21be3e39 feat(cli): add radio watchdog command and update documentation
Introduced a new CLI command to view and set the radio watchdog interval, allowing users to configure the watchdog timeout in minutes (0 to disable, 1-120 for active). Updated the documentation to reflect this addition and clarified the parameters for the `neighbor.remove` command. Default watchdog interval is set to 5 minutes in the codebase.
2026-04-24 20:54:00 -07:00
agessaman 6211885c84 refactor(mqtt): standardize formatting of MQTT preset definitions
Updated the formatting of MQTT preset entries in MQTTPresets.h for improved readability and consistency. No functional changes were made to the preset definitions.
2026-04-24 20:40:32 -07:00
Adam Gessaman 5ae3ab813e Merge pull request #6 from chicagolandmesh/chicagolandmesh-patch-1
fix chimesh mqtt preset path
2026-04-24 20:36:30 -07:00
Chicagoland Mesh 7f8d13ff07 add missing mqtt presets in docs 2026-04-24 14:13:47 -05:00
Chicagoland Mesh e5225a14d3 add new presets to error message in cli 2026-04-24 14:06:44 -05:00
Chicagoland Mesh 22519f33b3 fix mqtt path for chimesh preset 2026-04-24 14:03:54 -05:00
agessaman 0d28025740 refactor(heltec_tracker_v2): align FEM with meshcore-dev KCT8103L
Match upstream pin map (KCT8103L CSD/CTX, I2C 6/17, LORA_TX_POWER=9) and restore meshcore LoRaFEMControl.cpp and HeltecTrackerV2Board.cpp. Run ESP32 at 240MHz for MQTT/WiFi bridge headroom. Sensor env drops fork-only ENV_PIN overrides to match upstream.

Made-with: Cursor
2026-04-24 10:39:48 -07:00
agessaman 255fce7f65 feat(heltec_tracker_v2): restore LoRaFEMControl for GC1109
Upstream adds LoRaFEMControl for a KCT8103L pinout; this variant uses GC1109 (P_LORA_PA_*). Reintroduce the class with the same API and wire HeltecTrackerV2Board through it so FEM logic matches platformio.ini.

Made-with: Cursor
2026-04-24 10:32:14 -07:00
agessaman c1989d6fda Merge remote-tracking branch 'upstream/dev' into mqtt-bridge-implementation-flex
Resolve heltec_tracker_v2 LoRaFEMControl modify/delete by keeping inlined FEM logic in HeltecTrackerV2Board.

Made-with: Cursor
2026-04-24 10:20:52 -07:00
agessaman ee4e39bcc0 feat(mqtt): add two new MQTT presets for chimesh and meshat.se
Updated the MQTT preset definitions to include new entries for chimesh and meshat.se, increasing the total number of built-in presets from 9 to 11.
2026-04-24 10:17:23 -07:00
Liam Cottle 9a1be5386d Merge pull request #2326 from IoTThinks/MCdev-Added-HeltecV4-Expansion-Kit-2026-04-16
Added support for Expansion Kit to Heltec V4 OLED repeaters
2026-04-25 00:14:12 +12:00
agessaman 70722a5873 fix(mqtt): restore legacy outbox behavior for QoS0 async publishes
Update the PsychicMqttClient to ensure that QoS0 messages are enqueued with durable outbox storage. This change addresses issues with false-failure semantics in certain connected paths, improving message flow reliability. Additionally, modify platformio.ini to include SSL certificate generation and adjust build flags for reduced verbosity and enhanced functionality.
2026-04-23 22:48:21 -07:00
agessaman bb67b04ef8 fix(mqtt): mark configuration as dirty on setter calls and optimize config application during connect and reconnect
Update the PsychicMqttClient to set a _config_dirty flag whenever a configuration setter is called. This ensures that the MQTT configuration is only applied when changes are made, optimizing the connect and reconnect processes. Added logging to indicate whether the configuration was updated or unchanged.
2026-04-23 21:50:44 -07:00
agessaman 7d0c5bce50 enhance(mqtt): improve QoS handling and retry logic in MQTTBridge
Refactor the MQTTBridge to implement enhanced QoS handling for publish operations. Introduce retry mechanisms for QoS0 packets, allowing for transient failures to be retried with a delay. Update publish methods to return success status, improving error handling and logging. Additionally, adjust the packet queue processing to accommodate new retry logic and ensure better message delivery control.
2026-04-23 21:06:49 -07:00
Adam Gessaman 9cfaaeba82 Change radio parameter format in documentation
Updated radio parameter format from space-separated to comma-separated in the MQTT implementation documentation.
2026-04-23 20:40:22 -07:00
Liam Cottle 5372388e6e Merge pull request #2353 from jirogit/fix/techo-lite-non-shell-ble-clean
feat(techo-lite): add Non-Shell companion BLE variant
2026-04-22 20:25:32 +12:00
Liam Cottle dc548578ff Merge pull request #2287 from pelgraine/fix/techo-lite-battery
Fixes #1183 — T-Echo Lite incorrect battery voltage
2026-04-22 20:23:21 +12:00
Liam Cottle d3b457681a Merge pull request #2008 from weebl2000/p_lora_reset_rak4631
Fix RAK4631 SX1262 hardware pin config
2026-04-22 19:45:06 +12:00
Liam Cottle f1f1361fd5 Merge pull request #2340 from weebl2000/fem-enabled-def
Fix FEM/LNA enbaled by default for Heltec T096, Heltec Wireless Tracker v2
2026-04-22 19:33:29 +12:00
Liam Cottle bdae60498c Merge pull request #2016 from weebl2000/add-lr1110-sx1276
Add sanity build for LR1110 and SX1276 too
2026-04-22 19:30:12 +12:00
Wessel Nieboer 66fe9ac2db Fix FEM/LNA enbaled by default for Heltec T096, Heltec Wireless Tracker v2
Should only really be disabled when it causes issues.
2026-04-22 09:30:00 +02:00
Liam Cottle cc6139bc23 Merge pull request #2371 from weebl2000/r1-neo-shutdown
Implement proper shutdown procedure for R1 neo
2026-04-22 19:22:46 +12:00
agessaman cfec3a5b58 refactor(mqtt): remove legacy CLI handling for mqtt.server, port, username, and password
Eliminate legacy support for mqtt.server, mqtt.port, mqtt.username, and mqtt.password in the CommonCLI. This streamlines the command handling process and aligns with the updated configuration management.

Made-with: Cursor
2026-04-21 21:49:21 -07:00
agessaman ac2662c573 fix(mqtt): align legacy CLI with slot prefs and restore isConfigValid
Map mqtt.server/port/username/password to slot 3 (index 2) and analyzer
toggles to slot presets. Add MQTTBridge::isConfigValid matching bridge
startup rules.

Made-with: Cursor
2026-04-21 21:44:03 -07:00
agessaman d6712c69c8 Merge mqtt-bridge-implementation into mqtt-bridge-implementation-flex
Integrate upstream/dev changes from merge 563d9a7 while preserving flex
MQTT memory and CLI behavior (slot commands, snmp, mqtt.rx/advert TX,
bridge.source sync, prefs layout, cert ignore rules).

Made-with: Cursor
2026-04-21 21:38:18 -07:00
Adam Gessaman 0ad7c33549 Merge pull request #4 from agessaman/fix/malloc-remove
Refactor PsychicMqttClient to improve memory management and callback …
2026-04-21 21:24:54 -07:00
agessaman e9ff1ae055 Refactor PsychicMqttClient to improve memory management and callback handling. Replace dynamic memory allocations with fixed-size arrays for callbacks, enhancing performance and reducing fragmentation. Introduce inline storage for topics and optimize buffer allocation during connection setup. Update version to 0.2.2 to reflect changes. 2026-04-21 20:43:09 -07:00
pelgraine d516cd8a9e Fixes #1183 — T-Echo Lite incorrect battery voltage
Battery (TechoBoard.h/cpp): Added PIN_VBAT_MEAS_EN (P0.31) — the T-Echo
Lite has a gated voltage divider that must be enabled before reading. Also
added pinMode(PIN_VBAT_READ, INPUT) before each ADC read to reclaim P0.02
from other peripherals. Pin definitions hardcoded from LilyGo's
t_echo_lite_config.h.

I2C (variant.h): Corrected SDA/SCL from P0.04/P0.02 to P1.04/P1.02 per
LilyGo's IIC_1_SDA/IIC_1_SCL. The old P0.02 mapping conflicted with the
battery ADC pin.

GPS (variant.h): Corrected all five GPS pin assignments to match LilyGo's
config — UART TX/RX, wake, PPS, and power enable were all scrambled.

SPI (variant.h): Fixed SPI_INTERFACES_COUNT from _PINNUM(0, 2) to (2).

Tested on T-Echo Lite Non-Shell (USB-C, no display). Battery readings match
Heltec V4 reference within 10mV.
2026-04-22 12:56:15 +10:00
Wessel Nieboer 07671cf1fe Implement proper shutdown procedure for R1 neo
fixes #2361
2026-04-21 21:29:18 +02:00
Liam Cottle d532481f34 Merge pull request #2335 from fizzyfuzzle/v4_adc_mult
Add Heltec V4 set adc.multiplier functionality
2026-04-21 18:06:42 +12:00
me 28b1586fd7 feat(techo-lite): add Non-Shell (screenless) companion BLE variant
T-Echo Lite Non-Shell has no ePaper display, but the existing
companion BLE env inherits DISPLAY_CLASS=GxEPDDisplay from the base
env. This causes display.begin() to run on non-existent hardware,
corrupting BLE initialization and generating a random PIN that
cannot be displayed, making BLE connection impossible.

Add LilyGo_T-Echo-Lite_non_shell_companion_radio_ble env that:
- excludes DISPLAY_CLASS and ePaper-related build flags
- removes GxEPDDisplay.cpp and ui-new from build sources
- uses static BLE_PIN_CODE=123456 (avoids random PIN generation)

Also fix boards/t-echo.json:
- add nrfutil to upload protocols list
- add use_1200bps_touch=true and wait_for_upload_port=true
  to enable reliable flashing via PlatformIO upload button
2026-04-20 21:08:08 -07:00
Scott Powell 3d982711a6 * CommonCLI: more reply bounds checking 2026-04-21 12:12:47 +10:00
Scott Powell db7baa7bd7 * CommonCLI: bounds check added to "unknown config:" replies 2026-04-21 12:07:39 +10:00
agessaman 1ff9437f73 Enhance MQTTBridge with improved memory management and logging. Introduce deferred logging for connection attempts based on heap availability, and implement QoS support in publish methods for better message delivery control. Add mechanisms to handle low memory conditions, including a gray-zone detection for TLS viability and a post-recovery escalation strategy to ensure system stability. 2026-04-19 15:33:38 -07:00
agessaman 563d9a7d39 Merge upstream/dev into mqtt-bridge-implementation
Resolve conflicts: devcontainer Node feature; UITask USER_BTN + MQTT WiFi;
room server ctor with RegionMap + MQTTBridge; CommonCLI prefs layout
(rx_boosted_gain after owner_info), refactor get/set into handlers with
MQTT CLI branches and getBoard preserved.

Made-with: Cursor
2026-04-19 10:08:27 -07:00
Marco e8907a3108 Add Heltec V4 set adc.multiplier 2026-04-19 15:29:43 +02:00
Scott Powell dee3e26ac0 Merge branch 'dev'
Build Companion Firmwares / build (push) Canceled after 0s
Build Repeater Firmwares / build (push) Canceled after 0s
Build Room Server Firmwares / build (push) Canceled after 0s
# Conflicts:
#	docs/faq.md
companion-v1.15.0 room-server-v1.15.0 repeater-v1.15.0
2026-04-19 11:35:03 +10:00
Scott Powell 3751785400 * version 1.15.0 2026-04-19 11:27:55 +10:00
Scott Powell 49b37d5622 * minor bounds fix 2026-04-18 21:32:41 +10:00
ripplebiz 35b5548c0c Merge pull request #2328 from recrof/xiao_c3-companion-fix
fix: remove sensors from xiao c3 companion because of bootloops
2026-04-18 20:44:15 +10:00
Liam Cottle 54a48da6b5 Merge pull request #2306 from petrkr/otaupdate2
SDK3.x: Fix OTA includes, bump Async version
2026-04-18 19:56:56 +12:00
Rastislav Vysoky 0899f66034 fix: remove sensors from xiao c3 companion because of bootloops 2026-04-18 09:42:27 +02:00
Liam Cottle acdb41fcf9 Merge pull request #2103 from robekl/docs-radio-rxgain
docs: add radio.rxgain command reference
2026-04-18 19:05:43 +12:00
Liam Cottle 352fe5f4ae Merge pull request #2315 from jirogit/fix/wireless-paper-companion-usb
feat: add USB Companion Radio env for Heltec Wireless Paper
2026-04-18 18:45:38 +12:00
liamcottle cfe4b0b9a5 bleuart service stay registered first to prevent gatt cache issues on android when already paired 2026-04-18 14:43:47 +12:00