Skip to main content

Community Guide

Meshtastic is a team of volunteers, and as such there is always plenty of ways to help. This project gets great contributions from people in their off hours. Those contributors work on the features they are interested in. It is a very open and welcoming developer community, and we are always looking for help to improve Meshtastic.

  • If you're a developer, there's plenty stuff to do. Dig in!
  • If you're interacting with Meshtastic radios, we could use help with testing, documenting, and providing feedback.
  • If you're into Web Development, check out the different web repos.
  • If you're into Kotlin and Android, check out the link to the repo below.
  • If you're into Python, check out the link to the repo below
  • If you're into Ham Radio and LoRa, then this is a great project for you!
  • ... basically... we would love to have your help and feedback

There are several developers, testers, and active users on Discord.

Meshtastic Ecosystemโ€‹

There are many technologies (and repositories) used in creating the Meshtastic ecosystem. Below is a breakdown:

Protocol Buffersโ€‹

Most communication and interactions happen with protocol buffers. The Meshtastic Protobuf Definitions repo is where all of the protocol buffer changes happen. See the Protobuf API Reference for more details.

Device Firmwareโ€‹

The firmware is where all of the firmware development happens. This is where the code for the ESP32 and nRF52 based devices is developed. It is mainly C and C++ code.Think Arduino. It is where the first level of hardware interaction begins and ends.

Firmware Modulesโ€‹

Modules are also implemented mainly in the firmware repo above. Typically, you would add functionality in the protobufs repo and the device repo to implement module functionality. You probably also want to have some client/device use/interact with the module and that is where the Device support comes into play.

CLI Apps (Device Interface)โ€‹

  • Meshtastic Python CLI - The meshtastic/Meshtastic-python repository is typically where the first device interaction takes place, but that is not a requirement. This repo has a command line utility that allows you to interact with most functionality with the devices. This python library can also be consumed for other applications.

Web Apps (Device Interface)โ€‹

  • Meshtastic Web - The meshtastic/web repository is where the hosted web server on the ESP32 devices in Typescript is developed. See the Web interface overview for more details.
  • Meshtastic JS - The meshtastic/meshtastic.js repository is a JavaScript library that provides an interface for Meshtastic devices.

@sachaw has been making tons of progress on the web app and would love help with:

  • Saving of preferences
  • Better loading state indicators
  • Chat scroll lock
  • Various module support

Mobile Apps (Device Interface)โ€‹

There are two phone apps that interact with the Meshtastic devices:

  • Android App - The meshtastic/Meshtastic-Android repository repo contains the Kotlin code for Android based interactions with Meshtastic devices. See the Android development instructions on how to create a development environment and build the Meshtastic Android App.
  • Apple Apps - The iOS applications are in the process of a complete re-write in Swift and will have the new repo published soon. Note: There are a couple of earlier implementations.

Documentationโ€‹

This website is in the Meshtastic repository.