mirror of
https://github.com/meshtastic/firmware
synced 2026-08-07 20:32:18 -04:00
Meshtastic device firmware: encrypted LoRa text mesh (ISM, license-free).
* Add shared e-ink hardware layer (graphics/eink) alongside legacy drivers Foundation for a target-by-target migration off the GxEPD2-based EInkDisplay2/EInkDynamicDisplay/EInkParallelDisplay stack: - src/graphics/eink/: chipset drivers, panel profiles, backlight helper (promoted from the InkHUD driver set, shared by BaseUI and InkHUD) - src/graphics/BaseUIEInkDisplay: OLEDDisplay adapter driving the new layer, with EINK_* compat macros matching EInkDynamicDisplay - [niche] build helper in platformio.ini; graphics/eink/ excluded from arduino_base so unconverted targets are unaffected - Screen/CannedMessageModule dispatch between the two stacks per env - InkHUD-specific touch code in TouchScreenImpl1 guarded with MESHTASTIC_INCLUDE_INKHUD (no-op today, required once BaseUI variants define MESHTASTIC_INCLUDE_NICHE_GRAPHICS without InkHUD) No variant is converted and no legacy file is removed; every existing env builds identical firmware. * Fix clang-format comment alignment in Screen.cpp * Address review findings in the e-ink driver layer - Screen.cpp: exclude InkHUD builds from all NicheGraphics BaseUI guards - BaseUIEInkDisplay: size the OLEDDisplay buffer from its actual indexing - EInkParallel: defer update() while an async refresh is in flight, honor the selected clear mode in the async task, never delete a live task - ED047TC1: clean up on failed initPanel, fix inverted bbepI2CWrite checks - UC8175: drop bogus 0x12 soft reset (0x12 is display refresh on UC8175) - LCMEN2R13EFC1: guard absent reset pin, bound the busy wait - SSD16XX/SSD1682: build the RAM window from the instance, not statics - Doc corrections in driver banners and Drivers/README * SSD16XX/SSD1682: send inclusive Y-end address (height - 1) * LCMEN213EFC1: adopt the shared wait timeout / fail-through pattern wait() now bounds the busy poll via Throttle and sets the EInk failed flag on timeout; sendCommand/sendData fail through like the SSD16XX and UC8175 drivers. EInk::runOnce clears the flag after the failed cycle. |
||
|---|---|---|
| .claude | ||
| .clusterfuzzlite | ||
| .devcontainer | ||
| .github | ||
| .trunk | ||
| .vscode | ||
| bin | ||
| boards | ||
| branding | ||
| data/static | ||
| debian | ||
| docs | ||
| extra_scripts | ||
| images | ||
| meshtestic@dcac7e5673 | ||
| monitor | ||
| packaging/windows | ||
| protobufs@cd290ba246 | ||
| release | ||
| scripts | ||
| src | ||
| test | ||
| tools | ||
| variants | ||
| zephyr | ||
| .coderabbit.yaml | ||
| .dockerignore | ||
| .env.example | ||
| .envrc | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| .mcp.json | ||
| .semgrepignore | ||
| AGENTS.md | ||
| alpine.Dockerfile | ||
| CLAUDE.md | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| default_8MB.csv | ||
| default_16MB.csv | ||
| docker-compose.yml | ||
| Dockerfile | ||
| Dockerfile.test | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| meshtasticd.spec.rpkg | ||
| partition-table-8MB.csv | ||
| partition-table-t3s3.csv | ||
| partition-table.csv | ||
| platformio.ini | ||
| pyocd.yaml | ||
| README.md | ||
| renovate.json | ||
| rpkg.conf | ||
| SECURITY.md | ||
| shell.nix | ||
| suppressions.txt | ||
| userPrefs.jsonc | ||
| version.properties | ||
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! 🚀