CircuitPython development happens primarily on the main branch and is either released as stable or pre-release depending on the development phase. Stable releases also have matching branches such as 10.0.x for bug fixes. So, to get your board in stable fastest, target the latest stable branch instead of main. Changes made to the stable branch will be merged into main periodically in batches.
Pull Request to CircuitPython
Now that you've updated all the necessary files, it's time to put in a pull request to the CircuitPython repo with your changes. First, verify that you've updated all the necessary files. In many cases, you will have edited only the following files:
- mpconfigboard.mk
- mpconfigboard.h
- pins.c
Your list may include more files depending on your setup, but the files listed above are the minimum likely needed. Now it's time to use Git to get your changes pushed to your fork.
Use git status to verify that the necessary files have been edited. Note that since you created a new directory, the directory (not the individual files) is what shows up in git status until you add the directory.
Use git add to stage your files for commit. Check git status to verify that everything has been added. Your file list should include at least every file shown in the image.
Now commit your changes, and push your branch to your fork. Use GitHub to create a pull request (PR) to CircuitPython with your changes. If you need assistance with creating a PR, follow the process explained in the Git/GitHub guide in the Create Your Pull Request and the Open Pull Request pages.
A New CircuitPython Board
Once your PR is created, it's now up to us! We'll take a look at it and make sure everything is in order before merging your changes into CircuitPython. If anything was missed, we'll let you know so you can get it taken care of. Once the changes are merged, your board is officially part of CircuitPython!
When a board is merged into CircuitPython, it will be built and pushed to the CircuitPython S3 bucket. New firmware is built every time there's a commit to the CircuitPython repo, which happens when a PR is merged. Find your board, and then choose the language you'd like, and you'll find all the available builds.
When CircuitPython is released, all the boards that have been added since the last release will be included in the release. At this point, the firmware builds will be available on GitHub below the release. CircuitPython builds firmware in every available language for every available board, meaning there are MANY assets found on GitHub releases. It's often easier to obtain the firmware from S3 as it's organised by board and language in subfolders.
The next step will be getting your board added to circuitpython.org/downloads. To do that, be sure to check out our How to add a New Board to the circuitpython.org website guide on how to do that!
Page last edited October 02, 2025
Text editor powered by tinymce.