Open source development

MeshCore source code contributions

Help with MeshCore development through GitHub pull requests and code contributions

Why contribute to MeshCore?

MeshCore is fully open source and developed by a global community of developers. Anyone can contribute to the firmware, whether you fix bugs, add new features, improve documentation or review code.

The MeshCore community values all contributions - from small typo fixes to major protocol updates. Every level of expertise is welcome. By contributing you not only help the project forward but also learn to work with embedded systems, LoRa technology and GitHub workflows.

This guide shows how to contribute to MeshCore development via GitHub, from setting up your development environment to submitting your first pull request.

Why contribute to MeshCore?

๐ŸŽฏ

Make an impact

Your code is used by thousands of mesh network users worldwide

๐Ÿ“š

Learn and grow

Work with modern embedded tech, LoRa, C++ and real-time systems

๐Ÿค

Community connection

Become part of an active developer community with shared values

โšก

Features you need

Implement functionality you want to use in the network yourself

๐Ÿ’ผ

Build portfolio

Open source contributions are valuable for your resume and career

๐ŸŽ“

Get mentorship

Learn from experienced contributors through code reviews and feedback

GitHub workflow step by step

How to work with GitHub to contribute to MeshCore firmware

1

Step 1: Fork and clone the repository

Create a fork of MeshCore on GitHub and clone to your local machine:

git clone https://github.com/YOUR_USERNAME/meshcore-firmware.git cd meshcore-firmware git remote add upstream https://github.com/meshcore/meshcore-firmware.git
2

Step 2: Create a feature branch

Create a new branch for your change with a clear name:

git checkout -b feature/add-sensor-support # or git checkout -b fix/routing-bug
3

Step 3: Implement your change

Write your code, test thoroughly and commit with clear commit messages. Follow the project coding standards and write unit tests where possible.

4

Step 4: Push and open a pull request

Push your branch to GitHub and open a pull request with description:

git push origin feature/add-sensor-support # Then open PR via GitHub web interface
5

Step 5: Code review and iteration

The MeshCore team reviews your code and provides feedback. Process the suggestions, push updates and iterate until the PR is approved and merged.

Types of contributions

There are different ways to contribute to MeshCore - choose what suits you

๐Ÿ› Bug fixes

Fix bugs you encounter during use:

  • โ€ข Reproduce the bug and document steps
  • โ€ข Fix the root cause and add test

โœจ New features

Implement new functionality:

  • โ€ข Discuss first with maintainers via issue
  • โ€ข Write design doc for large features

๐Ÿ“– Documentation

Improve README, guides and code comments:

  • โ€ข Fix typos and outdated info
  • โ€ข Write tutorials and how-to guides

๐Ÿงช Testing and QA

Help with testing and quality assurance:

  • โ€ข Test new releases on different hardware
  • โ€ข Write unit and integration tests

Contribution guidelines

  • โœ“

    Follow coding standards - Use the project code style (see CONTRIBUTING.md)

  • โœ“

    Write clear commit messages - Describe what and why, not just what

  • โœ“

    Keep PRs focused - One PR = one feature or bug fix, not multiple changes

  • โœ“

    Add tests - New features need unit tests where possible

  • โœ“

    Update documentation - If you change API, also update the docs

  • โœ“

    Be respectful - Friendly and constructive communication with reviewers

Frequently asked questions

Do I need to be an expert to contribute?

No! Beginners are welcome. Start with small contributions like documentation fixes or simple bug fixes. The community helps you grow through code reviews and mentorship.

How long does it take for my PR to be reviewed?

Usually within 1-2 weeks, depending on the size of the PR and maintainer availability. Larger features may take longer. You can give a friendly ping via Telegram if it takes longer.

What if my PR gets rejected?

That happens sometimes - it doesn't mean your work is bad. Maintainers explain why (scope, technical fit, etc.). You can use the feedback to improve or try an alternative approach.

Do I need to sign a CLA (Contributor License Agreement)?

No, MeshCore doesn't use a CLA. By contributing you automatically release your code under the same open source license as the project (check the LICENSE file for details).

Can I get paid for contributions?

MeshCore is a voluntary open source project. Some organizations sponsor developers for specific features - ask in the Telegram group if there are bounties or grants available.

Become a MeshCore contributor

Every level of contribution helps the project forward - from typo fixes to protocol updates

Fork the repo, make your first change and open a pull request!