If you have a favorite development board, or have designed a microcontroller board capable of running Wippersnapper firmware, you can easily add it to Wippersnapper. A benefit of using Adafruit IO is that the service “plays nice with any device”. We do not require specialty hardware produced by Adafruit to connect to Adafruit IO – and now Wippersnapper. This functionality was originally suggested by tannewt/Scott and we’ve kept it in mind while designing Wippersnapper
Here’s a brief overview of what the process for adding your board to Wippersnapper should look like when we launch. Keep in mind that the information below is likely to change as we are in active development of this service
We’ll have an open source GitHub repository containing hardware definitions for boards which are compatible with Wippersnapper. What do we mean by hardware definitions? Hardware definitions provide information about the physical components which make up a development board (pins, sensors, etc). The definition also provides properties for each component such as a sensor’s expected SI unit or if a GPIO pin is writable. Each definition is specific to a board and is described using JSON.
The benefit of a board definition is when a Wippersnapper device connects to Adafruit IO, Wippersnapper automatically creates a virtual representation of your physical hardware and you can interact with it immediately.
The definition language we’re using is inspired by the Azure Digital Twins Definition Language (DTDL) and Adafruit’s Bluetooth Low Energy (BLE) APIs. We’ll share more about this in coming posts.
Similar to the process for adding a new board to CircuitPython, you will need to update the open source Wippersnapper firmware to include information about your board. If you’re using hardware similar to what the firmware already supports (launch platforms include – ESP32, ESP8266, Raspberry Pi, ESP32 AirLift Co-Processor hardware), you can simply add a few lines to the code to update information about your board’s unique identifiers. If you’re adding a new board or network interface hardware, there is a larger amount of work involved and we’ll work with you over discord or github to help add support for it.
Keep in mind – this is all under active development. If you have comments (please keep them constructive!), post up below. We’d love to hear your feedback on this process.