{"repo":"meshtastic/firmware","free":true,"listed":false,"github":"https://github.com/meshtastic/firmware","clone":"git clone https://github.com/meshtastic/firmware.git","description":"The official firmware for Meshtastic, an open-source, off-grid mesh communication system.","language":"C++","stars":8133,"topics":["esp32","gps","heltec","hiking","lora","mesh","mesh-networks","meshtastic","nrf52","off-grid","pico","rp2040","stm32","ttgo","ttgo-tbeam"],"license":"GPL-3.0","category":"embedded_firmware","readme_excerpt":"<div align=\"center\" markdown=\"1\">\n\n<img src=\".github/meshtastic_logo.png\" alt=\"Meshtastic Logo\" width=\"80\"/>\n<h1>Meshtastic Firmware</h1>\n\n![GitHub release downloads](https://img.shields.io/github/downloads/meshtastic/firmware/total)\n[![CI](https://img.shields.io/github/actions/workflow/status/meshtastic/firmware/main_matrix.yml?branch=master&label=actions&logo=github&color=yellow)](https://github.com/meshtastic/firmware/actions/workflows/ci.yml)\n[![CLA assistant](https://cla-assistant.io/readme/badge/meshtastic/firmware)](https://cla-assistant.io/meshtastic/firmware)\n[![Fiscal Contributors](https://opencollective.com/meshtastic/tiers/badge.svg?label=Fiscal%20Contributors&color=deeppink)](https://opencollective.com/meshtastic/)\n[![Vercel](https://img.shields.io/static/v1?label=Powered%20by&message=Vercel&style=flat&logo=vercel&color=000000)](https://vercel.com?utm_source=meshtastic&utm_campaign=oss)\n\n<a href=\"https://trendshift.io/repositories/5524\" target=\"_blank\"><img src=\"https://trendshift.io/api/badge/repositories/5524\" alt=\"meshtastic%2Ffirmware | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"/></a>\n\n</div>\n\n</div>\n\n<div align=\"center\">\n\t<a href=\"https://meshtastic.org\">Website</a>\n\t-\n\t<a href=\"https://meshtastic.org/docs/\">Documentation</a>\n</div>\n\n## Overview\n\nThis 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.\n\nMeshtastic enables text messaging, location sharing, and telemetry over a decentralized mesh network, making it ideal for outdoor adventures, emergency preparedness, and remote operations.\n\n### Get Started\n\n- 🔧 **[Building Instructions](https://meshtastic.org/docs/development/firmware/build)** - Learn how to compile the firmware from source.\n- ⚡ **[Flashing Instructions](https://meshtastic.org/docs/getting-started/flashing-firmware/)** - Install or update the firmware on your device.\n\nJoin our community and help improve Meshtastic! 🚀\n\n## Stats\n\n![Alt](https://repobeats.axiom.co/api/embed/8025e56c482ec63541593cc5bd322c19d5c0bdcf.svg \"Repobeats analytics image\")\n","default_branch":"develop","files":2101,"tree":[".claude/settings.json",".clusterfuzzlite/Dockerfile",".clusterfuzzlite/README.md",".clusterfuzzlite/build.sh",".clusterfuzzlite/platformio-clusterfuzzlite-post.py",".clusterfuzzlite/platformio-clusterfuzzlite-pre.py",".clusterfuzzlite/project.yaml",".clusterfuzzlite/router_fuzzer.cpp",".clusterfuzzlite/router_fuzzer.options",".clusterfuzzlite/router_fuzzer_seed_corpus.py",".coderabbit.yaml",".devcontainer/99-platformio-udev.rules",".devcontainer/Dockerfile",".devcontainer/devcontainer.json",".devcontainer/setup.sh",".dockerignore",".env.example",".envrc",".gitattributes",".github/FUNDING.yml",".github/ISSUE_TEMPLATE/Bug Report.yml",".github/ISSUE_TEMPLATE/New Board.yml",".github/ISSUE_TEMPLATE/feature.yml",".github/actionlint.yaml",".github/actions/build-variant/action.yml",".github/actions/setup-base/action.yml",".github/actions/setup-native/action.yml",".github/copilot-instructions.md",".github/meshtastic_logo.png",".github/millis-deadline-allowlist.txt",".github/node-id-format-allowlist.txt",".github/prompts/new-module.prompt.md",".github/prompts/new-sensor.prompt.md",".github/prompts/new-variant.prompt.md",".github/pull_request_template.md",".github/workflows/build_debian_src.yml",".github/workflows/build_firmware.yml",".github/workflows/build_macos_bin.yml",".github/workflows/build_one_target.yml",".github/workflows/build_portduino_wasm.yml",".github/workflows/build_windows_bin.yml",".github/workflows/daily_packaging.yml",".github/workflows/docker_build.yml",".github/workflows/docker_manifest.yml",".github/workflows/firmware-size-comment.yml",".github/workflows/first_time_contributor.yml",".github/workflows/flasher-link-comment.yml",".github/workflows/flasher-link-placeholder.yml",".github/workflows/hook_copr.yml",".github/workflows/main_matrix.yml",".github/workflows/nightly.yml",".github/workflows/package_obs.yml",".github/workflows/package_pio_deps.yml",".github/workflows/package_ppa.yml",".github/workflows/package_winget.yml",".github/workflows/pr_enforce_labels.yml",".github/workflows/pr_tests.yml",".github/workflows/release_channels.yml",".github/workflows/sec_sast_semgrep_cron.yml",".github/workflows/sec_sast_semgrep_pull.yml",".github/workflows/stale_bot.yml",".github/workflows/test_native.yml",".github/workflows/tests.yml",".github/workflows/trunk_annotate_pr.yml",".github/workflows/trunk_check.yml",".github/workflows/update_protobufs.yml",".gitignore",".gitmodules",".mcp.json",".semgrepignore",".trunk/.gitignore",".trunk/configs/.bandit",".trunk/configs/.clang-format",".trunk/configs/.flake8",".trunk/configs/.hadolint.yaml",".trunk/configs/.isort.cfg",".trunk/configs/.markdownlint.yaml",".trunk/configs/.prettierignore",".trunk/configs/.prettierrc",".trunk/configs/.shellcheckrc",".trunk/configs/.yamllint.yaml",".trunk/configs/ruff.toml",".trunk/configs/svgo.config.js",".trunk/trunk.yaml",".vscode/extensions.json",".vscode/settings.json",".vscode/tasks.json","AGENTS.md","CLAUDE.md","CODE_OF_CONDUCT.md","CONTRIBUTING.md","Dockerfile","Dockerfile.test","LICENSE","README.md","SECURITY.md","alpine.Dockerfile","bin/.gitignore","bin/99-meshtasticd-udev.rules","bin/Meshtastic_nRF52_factory_erase_v3_S140_6.1.0.uf2","bin/Meshtastic_nRF52_factory_erase_v3_S140_7.3.0.uf2","bin/_rewrite_proto_namespace.py","bin/analyze_map.py","bin/base64_to_hex.py","bin/bme680_iaq_replay.cpp","bin/build-esp32.sh","bin/build-firmware.sh","bin/build-native.sh","bin/build-nrf52.sh","bin/build-rp2xx0.sh","bin/build-stm32wl.sh","bin/build-userprefs-json.py","bin/build-winget-package.ps1","bin/buildinfo.py","bin/bump_metainfo/bump_metainfo.py","bin/bump_metainfo/requirements.txt","bin/bump_version.py","bin/check-all.sh","bin/check-dependencies.sh","bin/check-test-attribution.py","bin/collect_sizes.py","bin/config-dist.yaml","bin/config.d/MUI/X11_480x480.yaml","bin/config.d/OpenWRT/BananaPi-BPI-R4-sx1262.yaml","bin/config.d/OpenWRT/OpenWRT-One-mikroBUS-LR-IOT-CLICK.yaml","bin/config.d/OpenWRT/OpenWRT_One_mikroBUS_sx1262.yaml","bin/config.d/README.md","bin/config.d/display-hub75-64x64.yaml","bin/config.d/display-waveshare-1-44.yaml","bin/config.d/display-waveshare-2.8.yaml","bin/config.d/femtofox/femtofox_E80-900M2213S.yaml","bin/config.d/femtofox/femtofox_LR1121 generic.yaml","bin/config.d/femtofox/femtofox_WIO-LR1121.yaml","bin/config.d/lora-Adafruit-RFM9x.yaml","bin/config.d/lora-FrameTastic-1262.yaml","bin/config.d/lora-MeshAdv-900M30S.yaml","bin/config.d/lora-MeshAdv-Mini-900M22S.yaml","bin/config.d/lora-NebraHat_1W.yaml","bin/config.d/lora-NebraHat_2W.yaml","bin/config.d/lora-PiTastic-1W.yaml","bin/config.d/lora-RAK6421-13300-slot1.yaml","bin/config.d/lora-RAK6421-13300-slot2.yaml","bin/config.d/lora-RAK6421-13302-slot1.yaml","bin/config.d/lora-RAK6421-13302-slot2.yaml","bin/config.d/lora-ZebraHat_1W.yaml","bin/config.d/lora-ZebraHat_2W.yaml","bin/config.d/lora-ecb41-pge-MeshAdv-900M30S.yaml","bin/config.d/lora-ecb41-pge-MeshAdv-Mini-900M22S.yaml","bin/config.d/lora-ecb41-pge-RAK6421-13300-slot1.yaml","bin/config.d/lora-ecb41-pge-RAK6421-13300-slot2.yaml","bin/config.d/lora-ecb41-pge-RAK6421-13302-slot1.yaml","bin/config.d/lora-ecb41-pge-RAK6421-13302-slot2.yaml","bin/config.d/lora-ecb41-pge-waveshare-sxxx.yaml","bin/config.d/lora-femtofox_LR1121_TCXO.yaml","bin/config.d/lora-femtofox_SX1262_TCXO.yaml","bin/config.d/lora-femtofox_SX1262_XTAL.yaml","bin/config.d/lora-hat-rak-6421-pi-hat.yaml","bin/config.d/lora-luckfox-pico-max-ws-raspberry-pi-pico-hat.yaml","bin/config.d/lora-lyra-picocalc-wio-sx1262.yaml","bin/config.d/lora-lyra-ultra_1w.yaml","bin/config.d/lora-lyra-ultra_2w.yaml","bin/config.d/lora-lyra-ws-raspberry-pi-pico-hat.yaml","bin/config.d/lora-lyra-zero-BQ-SG3-BQ35LORA900V1M-slot1.yaml","bin/config.d/lora-lyra-zero-MeshAdv-900M30S.yaml","bin/config.d/lora-lyra-zero-MeshAdv-Mini-900M22S.yaml","bin/config.d/lora-lyra-zero-RAK6421-13300-slot1.yaml","bin/config.d/lora-lyra-zero-RAK6421-13300-slot2.yaml","bin/config.d/lora-lyra-zero-RAK6421-13302-slot1.yaml","bin/config.d/lora-lyra-zero-RAK6421-13302-slot2.yaml","bin/config.d/lora-lyra-zero-waveshare-sxxx.yaml","bin/config.d/lora-meshstick-1262.yaml","bin/config.d/lora-ok3506-MeshAdv-900M30S.yaml","bin/config.d/lora-ok3506-MeshAdv-Mini-900M22S.yaml","bin/config.d/lora-ok3506-RAK6421-13300-slot1.yaml","bin/config.d/lora-ok3506-RAK6421-13300-slot2.yaml","bin/config.d/lora-ok3506-RAK6421-13302-slot1.yaml","bin/config.d/lora-ok3506-RAK6421-13302-slot2.yaml","bin/config.d/lora-ok3506-waveshare-sxxx.yaml","bin/config.d/lora-piggystick-lr1121.yaml","bin/config.d/lora-pimesh-1w-v1.yaml","bin/config.d/lora-pimesh-1w-v2.yaml","bin/config.d/lora-pinedio-usb-sx1262.yaml","bin/config.d/lora-raxda-rock2f-starter-edition-hat.yaml","bin/config.d/lora-rpi-BQ-SG3-BQ35LORA900V1M-slot1.yaml","bin/config.d/lora-starter-edition-sx1262-i2c.yaml","bin/config.d/lora-station-g3.yaml","bin/config.d/lora-usb-meshstick-1262.yaml","bin/config.d/lora-usb-meshtoad-e22.yaml","bin/config.d/lora-usb-umesh-1262-30dbm.yaml","bin/config.d/lora-usb-umesh-1268-30dbm.yaml","bin/config.d/lora-waveshare-sxxx.yaml","bin/config.d/lora-ws-raspberry-pi-pico-to-rpi-adapter.yaml","bin/config.d/lora-ws-raspberry-pico-to-orangepi-03.yaml","bin/device-install.bat","bin/device-install.sh","bin/device-install_test.ps1","bin/device-update.bat","bin/device-update.sh","bin/dump-ram-users.sh","bin/eth-ota-upload.py","bin/exception_decoder.py","bin/gen-fake-nodedb-seed.py","bin/gen-images.sh","bin/generate_ci_matrix.py","bin/generate_release_notes.py","bin/generic/Meshtastic_6.1.0_bootloader-0.9.2_s140_6.1.1.hex","bin/generic/Meshtastic_6.1.0_bootloader-0.9.2_s140_6.1.1.zip","bin/generic/Meshtastic_7.3.0_bootloader-0.9.2_s140_7.3.0.hex","bin/generic/Meshtastic_7.3.0_bootloader-0.9.2_s140_7.3.0.zip","bin/generic/update-Meshtastic_6.1.0_bootloader-0.9.2_nosd.uf2","bin/generic/update-Meshtastic_7.3.0_bootloader-0.9.2_nosd.uf2","bin/genpartitions.py","bin/kill-github-actions.sh","bin/lib/shuffle.sh","bin/lib/test-state.sh","bin/lilygo_techo_bootloader-0.6.1.zip","bin/lint-ifdef-complexity.sh","bin/lint-node-id-format.sh","bin/lint-unity-exit.sh","bin/mergehex","bin/meshtasticd-start.sh","bin/meshtasticd.service","bin/native-gdbserver.sh","bin/native-install.sh","bin/native-run.sh","bin/org.meshtastic.meshtasticd.desktop","bin/org.meshtastic.meshtasticd.metainfo.xml","bin/org.meshtastic.meshtasticd.svg","bin/pio-test-isolate.sh","bin/platformio-custom.py","bin/platformio-pre.py","bin/promote-release.sh","bin/ram_budgets.json","bin/read-system-info.sh","bin/readprops.py","bin/regen-fake-nodedbs.sh","bin/regen-protos.bat","bin/regen-protos.sh","bin/regen-py-protos.sh","bin/rpkg.macros","bin/run-tests.sh","bin/s140_nrf52_7.3.0_softdevice.hex","bin/seed-json-to-proto.py","bin/setup-python-for-esp-debug.sh","bin/show-unmerged-prs.sh","bin/size_report.py","bin/stress-suite.sh","bin/test-attribution-canary.sh","bin/test-config-check.sh","bin/test-lint-unity-exit.sh","bin/test-native-docker.sh","bin/test-simulator.sh","bin/test-state-check.sh","bin/test_size_scripts.py","bin/uf2-convert.bat","bin/uf2conv.py","bin/update-lilygo_techo_bootloader-0.6.1_nosd.uf2","bin/view-map.sh","bin/web.version","bin/wio_tracker_bootloader_update.bin","boards/CDEBYTE_EoRa-Hub.json","boards/CDEBYTE_EoRa-S3.json","boards/ESP32-S3-WROOM-1-N4.json","boards/ThinkNode-M1.json","boards/ThinkNode-M3.json","boards/ThinkNode-M4.json","boards/ThinkNode-M6.json","boards/ThinkNode-M7.json","boards/ThinkNode-M8.json","boards/bpi_picow_esp32_s3.json","boards/canaryone.json","boards/crowpanel.json","boards/eink0.1.json","boards/esp32-s3-pico.json","boards/esp32-s3-zero.json","boards/gat562_mesh_trial_tracker.json","boards/hackaday-communicator.json","boards/heltec_mesh_node_t096.json","boards/heltec_mesh_node_t1.json","boards/heltec_mesh_node_t114.json","boards/heltec_mesh_pocket.json","boards/heltec_mesh_solar.json","boards/heltec_mesh_tower_v2.json","boards/heltec_v4.json","boards/heltec_v4_r8.json","boards/heltec_vision_master_e213.json","boards/heltec_vision_master_e290.json","boards/heltec_vision_master_t190.json","boards/heltec_wireless_tracker.json","boards/heltec_wireless_tracker_v2.json","boards/icarus.json","boards/me25ls01-4y10td.json","boards/mesh-tab.json","boards/mesh-tracker-x1.json","boards/meshlink.json","boards/meshtiny.json","boards/mini-epaper-s3.json","boards/minimesh_lite.json","boards/ms24sf1.json","boards/muzi-base.json","boards/my-esp32s3-diy-oled.json","boards/my_esp32s3_diy_eink.json","boards/nano-g2-ultra.json","boards/nordic_pca10059.json","boards/nrf52840_dk.json","boards/nrf54l15dk.json","boards/promicro-nrf52840.json","boards/r1-neo.json","boards/seeed-sensecap-indicator.json","boards/seeed-xiao-s3.json","boards/seeed_solar_node.json","boards/seeed_wio_tracker_L1.json","boards/seeed_xiao_nrf52840_kit.json","boards/station-g2.json","boards/station-g3.json","boards/t-beam-1w.json","boards/t-beam-bpf.json","boards/t-deck-pro.json","boards/t-deck.json","boards/t-echo.json","boards/t-impulse-plus.json","boards/t-watch-s3.json","boards/t5-epaper-s3.json","boards/tbeam-s3-core.json","boards/tlora-t3s3-v1.json","boards/tracker-t1000-e.json","boards/ttgo-tbeam.json","boards/unphone.json","boards/wio-sdk-wm1110.json","boards/wio-t1000-s.json","boards/wio-tracker-wm1110.json","boards/wiphone.json","boards/wiscore_rak11200.json","boards/wiscore_rak3172.json","boards/wiscore_rak3312.json","boards/wiscore_rak4631.json","boards/xiao_ble_sense.json","branding/README.md","data/static/.gitkeep","debian/.gitignore","debian/changelog","debian/ci_changelog.sh","debian/ci_pack_sdeb.sh","debian/control","debian/meshtasticd.dirs","debian/meshtasticd.install","debian/meshtasticd.postinst","debian/meshtasticd.postrm","debian/meshtasticd.udev","debian/rules","debian/source/format","debian/source/include-binaries","debian/source/options","default_16MB.csv","default_8MB.csv","docker-compose.yml","docs/bme680_iaq_replay.md","extra_scripts/README.md","extra_scripts/disable_adafruit_usb.py","extra_scripts/esp32_extra.py","extra_scripts/esp32_pre.py","extra_scripts/ld_response_file.py","extra_scripts/nrf52_extra.py","extra_scripts/nrf52_lto.py","extra_scripts/nrf52_warm_region.py","extra_scripts/nrf54l15_linker.py","extra_scripts/stm32_extra.py","extra_scripts/wasm_link_flags.py","extra_scripts/windows_link_flags.py","flake.lock","flake.nix","images/compass.png","images/face-24px.svg","images/face.png","images/location_searching-24px.svg","images/pin.png","images/room-24px.svg","images/textsms-24px.svg","meshtasticd.spec.rpkg","monitor/filter_c3_exception_decoder.py","packaging/windows/meshtasticd.wxs","partition-table-8MB.csv","partition-table-t3s3.csv","partition-table.csv","platformio.ini","pyocd.yaml","release/.gitignore","renovate.json","rpkg.conf","scripts/add_mbedtls_sources.py","shell.nix","src/AmbientLightingThread.h","src/AudioThread.h","src/BluetoothCommon.cpp","src/BluetoothCommon.h","src/BluetoothStatus.h","src/DebugConfiguration.cpp","src/DebugConfiguration.h","src/DisplayFormatters.cpp","src/DisplayFormatters.h"],"storefront":"/r/meshtastic","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/meshtastic/firmware/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}