WipperSnapper is an interface for Adafruit IO, our incredibly easy-to-use IoT platform, designed to turn any WiFi-capable board into an IoT device without programming a single line of code. 

Simply load the WipperSnapper firmware onto your board, add credentials, and plug it into power. Your board will automatically register itself with your Adafruit IO account.

From there, you can add components to your board such as buttons, switches, potentiometers, sensors, and more! Components are dynamically added to hardware so you can immediately start interacting, logging, and streaming the data your projects produce without writing code.

This guide walks you through the process of installing WipperSnapper on a development board, a brief overview of the WipperSnapper platform, and instructions for adding (and interacting with) physical components from the web. All without writing a line of code.

YOU HAVE ENTERED THE BETA ZONE

WipperSnapper is in beta and actively being developed to add functionality, hardware, and fix bugs.

We encourage you to try out WipperSnapper with the understanding that it is not final release software and is still in development.

If you encounter any bugs, glitches, or difficulties during the beta period, or in this guide, please file an issue on the Adafruit IO support page.

Works with WipperSnapper

If you have one of the following boards, you can immediately get started using the WipperSnapper beta.

ESP32-S2

Home is where the heart is...it's also where we keep all our electronic bits. So why not wire it up with sensors and actuators to turn our house into an electronic wonderland....
$34.95
In Stock
What's Metro shaped and has an ESP32-S2 WiFi module? What has a STEMMA QT connector for I2C devices, and a Lipoly charger circuit? What has your favorite Espressif WiFi...
$19.95
In Stock
The Adafruit MagTag combines the new ESP32-S2 wireless module and a 2.9" grayscale E-Ink display to make a low-power IoT display that can show data on its screen even when power...
$34.95
In Stock

ESP32

Aww yeah, it's the Feather you have been waiting for! The HUZZAH32 is our ESP32-based Feather, made with the official WROOM32 module. We packed everything you love...
$19.95
In Stock

SAMD51 ("M4")

Give your next project a lift with AirLift - our witty name for the ESP32 co-processor that graces this Metro M4. You already know about the Adafruit Metro...
$34.95
In Stock
PyPortal, our easy-to-use IoT device that allows you to create all the things for the “Internet of Things” in minutes. Make custom touch screen interface...
$54.95
In Stock
The development board I own is not on this list

We're actively developing Adafruit IO Wippersnapper and will be adding new boards over time. Follow the Adafruit Blog and @AdafruitIO on Twitter to keep updated.

Can I add a new development board to Wippersnapper

Our goal is to allow people to contribute their boards to Adafruit IO WipperSnapper. We're still building out a process for this and will have steps for it in the future.

Updating WipperSnapper

Adafruit WipperSnapper is in active development. To avoid encountering bugs or problems with WipperSnapper, you'll want to keep the firmware on your WipperSnapper device up-to-date 

When you visit the WipperSnapper device list or the WipperSnapper device page, you'll notice the WipperSnapper device has a badge indicating the device's firmware version. When we release a new WipperSnapper firmware version, the badge will have an x next to the version number and appear red.

To update WipperSnapper - download the latest version of WipperSnapper for your board and follow the installation steps for your hardware.

WipperSnapper is BETA software

WipperSnapper is in beta and actively being developed to add functionality, hardware, and fix bugs.

We encourage you to try out WipperSnapper with the understanding that it is not final release software and is still in development.

If you encounter any bugs, glitches, or difficulties during the beta period, or in this guide, please file an issue on the Adafruit IO support page.

Sign up for Adafruit IO

Adafruit IO is a platform designed by Adafruit to displayrespond, and interact with your project's data. You will need an Adafruit IO account to use the Adafruit.io Wippersnapper platform.

If you do not already have an Adafruit IO account set up, head over to io.adafruit.com to link your Adafruit.com account to Adafruit IO.

Download the latest version

If you were previously running CircuitPython on your board - ALWAYS BACK UP YOUR CODE BEFORE INSTALLING OR UPDATING WIPPERSNAPPER BETA.

