Claude f24d387ae6 Merge branch 'develop' into develop
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
2026-09-16 02:49:05 +00:00
2021-10-09 17:15:12 +11:00
2026-09-01 18:00:06 -04:00
2024-09-24 15:24:08 -05:00
2026-09-14 07:27:39 +00:00
2026-09-16 02:49:05 +00:00
2026-07-01 19:01:27 -05:00
2026-01-29 10:06:58 -06:00
2024-11-28 06:26:51 -06:00
2024-09-04 15:33:28 -07:00
2026-07-28 11:09:40 +00:00
2026-01-29 10:06:58 -06:00
2026-01-29 10:06:58 -06:00
2026-07-01 19:01:27 -05:00
2025-01-13 12:24:05 +08:00
2026-01-29 10:06:58 -06:00

Meshtastic Logo

Meshtastic Firmware

GitHub release downloads CI CLA assistant Fiscal Contributors Vercel

meshtastic%2Ffirmware | Trendshift

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

Join our community and help improve Meshtastic! 🚀

Stats

Alt

S
Description
No description provided
Readme GPL-3.0
258 MiB
0 Stars 1 Watchers 0 Forks
Languages
C++ 72.8%
C 22.9%
Python 2.1%
Shell 1.6%
Batchfile 0.2%
Other 0.2%