Commit Graph
1143 Commits
Author SHA1 Message Date
Adam Gessaman 3484c2eb3b Increase MQTT preset count from 15 to 17 and add two new presets for Mesh Core CA. 2026-05-24 10:35:07 -07:00
Adam Gessaman 5a99492c1a Merge upstream/dev into mqtt-bridge-implementation-flex
Pick up meshcore-dev changes since last upstream merge.
2026-05-23 13:12:39 -07:00
Adam Gessaman 785a9c6d0a Increase MQTT preset count from 13 to 15 and add two new presets for Dutch Mesh Core. 2026-05-23 13:10:07 -07:00
ripplebiz e251dc1659 Merge pull request #2540 from agessaman/feat/regions-quick-loasd
Add bulk region hierarchy command to CLI
2026-05-23 18:37:28 +10:00
Liam Cottle a35b1bbbfd Merge pull request #2590 from jocasmark/fix/typos
Fix typos in comments and docs
2026-05-22 19:38:19 +12:00
agessaman 1296aa7792 Refactor region def with helpers, refine docs
Extract the inline cursor-walk in handleRegionCmd into file-local
helpers (skipSpaces, rtrimSpaces, takeToken, splitNameJump,
processRegionDefSegment), grouped immediately above the consumer.
Behavior is identical; addresses PR #2540 review feedback on
readability.

Tighten the region def docs: collapse five Note callouts into three
grouped paragraphs (Behavior / Existing regions / Limits), add a
case-sensitivity caveat plus an error example, note the cursor reset
between split commands, and use generic placeholder names.
2026-05-21 19:25:01 -07:00
taco 5058415fa3 u8g2 wrapper: allow larger font when size >= 2 2026-05-21 19:58:10 +10:00
pelgraine 2462cf6c97 add wrapper for u8g2 display driver 2026-05-21 19:58:10 +10:00
Huw Duddy bfdceae16e Merge pull request #2443 from kizniche/fix-rxdelay-txdelay
Fix: Enforce upper bounds for rxdelay, txdelay, and direct.txdelay
2026-05-21 16:57:41 +10:00
Scott Powell a130a95a0d * added 6th byte to ACK, with RNG 2026-05-21 00:00:03 +10:00
Mark Jocas 63fe3d42a2 Corrects typos and grammatical errors
Improves readability across documentation and inline comments by fixing common spelling mistakes and duplicate words.
2026-05-20 08:33:48 +02:00
Scott Powell 717142abd6 * bug fix 2026-05-19 17:06:42 +10:00
Adam Gessaman f1b4b75839 Merge pull request #11 from agessaman/feat/observer-alert
Implement fault alert system with region scoping and PSK handling
2026-05-17 21:31:55 -07:00
agessaman f717d6735b Update alert PSK handling to restrict access based on sender timestamp
Modified the alert PSK command handling to only respond when the sender timestamp is zero, ensuring that the PSK is processed exclusively from the serial command line. This change enhances security and clarity in the command processing logic.
2026-05-17 21:19:53 -07:00
Scott Powell 2eb747d504 * fix 2026-05-17 22:38:42 +10:00
Scott Powell f6e6fdaa05 * support for sending 5-byte ACKs 2026-05-17 22:10:13 +10:00
agessaman f3c6c34883 Update CLI command from region bulk to region def 2026-05-16 10:47:51 -07:00
agessaman 5a004f3770 Refactor timestamp handling in MQTTMessageBuilder
- Introduced a new method `formatIsoTimestampForMqtt` to centralize ISO-like timestamp formatting for MQTT messages, applying timezone preferences.
- Updated `buildStatusMessage`, `buildPacketJSON`, `buildPacketJSONFromRaw`, and `buildRawJSON` methods to utilize the new timestamp formatting function, improving code clarity and reducing redundancy.
- Adjusted `publishStatusToSlot` and `publishStatus` in MQTTBridge to use the new timestamp formatting method, ensuring consistent timestamp handling across status messages.
2026-05-15 10:18:02 -07:00
agessaman daf9ee4798 fix(mqtt): harden TLora MQTT observer and trim MQTT task stack use
- LilyGo T-LoRa V2.1 observer envs: set ESP32_CPU_FREQ=240 and
  MQTT_TASK_STACK_SIZE=16384 only for those targets so classic ESP32
  TLS + JWT connect fits the FreeRTOS task; other boards keep the
  default 8192 B unless overridden.
- MQTTBridge: use large JSON stack fallbacks only for PSRAM builds when
  heap-backed buffers may be null; non-PSRAM paths use the inline
  member buffers only, cutting peak stack in status/packet/raw publish.