Download the UF2 file for your board below:

Next, plug your board into a USB cable. Make sure the USB cable is a data cable!

Install WipperSnapper

Double-tap the RESET button on your board to enter the UF2 bootloader. You may need to try this a few times to get the timing right.

A new drive will show up on your computer as boardnameBOOT, where boardname is the name of your specific board.

Next, drag the UF2 file you downloaded to the boardnameBOOT drive.

The boardnameBoot drive will disappear from your computer and a new drive will show up on your computer named WIPPER.

You'll also see the LEDs blink yellow 4 times to indicate the file system is initialized.

  • NOTE - If you've used this board previously with CircuitPython, it'll be named CIRCUITPY instead of WIPPER.

Configure the WipperSnapper Secrets File

You do not need to repeat the following steps each time you upgrade the WipperSnapper firmware file - once the board is registered with Adafruit IO, WipperSnapper will remember it until you delete the board.

We expect educators, scientists, artists, and makers to need quick and easy access to their WiFi network credentials, along with a way of storing their Adafruit IO credentials. WipperSnapper uses a secrets.json file on the WIPPER drive to hold your Adafruit IO and network credentials.

Open the WIPPER drive on your computer, you should see a new file named secrets.json.

Open the secrets.json file using a text editor.

Inside is a JSON-formatted text file with a line for each item. Each item has a name (such as your Adafruit IO username, io_username) and then a colon to separate it from the item key (such as YOUR_IO_USERNAME_HERE) and finally a comma.

The network_type_wifi_ key written to your file will depend on which type of WiFi interface your hardware uses. This will be set automatically!

{
    "io_username": "YOUR_IO_USERNAME_HERE",
    "io_key": "YOUR_IO_KEY_HERE",
    "network_type_wifi_native": {
      "network_ssid": "YOUR_WIFI_SSID_HERE",
      "network_password": "YOUR_WIFI_PASS_HERE"
    }
}

To obtain your Adafruit IO credentials, navigate to the Adafruit IO WipperSnapper page and click "My Key". A modal will pop up with your Adafruit IO username and the active key.

In the secrets.json file, replace YOUR_IO_USERNAME_HERE with your Adafruit IO username.

Then, replace YOUR_IO_KEY_HERE with the value of your Adafruit IO active key.

Replace YOUR_WIFI_SSID_HERE with your WiFi SSID and replace YOUR_WIFI_PASS_HERE with your WiFi network password.

Registering a board with Wippersnapper

On a web browser, navigate to the Adafruit IO WipperSnapper page. Keep this page open during this step.

Next, eject the WIPPER drive.

Then, press your board's RESET button once.

The RGB LED (if your board has one) should turn cyan as it connects to your WiFi network, then blue as it connects to the Adafruit IO service. It'll briefly turn yellow as it sends details about the board's hardware to Adafruit IO.

Finally, the RGB LED will blink green three times to indicate that it's fully connected. It'll turn off to conserve power. 

On your browser, you should see a new modal pop-up with a picture of your board! Give your board a name and click Continue to Device Page.

Congrats, your board is registered with WipperSnapper! The LED(s) or NeoPixel(s) will periodically flash to alert you that the board is still connected to Adafruit.io WipperSnapper.

Next, let's add some components to your board and start playing around! 

WipperSnapper is BETA software

WipperSnapper is in beta and actively being developed to add functionality, hardware, and fix bugs.

We encourage you to try out WipperSnapper with the understanding that it is not final release software and is still in development.

If you encounter any bugs, glitches, or difficulties during the beta period, or in this guide, please file an issue on the Adafruit IO support page.

Sign up for Adafruit IO

Adafruit IO is a platform designed by Adafruit to displayrespond, and interact with your project's data. You will need an Adafruit IO account to use the Adafruit.io Wippersnapper platform.

