Contributing to Meshtastic
Volunteer Based Development
Meshtastic is a team of volunteers, and as such there are 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 SwiftUI, 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
The Meshtastic ecosystem leverages a variety of technologies and repositories to provide a robust decentralized communication platform. This ecosystem is continuously evolving, thanks to the collaborative effort of developers, contributors, and the community, aiming to enhance and expand Meshtastic's capabilities for decentralized off-grid communication.
Key components include:
- Protocol Buffers: The backbone of communication and interactions, with changes and definitions managed in the Meshtastic Protobuf Definitions repository. For detailed information, see the Protobuf API Reference.
- Device Firmware: Development for ESP32, nRF52, and RP2040 based devices occurs in the firmware repository, focusing on C and C++ code for hardware interaction and communication.
- Firmware Modules: Extend the core functionalities of devices and mesh networks, implemented mainly within the firmware repository. Modules are essential for adding new features and integrating devices within the ecosystem.
- CLI Apps (Device Interface): The Meshtastic Python CLI enables interaction with device settings and functionalities, serving both as a utility and a library for application development.
- Web and JavaScript Apps: Development for the hosted web server on ESP32 devices is done in Meshtastic Web, with a JavaScript library for device interfaces available in Meshtastic JS.
- Mobile and Desktop Apps: Android, iOS, iPadOS, and macOS applications provide user interfaces for interacting with Meshtastic devices. Development for Android is detailed in the Meshtastic-Android repository, while Apple platforms are supported by the Meshtastic-Apple repository.
- Documentation: The source for the Meshtastic website and documentation resides in the meshtastic/meshtastic repository. For guidelines on maintaining documentation, visit the Maintaining Documentation page.
This ecosystem is continuously evolving, thanks to the collaborative effort of developers, contributors and the community, aiming to enhance and expand Meshtastic's capabilities for decentralized off-grid communication.