- MQTTBridge.h: update the StaticJsonDocument comment (no longer refers
  to an 8 KiB MQTT task stack).
2026-05-13 09:13:17 -07:00
agessaman a866884059 Refactor alert PSK handling to exclusively use hex format
Updated the alert PSK implementation to remove base64 support, now requiring a 32-character hex format for private channel secrets. Adjusted related CLI commands, error messages, and internal handling to ensure consistency with the new format. This change enhances clarity and aligns with the mobile app's "Share Channel" output. Relevant updates made across multiple files, including documentation and preference handling.
2026-05-12 21:18:58 -07:00
agessaman a865d0a303 Update alert PSK handling to accept both base64 and hex formats
Enhanced the CLI command for setting the alert PSK to support both base64 (24/44 chars) and hex (32/64 chars) formats. This change allows for greater flexibility in key input, accommodating the mobile app's "share" output. Updated error messages for clarity and ensured that previously derived hashtags are cleared when a new PSK is set. Relevant adjustments made in CommonCLI and MQTT implementation documentation.
2026-05-12 21:05:56 -07:00
Scott Powell c588540b1b * new CMD_SEND_RAW_PACKET 2026-05-13 13:28:56 +10:00
agessaman 19f950018c Add bulk region hierarchy command to CLI
Add a new command `region bulk` for defining region hierarchies in a single line. This command allows users to create multiple regions in a single message. Updated the documentation to include usage examples and detailed parameter descriptions.
2026-05-12 12:08:03 -07:00
agessaman 6a3ed5d430 Update AlertReporter to include path hash size in flood messages
Modified the sendFlood method in AlertReporter to incorporate path hash size, ensuring compatibility with the repeater's configured path.hash.mode. This change enhances the handling of alert floods by accommodating different regional mesh configurations.
2026-05-11 16:22:29 -07:00
agessaman 16dc49fa10 Enhance fault alert system with region-based scoping and banned channels
Updated the fault alert functionality to include an optional region name for scoping alert floods, allowing operators to override the default scope. Introduced a list of banned channels (e.g., Public PSK, `#test`, `#bot`) to prevent spamming community channels with alerts. The implementation ensures that alerts are only sent to private PSKs or non-banned hashtags. Relevant changes were made across multiple files, including updates to the CLI for setting and retrieving the new `alert.region` preference.
2026-05-11 13:45:01 -07:00
Quency-D 6d3b71eed9 add heltec-mesh-node-t1 2026-05-11 15:11:07 +08:00
agessaman 80355f32ab Add fault alert functionality for WiFi and MQTT disconnections
Implemented a new fault alert system that broadcasts notifications over LoRa when WiFi or MQTT connections are down for a specified duration. The alerts are configurable via CLI commands, allowing operators to set private PSKs or hashtags for alert channels. Default settings for alert thresholds and intervals are established, and the system ensures that alerts do not spam the public channel. Updated relevant files to integrate this feature into the MyMesh implementations and CLI handling.
2026-05-10 19:19:17 -07:00
taco e7e97ec438 add option to disable DS3231 probe 2026-05-10 20:29:47 +10:00
agessaman b9f478c989 Add MQTT origin handling and string utility function
Implemented a new function to strip surrounding quotes from strings in TxtDataHelpers, enhancing string manipulation capabilities. Updated CommonCLI to handle MQTT origin configuration, allowing for both setting and clearing of the mqtt.origin preference. This change improves the flexibility of MQTT origin management in the CLI.
2026-05-09 18:06:18 -07:00
agessaman 303cf8c2bd Enhance MQTT status message to include repeat status
Updated the MQTT message structure to add a new field for repeat status, allowing the indication of forwarding status as "on" or "off". This change includes modifications to the MQTTMessageBuilder and related documentation to reflect the new parameter. Additionally, updated CLI command documentation to clarify flooding behavior in different firmware versions.
2026-05-09 17:40:00 -07:00
agessaman ff031f48bb Refactor MQTT origin handling to use effective origin logic
Updated MyMesh implementations in simple_repeater and simple_room_server to set mqtt_origin to an empty string, allowing the effective origin to follow node_name during publishing. Introduced new functions in MQTTBridge to manage effective origin retrieval and refresh from preferences, ensuring consistent behavior across MQTT operations. This change simplifies the origin management and enhances clarity in the codebase.
2026-05-09 17:06:00 -07:00
agessamanandCursor b37db66830 Merge upstream/dev into mqtt-bridge-implementation-flex
Merge meshcore-dev changes (kiss_modem targets, preamble SF tuning, CI).
Resolve conflicts: combine RadioLib preamble/watchdog fields; keep kiss_modem and MQTT envs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 16:37:11 -07:00
Josiah VanderZee 4b6b8abe7a Add missing Wire.h include for sensors
This slipped through in PR #2327 and I noticed because the TechoBoard.h
for my variant doesn't include the Wire header, so the source file
in question does not coincidentally obtain a copy.
2026-05-07 07:20:48 -05:00
Liam Cottle bf733f00a6 Merge pull request #2488 from weebl2000/fix-rak-pin-gps-en-undefined
Gate PIN_GPS_EN
2026-05-07 18:44:37 +12:00
ripplebiz b75cefbfb4 Merge pull request #2327 from NickDunklee/fix-environment-sensor-refactor
fix(sensors): improve sensor initialization and handling to prevent hangs and handle growth
2026-05-07 15:58:10 +10:00
Wessel Nieboer 3bde089bdb Gate PIN_GPS_EN
Do not reference it unconditionally
2026-05-07 00:31:15 +02:00
Liam Cottle 19ebd8c795 Merge pull request #2480 from KPrivitt/dev
Incorrect time_t TypeDef used in RAK12035_SoilMoisture
2026-05-06 17:46:57 +12:00
Kenneth Privitt 235706a22a Incorrect time_t TypeDef in RAK12035_SoilMoisture 2026-05-05 11:20:36 -07:00
Josiah VanderZee e56c1b3d58 Do not perform redundant reset on ST7789 displays
The `::init` method in the Adafruit ST7789 library is responsible to
initialize the device. This includes performing a reset, which can be
found in the Adafruit source for `Adafruit_SPITFT`.