If you do not already have an Adafruit IO account set up, head over to io.adafruit.com to link your Adafruit.com account to Adafruit IO.

Download the latest version

If you were previously running CircuitPython on your board - ALWAYS BACK UP YOUR CODE BEFORE INSTALLING OR UPDATING WIPPERSNAPPER BETA.

Download the UF2 file for your board below:

Next, plug your board into a USB cable. Make sure the USB cable is a data cable!

Install WipperSnapper

Double-tap the RESET button on your board to enter the UF2 bootloader. You may need to try this a few times to get the timing right.

A new drive will show up on your computer as boardnameBOOT, where boardname is the name of your specific board.

Next, drag the UF2 file you downloaded to the boardnameBOOT drive.

The boardnameBoot drive will disappear from your computer and a new drive will show up on your computer named WIPPER. You'll also see the LEDs blink yellow 4 times to indicate the file system is initialized.

  • NOTE - If you've used this board previously with CircuitPython, it'll be named CIRCUITPY instead of WIPPER.

 

Configure the WipperSnapper Secrets File

You do not need to repeat the following steps each time you upgrade the WipperSnapper firmware file - once the board is registered with Adafruit IO, WipperSnapper will remember it until you delete the board.

We expect educators, scientists, artists, and makers to need quick and easy access to their WiFi network credentials, along with a way of storing their Adafruit IO credentials. WipperSnapper uses a secrets.json file on the WIPPER drive to hold your Adafruit IO and network credentials.

Open the WIPPER drive on your computer, you should see a new file named secrets.json.

Open the secrets.json file using a text editor.

Inside is a JSON-formatted text file with a line for each item. Each item has a name (such as your Adafruit IO username, io_username) and then a colon to separate it from the item key (such as YOUR_IO_USERNAME_HERE) and finally a comma.

The network_type_wifi_ key written to your file will depend on which type of WiFi interface your hardware uses. This will be set automatically!

{
   "io_username":"YOUR_IO_USERNAME_HERE",
   "io_key":"YOUR_IO_KEY_HERE",
   "network_type_wifi_airlift":{
      "network_ssid":"YOUR_WIFI_SSID_HERE",
      "network_password":"YOUR_WIFI_PASS_HERE"
   }
}

To obtain your Adafruit IO credentials, navigate to the Adafruit IO WipperSnapper page and click "My Key". A modal will pop up with your Adafruit IO username and the active key.

In the secrets.json file, replace YOUR_IO_USERNAME_HERE with your Adafruit IO username.

Then, replace YOUR_IO_KEY_HERE with the value of your Adafruit IO active key.

Replace YOUR_WIFI_SSID_HERE with your WiFi SSID and replace YOUR_WIFI_PASS_HERE with your WiFi network password.

Registering your Hardware to Wippersnapper

On a web browser, navigate to the Adafruit IO WipperSnapper page. Keep this page open during this step.

Eject the WIPPER drive.

Then, press your board's RESET button once.

The RGB LED (if your board has one) should turn cyan as it connects to your WiFi network, then blue as it connects to the Adafruit IO service. It'll briefly turn yellow as it sends information about the board to Adafruit IO.

Finally, the RGB LED will blink green three times to indicate that it's fully connected. It'll turn off to conserve power. 

On your browser, you should see a new modal pop-up with a picture of your board! Give your board a name and click Continue to Device Page.

Congrats, your board is registered with WipperSnapper! The LED(s) or NeoPixel(s) will periodically flash to alert you that the board is still connected to Adafruit.io WipperSnapper.

Next, let's add some components to your board and start playing around! 

WipperSnapper is BETA software

WipperSnapper is in beta and actively being developed to add functionality, hardware, and fix bugs.

We encourage you to try out WipperSnapper with the understanding that it is not final release software and is still in development.

If you encounter any bugs, glitches, or difficulties during the beta period, or in this guide, please file an issue on the Adafruit IO support page.

Sign up for Adafruit.IO

