mirror of
https://github.com/alexhopeoconnor/firmware.git
synced 2026-10-15 16:01:19 +10:00
fa5631523e2103f569030174d456f56ed0123e9b
Fix bug where UIDs, callsigns, and messages containing embedded null bytes (0x00) are truncated during compression/decompression. The issue occurs because strlen() stops at the first null byte, but nanopb char arrays can contain embedded nulls that are valid data. This causes Android device UIDs like "ANDROID-e7e455b40002429d" to be truncated to "ANDROID-e7e455b4" (16 chars instead of 24), breaking direct messages and contact identification. The fix adds a pb_string_length() helper that scans for the actual string length by finding the last non-null character, rather than stopping at the first null. Added comprehensive unit tests to prevent regressions: - Normal strings without embedded nulls - Strings with embedded null bytes - Empty strings and edge cases - Android UID pattern testing - Multiple embedded nulls scenarios Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Fix issue triage workflow by clarifying device log requirements and improving JSON response handling
Overview
This repository contains the official device firmware for Meshtastic, an open-source LoRa mesh networking project designed for long-range, low-power communication without relying on internet or cellular infrastructure. The firmware supports various hardware platforms, including ESP32, nRF52, RP2040/RP2350, and Linux-based devices.
Meshtastic enables text messaging, location sharing, and telemetry over a decentralized mesh network, making it ideal for outdoor adventures, emergency preparedness, and remote operations.
Get Started
- 🔧 Building Instructions – Learn how to compile the firmware from source.
- ⚡ Flashing Instructions – Install or update the firmware on your device.
Join our community and help improve Meshtastic! 🚀
Stats
Languages
C++
72.7%
C
23.5%
Python
2%
Shell
1.2%
Batchfile
0.2%
Other
0.2%
