mirror of
https://github.com/meshtastic/firmware.git
synced 2026-09-22 14:25:27 -04:00
f24d387ae6f1fa778aba2ccc369c4697f2135d77
Resolves the conflicts in src/main.cpp and src/detect/ScanI2CTwoWire.cpp in favour of develop. Both files conflicted because an earlier clang-format run on this branch did not find the repo style at .trunk/configs/.clang-format and fell back to LLVM defaults, reformatting them whole (1285 lines in main.cpp alone). That reformat is dropped here, along with the damage a previous merge had done under cover of it: the AS3935 and QMC6309 probes had moved inside the 8..119 address loop in scanPort(), and the tail of KbI2cBase::runOnce() had gained a duplicated default label and return. Also folded in while resolving, since the conflicting hunks are the same ones: - firstKeyboard() kept its count at 7 after growing the array to 8, which dropped STC8HKB. - The kb_model 0x20 case in KbI2cBase::runOnce() had no break and fell into the ThinkNode-M9 keypad case. - LONG_PRESS_THRESHOLD and MULTI_TAP_THRESHOLD sat inside the #ifndef CUSTOM_MCP23017_MAP block, so a custom keymap dropped them. - held() indexed MCP23017_LongPressMap with an unchecked last_key. - MCP23017_KeyMap had a 16th entry no caller can reach; the key arrays are now static const and sized off _NUM_KEYS. - The WIRE1 path called begin(&Wire1) rather than the resolved i2cBus. - Multi-tap and long-press timing moved to Throttle, as asked in review. - MCP23017_KB_ADDR moved to configuration.h with the other keyboard addresses. Detection is now gated on HAS_MCP23017_KEYBOARD and excluded from USE_MCP23017 builds. The MCP23017 answers at 0x20, the same address as the TCA9535, and no read-only probe separates them reliably; on a USE_MCP23017 board the part is the radio's GPIO expander, and handing it to the keyboard driver, which rewrites IODIR and GPPU, would take the radio's control lines down. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YA5bFZa3iVA6pfvGmRGXWS
Build xiao_nrf54l15_lr2021 on every PR as the nrf54l15 canary and mark it community supported (#11856)
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.8%
C
22.9%
Python
2.1%
Shell
1.6%
Batchfile
0.2%
Other
0.2%