Adafruit IO is a platform designed by Adafruit to displayrespond, and interact with your project's data. You will need an Adafruit IO account to use the Adafruit.io Wippersnapper platform.

If you do not already have an Adafruit IO account set up, head over to io.adafruit.com to link your Adafruit.com account to Adafruit IO.

Install ESP32 USB Driver

First, install the SiLabs CP2104 Driver on your computer. This driver is required for your computer to communicate with the ESP32.

Enable Web Serial

We've developed a web-based tool for you to install WipperSnapper on your ESP32. This tool uses the Web Serial functionality of Google Chrome.

You will have to use the Google Chrome browser for this to work.

Safari, Firefox, and other browsers are not supported at this time because this tool requires Web Serial and only Chrome is supporting it to the level needed at present.

At this step, you'll need to enable the Serial API, which is really easy.

Visit chrome://flags from within Chrome. Find and enable the Experimental Web Platform features

Restart Chrome

Install WipperSnapper on ESP32

In the Chrome browser, visit the WipperSnapper NVM Tool website.

On the top right of the webpage, click the Connect button. You will get a pop-up with a list of USB devices. Select the USB port belonging to your ESP32.

You may want to remove all other USB devices so only the ESP32 board is attached, that way there's no confusion over multiple ports! 

The Javascript code will now try to connect to the ROM bootloader. It may timeout for a bit until it succeeds. On success, you will see that it is Connected and will print out a unique MAC address identifying the board.

Once you have successfully connected to the ESP32, a form will appear with a spot to enter your credentials.

To obtain your Adafruit IO credentials, navigate to the Adafruit IO WipperSnapper page and click "My Key". A modal will pop up with your Adafruit IO username and the active key.

Your network credentials are not saved to a server, this script is run locally on your browser.

Navigate back to the WipperSnapper ESP32 installation page and enter your network and Adafruit IO credentials.

Click Install WipperSnapper.

You should see WipperSnapper being flashed to your ESP32. Hang tight and stay on this tab, the process takes a little over a minute. Do not disconnect your ESP32 from USB until the installation has been completed.

Once the tool completes the installation, the top form will collapse and you'll see a message in the log indicating that the operation is complete.

Navigate to https://io.adafruit.com/wippersnapper and press the RESET button on your ESP32.

You should see a new modal pop-up with a picture of your ESP32! Give it a name and click Continue.

Congrats, your board is registered with WipperSnapper! The LED(s) or NeoPixel(s) will periodically flash to alert you that the board is still connected to Adafruit.io WipperSnapper.

Next, let's add some components to your board and start playing around! 

Ok - you've connected your board to WipperSnapper. Now what?

This page will give you a quick tour of Adafruit IO WipperSnapper and its core features.

WipperSnapper Device List

The Device List page provides a list of the devices you've connected to Adafruit IO WipperSnapper along with their connection status.

Think of it as a virtual inventory for your boards! 

You can visit this page at any time by navigating to https://io.adafruit.com/wippersnapper.

Wippersnapper Device Page

Clicking on a device from the Devices List page will bring you to its device page. This page is an interface to configure and interact with anything physically connected to your device.

You may think of it as the state of your device at any given time. 

When you register a device for the first time, this page will be empty, it's a clean slate!

WipperSnapper Components 

A "component" in WipperSnapper denotes anything which is physically connected to your hardware.

This can include sensors, buttons, LEDs, NeoPixels, displays, and more!

When you click New Component, your hardware will automatically connect to and configure the component using the settings you specified. No coding required! 

Additionally, a component also sets up a unique Adafruit IO feed to store the component's data stream on the web.

Do I need to set up my components every time I use WipperSnapper?

Nope! WipperSnapper remembers each component's configuration for each of your boards. The "state" of your board's configuration is saved to its device page.

When you re-connect a board to WipperSnapper, it will automatically re-configure every component listed on the Device Page. The most recent value stored on each component's feed will be sent to the device.

I do not see my the component I want to use listed in the component picker pop-up

