Installing WipperSnapper should be a quick and easy process, but it's still under development so tell us if you run into issues. If you know how to use a Serial Monitor, the device spits out useful info over the serial port!
Head to the Devices page on Adafruit IO, and click the New Device button.
Select your board from the list of compatible boards, then follow the instructions to get the software and secrets (WiFi and Adafruit IO credentials) copied to your board.
Using a Chromium based browser works best with the web installer (Chrome / Edge), but local installation using UF2 files (or esptool) is supported too!
If your board isn't listed in the board selector then you can request support by creating an issue on GitHub (or just try the most compatible looking boards by chipset and pin count).
After installation and copying the secrets (not required for boards without USB Mass storage device support), the board should reboot itself.
If not then reset it manually (using a reset button or by reconnecting power).
Make sure you have an Adafruit IO webpage open, as it's required to receive the Registration message, and then name the device once it connects.
If you missed this registration / board naming step, don't worry, just reset the board and try again.
After registration you're taken to the Device page for the newly registered board. From here you can view the Online Status, WipperSnapper version installed, previous connection events, and any components you've added to the device. There is also a Settings button to change the device name, or delete the device (and data).
To learn more about using WipperSnapper with your board, and "uninstalling" WipperSnapper (replace with Arduino blink sketch or CircuitPython), find the WipperSnapper page on your board's Learn Guide by using the Docs link beneath it's online status. It'll be similar to this one for the ESP32-S2 feather
Adding components is a simple process, click +
or the New Component button, then search for the component you're looking for.
The search isn't perfect, so in addition to searching for the name or family, try other similar words, the type of data, the I2C address, or the categories like PWM
, analog
, i2c
, uart
, pin
, digitalio
.
You'll then be asked to configure any options for your component, such as pin/address, brightness, any pull-up resistors, or at least the name.
Each new component has it's own row, and an automatically associated data Feed, one per data type (e.g. temperature + humidity).
It's worth noting that some additional display related options are present in the component settings after creation, like the on/off state labels and icons for buttons.
The components feed page is linked via the Graph icon at the end of the row, next to the component's Settings cog icon.
Once you've configured your device, you can Export the configuration so it can be shared or easily recreated / duplicated.
There's a complimentary Import config option too, and if the board doesn't match, or component addresses are in use, then you may be asked to unselect those incompatible components before import.
Almost all boards have some built in components, like an on-board LED, NeoPixel, or boot button.
Most of these are useable by WipperSnapper, and can be automatically setup using the Auto-Config button, then Magic Configuration.
Configure Project Components
You need to add eight components to your new device. Each Arcade Button needs setting up as a button component with a pull-up resistor, with an additional component for each button LED (pick dimmable LEDs although setting them up as normal LEDs is also fine). You can do this really easily by importing a config file!
{ "exportVersion": "1.0.0", "exportedBy": "tyeth", "exportedAt": "2025-06-10T18:13:03.071Z", "exportedFromDevice": { "board": "rpi-pico-w", "firmwareVersion": "1.0.0-beta.100" }, "components": [ { "name": "💦 Wee Button", "pinName": "D18", "type": "push_button", "mode": "DIGITAL", "direction": "INPUT", "period": 0, "pull": "UP", "isPin": true }, { "name": "💦 Wee LED", "pinName": "D2", "type": "led", "mode": "DIGITAL", "direction": "OUTPUT", "isPin": true }, { "name": "💩 Poo Button", "pinName": "D19", "type": "push_button", "mode": "DIGITAL", "direction": "INPUT", "period": 0, "pull": "UP", "isPin": true }, { "name": "💩 Poo LED", "pinName": "D3", "type": "led", "mode": "DIGITAL", "direction": "OUTPUT", "isPin": true }, { "name": "❌ Didn't Go Button", "pinName": "D20", "type": "push_button", "mode": "DIGITAL", "direction": "INPUT", "period": 0, "pull": "UP", "isPin": true }, { "name": "❌ Didn't Go LED", "pinName": "D4", "type": "led", "mode": "DIGITAL", "direction": "OUTPUT", "isPin": true }, { "name": "🔔 Tell Adult Button", "pinName": "D21", "type": "push_button", "mode": "DIGITAL", "direction": "INPUT", "period": 0, "pull": "UP", "isPin": true }, { "name": "🔔 Tell Adult LED", "pinName": "D5", "type": "led", "mode": "DIGITAL", "direction": "OUTPUT", "isPin": true } ] }
Use this configuration file to easily import all the needed components for this project, the four buttons plus their dimmable LEDs. Find the Import button by using the Auto-Config button on the device page.
If you'd prefer to set the components up manually, then have a look at the Usage page of the Quick Start Guide for Using The Raspberry Pi Pico With WipperSnapper which covers most types of components:
After setting up the components, they can be configured further using the Settings cog at the end of the row.
You can view the feed page and data associated with each component by clicking the Graph icon there too.
Before continuing on to create your Actions, ensure you're device page looks similar to the image below, with all four buttons and dimmable LEDs configured.
Page last edited June 12, 2025
Text editor powered by tinymce.