So you have a new board, that you want to get working with Blinka, our CircuitPython library compatibility layer for Single Board Computers, or SBCs. Adding a board to Blinka is a 2-part process with the first step being to add it to
PlatformDetect so that Blinka knows what board it is working with.
In our PlatformDetect guide, we went over the steps needed to get your chip and board correctly detected so that Blinka knew what it was working with. In this guide, we will go over the second part to get your board functioning on Blinka.
This guide goes over everything that's left to get your board working with Blinka including:
- Adding the Chip and Board files
- Getting GPIO working
- Getting I2C, SPI, and UART working
Along with some additional resources.
The way that Blinka works is it combines multiple techniques to access the parts of the board that it needs. For GPIO, libraries such as
libgpiod are used. For I2C, the PureIO Python library is used, and for SPI, we are using the spidev Python library.
When it comes to Blinka itself, there are two main components that need to be defined.
- First there is the chip, the microprocessor definition.
- Second, there is the board definition.
The chip defines which pins of the microprocessor are used by the GPIO library and the board defines which physical pin on the board maps to the pins defined by the chip file. There can be multiple boards that all use the same chip, but the specific implementation may be slightly different.
The overall layout of the way these files are accessed looks like this:
In this guide, we will be picking up where we left off in the PlatformDetect guide and going over what steps are needed to add a board such as the Pine A64 to Blinka.