We're actively working towards adding more components and component types to Adafruit Wippersnapper. If you'd like to suggest a component to add, please leave feedback on the Adafruit IO "Contact Us" form and include the product URL and a datasheet (if applicable).

Getting something to blink is the first step for most hardware projects. We'll start learning WipperSnapper by adding a LED component to your board and blinking it! 

Component Wiring

Most development boards include a built-in LED which you don't need to wire up. 

On the Adafruit FunHouse, this LED is found below the display, and slightly to the right.

For other development boards, refer to the board's wiring diagram for the location of the built-in LED or wire up an externally connected LED.

Add a LED Component

First, navigate to the WipperSnapper device list and select the board you'd like to use.

On the device page, next to the device's name, there should be a green "Online" badge indicating that the device is connected to Adafruit IO.

I see a red, "Offline", badge

First, verify your Wireless Network's connectivity by navigating to https://io.adafruit.com/wippersnapper from your browser. If your wireless network is up and you can access Adafruit IO, please contact Adafruit IO support for further troubleshooting steps.

Click the + New Component button to bring up the component picker. 

From the component picker, click the LED.

Next, we're going to configure the LED component. Set the component's name.

Then, open the LED Pin dropdown and select the pin to which the LED is physically connected.

Once you've configured the LED, click Create Component

A new toggle button "component" should appear on the device page.

Click the button to toggle the LED!

Wait...what just happened?

When you clicked "Create Component" Adafruit IO WipperSnapper sent a message to your board to configure the LED using the settings you configured. It also created a new Adafruit IO Feed for storing the component's history and saving its state. Toggling the button sends a "toggle the LED" message to the device. This is the core of how digital outputs work in Adafruit IO WipperSnapper.

WipperSnapper RGB Status Light

Most WipperSnapper-capable boards have a single NeoPixel or DotStar RGB LED on the board. During the boot process, the LED is used to signal the hardware's status.

Here's what the colors and blinking means:

  • YELLOW Blinking - There is a new secrets.json file on the WIPPER drive. Edit this file to contain your credentials and RESET the device for the changes to take effect.
  • PINK - Connecting to Network.
    • If the device reboots while displaying this color, there's an issue connecting to the wireless network you specified in secrets.json.
  • BLUE - Connecting to Adafruit.io MQTT Broker
    • If the device reboots while displaying this color, please verify your Adafruit.io in the secrets.json file.
  • GREEN Solid - Connected to Network and Adafruit IO.
  • YELLOW Solid - Registering and configuring your hardware with WipperSnapper.
  • GREEN Blinking (3x) - Bootup complete, you can proceed to use your device with the WipperSnapper website.

Encountering issues?

If you are having trouble with your hardware, technical support is provided in the Adafruit customer forums for all Adafruit customers by our dedicated team of engineers and staff. To get help, post a new topic on the WipperSnapper forum.

If you are having a problem with the WipperSnapper website - vist http://io.adafruit.com/support and click Contact Adafruit IO Support.

Adafruit IO Data Rate

If you are using Adafruit IO Plus, you will be able to send 60 data points per minute to Adafruit IO. If you are using the free Adafruit IO account, you will be able to send 30 data points per minute.

Sending more than this will result in your account temporarily timing out ("throttled"). 

This means that if you're using a Free Adafruit IO account, you will need to be more conscious of how you set up your components. We suggest IO Free users configure their components to send data on a periodic basis, rather than immediately. 

Adafruit IO Feed Limit

Free Adafruit IO accounts are limited to ten total components and up to two Wippersnapper devices per account.

Adafruit IO Plus accounts do not have a limit on the number of devices that may connect to Wippersnapper or feeds. However, you must adhere to sending 60 data points per minute, across all your WipperSnapper devices.

If this data rate limit is too low, we offer upgrades to the Adafruit IO Plus plan to increase your data rate limit. 

This guide was first published on Sep 27, 2021. It was last updated on Sep 27, 2021.