Before this change, MeshCore performed its own ST7789 display reset
sequence, which consisted of three steps.

* Pull reset low
* Wait 10ms
* Pull reset high

Importantly, there was no fixed delay after pulling reset high. The
ST7789 driver requires a delay (T<sub>RT</sub>) of 5ms in Sleep In Mode
and 120ms in Sleep Out Mode before it will properly receive commands.
When `Adafruit_SPITFT` resets the device after MeshCore has already
reset it, the mandatory time may not have elapsed, leading to strange
behavior. In the author's case, this issue caused the initial
`fillScreen` to fail, such that the display showed an uninitialized
framebuffer.

This removes the MeshCore delay, leaving the responsibility of reset to
`Adafruit_SPITFT`, where they have the correct delays in place with
extra safety margin. The change was briefly tested by Josiah VanderZee
and Ben Zignego on a custom hardware build using an nRF52840 Dongle and
an Adafruit 4311 TFT display. The user button seemed to behave
strangely, but the display looked correct.
2026-05-04 17:01:39 -05:00
Liam Cottle e727fd543b Merge pull request #2462 from meshcore-dev/target-dup-cleanup
Refactor: removed duplicated target code
2026-05-02 17:21:51 +12:00
liamcottle 5a509752a7 don't play startup tune if buzzer pref disabled 2026-05-02 01:47:35 +12:00
Scott Powell 0a8a0a4904 * Refactor: removed duplicated radio_rng_seed(), radio_set_params(), radio_set_tx_power() 2026-05-01 14:47:07 +10:00
agessaman 9f8f2d052e fix(mqtt): update coloradomesh preset with proper details 2026-04-30 19:53:52 -07:00
Liam Cottle 5c651b35a0 Merge pull request #1954 from OverkillFPV/lora-longer-preamble
Lora longer preamble
2026-04-30 22:12:04 +12:00
Kyle db8a002c0e fix: enforce upper bounds for rxdelay, txdelay, and direct.txdelay in CLI 2026-04-29 13:26:26 -04:00
agessaman 457edf69af feat(mqtt): add new ColoradoMesh preset to MQTT presets
Increased the total number of built-in MQTT presets from 12 to 13 by adding the ColoradoMesh preset. This addition enhances the MQTT bridge's capabilities for connecting to more networks.
2026-04-28 07:41:56 -07:00
agessaman 5a5e53730e fix(mqtt): add missing error codes to MQTTBridge error handling
Enhanced the MQTTBridge error handling by adding several missing error codes for Wi-Fi and TLS errors, improving the clarity of error reporting during connection issues. This update includes new cases for group cipher mismatch, invalid PMKID, and TLS handshake failures, among others.
2026-04-27 19:40:20 -07:00
agessaman 753eb72f7f feat(mqtt): add EastIdahoMesh preset and enhance CLI preset listing
Added the EastIdahoMesh preset to the MQTT bridge implementation, increasing the total number of built-in presets. Updated the CLI to support listing available MQTT presets with pagination, improving user experience when configuring MQTT connections. Adjusted related documentation to reflect these changes.
2026-04-25 21:43:20 -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