There are a number of steps required for adding a board to CircuitPython. You'll need to edit a series of files and put in a pull request with the changes. This guide assumes that you are adding a SAMD21 or SAMD51 microcontroller board to CircuitPython. We also support nRF52840 (and possibly more chips by the time you're reading this!) The process is similar for all of them

The following files must be updated. The board_name folder will be your board. The first three must be customized for your board and your board must added to the last:

  • /ports/atmel-samd/boards/board_name/mpconfigboard.h
  • /ports/atmel-samd/boards/board_name/
  • /ports/atmel-samd/boards/board_name/pins.c
  • /.github/workflows/build.yml

There are a few other files that you may update depending on your board, however, the files listed above are the minimum necessary to add your board support package.

This guide explains how to find and update these files. You will need to be familiar with Git and GitHub. We have an excellent guide on contributing to CircuitPython with Git and GitHub if you need some help with getting started.

Build CircuitPython

The first thing you'll need to be able to do, is build CircuitPython successfully. Visit GitHub and create your own fork of CircuitPython. Then, you'll need to get set up to build CircuitPython. We have a great guide that explains the setup and build process. Go through the linked guide before continuing!

Try building for a known-good board such as the Feather M0 Basic to verify that you can build successfully before continuing to the next step!

Create a Branch

Once you've successfully built CircuitPython, create a branch using git. You'll do all your edits within the branch.

This guide was first published on Jul 18, 2019. It was last updated on Jul 18, 2019.
This page (Get Setup to Add Your Board) was last updated on Oct 21, 2020.