# Adafruit IO Basics: Color

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/039/385/medium800thumb/leds_rgb.jpg?1487358268)

This guide is part of a series of guides that cover the basics of using Adafruit IO. It will show you how to send color data from Adafruit IO to a RGB LED.

If you haven't worked your way through the Adafruit IO feed and dashboard basics guides, you should do that before continuing with this guide so you have a basic understanding of Adafruit IO.

* [Adafruit IO Basics: Feeds](../../../adafruit-io-basics-feeds)
* [Adafruit IO Basics: Dashboards](../../../adafruit-io-basics-dashboards) 

You should go through the setup guides associated with your selected set of hardware, and make sure you have internet connectivity with the device before continuing. The following links will take you to the guides for your selected platform.

* [Adafruit Feather HUZZAH ESP8266 Setup Guide](../../../../adafruit-io-basics-esp8266-arduino)

If you have went through all of the prerequisites for your selected hardware, you are now ready to move on to the Adafruit IO setup steps that are common between all of the hardware choices for this project. Let's get started!

# Adafruit IO Basics: Color

## Adafruit IO Setup

The first thing you will need to do is to login to [Adafruit IO](https://io.adafruit.com) and visit the **Settings** page.

Click the **VIEW AIO KEY** button to retrieve your key.



![](https://cdn-learn.adafruit.com/assets/assets/000/039/386/medium800/leds_00_keyclick.png?1487358350)

A window will pop up with your Adafruit IO. Keep a copy of this in a safe place. We'll need it later.

![](https://cdn-learn.adafruit.com/assets/assets/000/039/387/medium800/leds_01_key.png?1487358354)

## Creating the Color&nbsp;Feed

Next, you will need to create a feed called **Color**. If you need help getting started with creating feeds on Adafruit IO, check out the&nbsp;[Adafruit IO Feed Basics&nbsp;guide](../../../../adafruit-io-basics-feeds).

![](https://cdn-learn.adafruit.com/assets/assets/000/039/388/medium800/leds_Screen_Shot_2017-02-17_at_2.06.40_PM.png?1487358425)

## Adding the Color&nbsp;Block

Next, add a new Color&nbsp;block to a new or existing dashboard. Name the block whatever you would like, but make sure you have selected the **_Color_** &nbsp;feed as the data source for the block.

If you need help getting started with Dashboards on Adafruit IO, check out the&nbsp;[Adafruit IO Dashboard Basics guide](../../../../adafruit-io-basics-dashboards).

![](https://cdn-learn.adafruit.com/assets/assets/000/039/389/medium800/leds_Screen_Shot_2017-02-17_at_2.08.03_PM.png?1487358546)

When you are finished editing the form, click _Create Block_ to add the new block to the dashboard.

![](https://cdn-learn.adafruit.com/assets/assets/000/039/390/medium800/leds_Screen_Shot_2017-02-17_at_2.09.32_PM.png?1487358591)

Next, we will look at wiring the circuit.

# Adafruit IO Basics: Color

## Wiring

You will need the following parts for this tutorial:

* **1x** Adafruit IO compatible Feather
* **1x** diffused RGB LED - common **anode**
* **3x** 560 ohm resistors
* **4x** jumper wires

We will be looking at the LED with the flat side of the LED on the left. If it's hard for you to see which side is the flat side, you can use the long pin as your guide. The long pin will be closer to the flat side of the LED.

![](https://cdn-learn.adafruit.com/assets/assets/000/039/391/medium800/leds_io_rgb.png?1487361608)

## Arduino Wiring
We will be using a **Feather ESP8266** in this example, but you can adjust the pins in the sketch if you are using a different board. We will need to connect the following pins from the Feather to the resistors and RGB LED:

* Feather **pin 4** to one leg of a **560 ohm resistor**, and the other leg of the resistor to the **first leg** (R) of the LED
* Feather **3V** to the **second leg** (3V) of the LED
* Feather **pin 5** to one leg of a **560 ohm resistor**, and the other leg of the resistor to the **third leg** (G) of the LED
* Feather **pin 2** to one leg of a **560 ohm resistor**, and the other leg of the resistor to the **fourth leg** (B) of the LED

![](https://cdn-learn.adafruit.com/assets/assets/000/039/476/medium800/leds_rgb_fritzing.png?1487601614)

Next, let's look at the example sketch we will be using.

# Adafruit IO Basics: Color

## Arduino Setup

You should go through the setup guides associated with your selected set of hardware, and make sure you have internet connectivity with the device before continuing. The following links will take you to the guides for your selected platform.

* [Adafruit Feather HUZZAH ESP8266 Setup Guide](../../../../adafruit-io-basics-esp8266-arduino)

You will need to make sure you have at least **version 2.4.0** of the Adafruit IO Arduino library installed before continuing.

![](https://cdn-learn.adafruit.com/assets/assets/000/039/393/medium800/leds_Screen_Shot_2017-02-17_at_3.21.01_PM.png?1487362875)

For this example, you will need to open the **adafruitio\_13\_rgb** example in the **Adafruit IO Arduino** library.

![](https://cdn-learn.adafruit.com/assets/assets/000/039/394/medium800/leds_Screen_Shot_2017-02-17_at_3.21.46_PM.png?1487362942)

Next, we will look at the network configuration options in the sketch.

# Adafruit IO Basics: Color

## Arduino Network Config

To configure the network settings, click on the **config.h** tab in the sketch. You will need to set your Adafruit IO username in the **IO_USERNAME** define, and your Adafruit IO key in the **IO_KEY** define.

![](https://cdn-learn.adafruit.com/assets/assets/000/039/317/medium800/adafruit_io_03_config.png?1487185264)

## WiFi Config

WiFi is enabled by default in **config.h** so if you are using one of the supported WiFi boards, you will only need to modify the **WIFI_SSID** and **WIFI_PASS** options in the **config.h** tab.

![](https://cdn-learn.adafruit.com/assets/assets/000/039/318/medium800/adafruit_io_04_wifi.png?1487185900)

## FONA Config

If you wish to use the FONA 32u4 Feather to connect to Adafruit IO, you will need to first comment out the WiFi support in **config.h**

![](https://cdn-learn.adafruit.com/assets/assets/000/039/319/medium800/adafruit_io_05_wifi_disable.png?1487186164)

Next, remove the comments from both of the FONA config lines in the FONA section of **config.h** to enable FONA support.

![](https://cdn-learn.adafruit.com/assets/assets/000/039/320/medium800/adafruit_io_06_fona.png?1487186409)

## Ethernet Config

If you wish to use the Ethernet Wing to connect to Adafruit IO, you will need to first comment out the WiFi support in **config.h**

![](https://cdn-learn.adafruit.com/assets/assets/000/039/321/medium800/adafruit_io_05_wifi_disable.png?1487186577)

Next, remove the comments from both of the Ethernet config lines in the Ethernet section of **config.h** to enable Ethernet Wing support.

![](https://cdn-learn.adafruit.com/assets/assets/000/039/322/medium800/adafruit_io_07_ethernet.png?1487186729)

Next, we will look at how the example sketch works.

# Adafruit IO Basics: Color

## Arduino Code

The **adafruitio\_13\_rgb** example uses pins 4, 5, &amp; 2 for red, green, and blue by default. These pins can be modified by changing the **RED_PIN**, **GREEN_PIN**, and **BLUE_PIN** defines. You will need to choose pins on your board that support PWM output.

```auto
/************************ Example Starts Here *******************************/

// default PWM pins for ESP8266.
// you should change these to match PWM pins on other platforms.
#define RED_PIN   4
#define GREEN_PIN 5
#define BLUE_PIN  2
```

The next chunk of code sets up an instance of the **color** feed.

```auto
// set up the 'color' feed
AdafruitIO_Feed *color = io.feed("color");
```

In the setup function, we connect to Adafruit IO, and attach a function called **handleMessage** to the **color** feed. This function will be called whenever your device receives messages for that feed.

We also use a special function for the ESP8266 platform that sets the **analogWrite** range to 0-255. This will be ignored on all other platforms.

The code will wait until you have a valid connection to Adafruit IO before continuing with the sketch. If you have any issues connecting, check **config.h** for any typos in your username or key.

```auto
void setup() {

  // start the serial connection
  Serial.begin(115200);

  // wait for serial monitor to open
  while(! Serial);

  // connect to io.adafruit.com
  Serial.print("Connecting to Adafruit IO");
  io.connect();

  // set up a message handler for the 'color' feed.
  // the handleMessage function (defined below)
  // will be called whenever a message is
  // received from adafruit io.
  color-&gt;onMessage(handleMessage);

  // wait for a connection
  while(io.status() &lt; AIO_CONNECTED) {
    Serial.print(".");
    delay(500);
  }

  // we are connected
  Serial.println();
  Serial.println(io.statusText());

  // set analogWrite range for ESP8266
  #ifdef ESP8266
    analogWriteRange(255);
  #endif

}
```

Next, we have the main `loop()` function. The first line of the loop function calls `io.run();` this line will need to be present at the top of your loop in every sketch. It helps keep your device connected to Adafruit IO, and processes any incoming data.

```auto
void loop() {

  // io.run(); is required for all sketches.
  // it should always be present at the top of your loop
  // function. it keeps the client connected to
  // io.adafruit.com, and processes any incoming data.
  io.run();
  
}
```

The final chunk of code is the **handleMessage** function. This is the function that is called whenever the **color** feed gets a message.

We use the **data-&gt;toRed()**, **data-&gt;toGreen()**, and **data-&gt;toBlue()** functions to convert the incoming hex color values to integers that will be compatible with **analogWrite**.

Because we are using a **common anode** RGB LED, we will need to flip the incoming RGB values. We do this by subtracting the values from 255 before sending the values to **analogWrite**.

**If you are using a common cathode RGB LED**, you can send the values directly to **analogWrite** from **data-&gt;toRed()**, **data-&gt;toGreen()**, and **data-&gt;toBlue()**.

```auto
// this function is called whenever a 'color' message
// is received from Adafruit IO. it was attached to
// the color feed in the setup() function above.
void handleMessage(AdafruitIO_Data *data) {

  // print RGB values and hex value
  Serial.println("Received:");
  Serial.print("  - R: ");
  Serial.println(data-&gt;toRed());
  Serial.print("  - G: ");
  Serial.println(data-&gt;toGreen());
  Serial.print("  - B: ");
  Serial.println(data-&gt;toBlue());
  Serial.print("  - HEX: ");
  Serial.println(data-&gt;value());

  // invert RGB values for common anode LEDs
  analogWrite(RED_PIN, 255 - data-&gt;toRed());
  analogWrite(GREEN_PIN, 255 - data-&gt;toGreen());
  analogWrite(BLUE_PIN, 255 - data-&gt;toBlue());

}
```

Upload the sketch to your board, and open the Arduino Serial Monitor. Your board should now connect to Adafruit IO.

```auto
Connecting to Adafruit IO....

Adafruit IO connected.
```

You can now use the color block on Adafruit IO to set a color, and you should see something resembling the following in the Arduino Serial Monitor.

```auto
Received:
  - R: 0
  - G: 0
  - B: 0
  - HEX: #000000
Received:
  - R: 210
  - G: 31
  - B: 31
  - HEX: #d21f1f
```

You should also see the RGB LED update with the color you picked in the color block.

![](https://cdn-learn.adafruit.com/assets/assets/000/039/395/medium800thumb/leds_rgb_small.jpg?1487364125)

# Adafruit IO Basics: Color

## Python Wiring

## Parts
We're going to use a combination of the Adafruit IO Client Library and Adafruit's CircuitPython to control a Raspberry Pi over Adafruit IO.&nbsp;

### Raspberry Pi 3 - Model B+ - 1.4GHz Cortex-A53 with 1GB RAM

[Raspberry Pi 3 - Model B+ - 1.4GHz Cortex-A53 with 1GB RAM](https://www.adafruit.com/product/3775)
The Raspberry Pi 3 Model B is the most popular Raspberry Pi computer made, and the Pi Foundation knows you can always make a good thing _better_! And what could make the Pi 3 better? How about a&nbsp;_faster_ processor, 5 GHz WiFi, and updated Ethernet chip with PoE capability?...

In Stock
[Buy Now](https://www.adafruit.com/product/3775)
[Related Guides to the Product](https://learn.adafruit.com/products/3775/guides)
![Angled shot of Raspberry Pi 3 - Model B+](https://cdn-shop.adafruit.com/640x480/3775-11.jpg)

If you're following along with a&nbsp;[Raspberry Pi](https://www.adafruit.com/category/105), we're going to use a T-Cobbler Plus for the IO Basics Projects. This add-on prototyping board lets you easily connect a Raspberry Pi (Raspberry Pi Model Zero, A+, B+, Pi 2, Pi 3) to a solderless breadboard:

### Assembled Pi T-Cobbler Plus - GPIO Breakout

[Assembled Pi T-Cobbler Plus - GPIO Breakout](https://www.adafruit.com/product/2028)
 **This is the assembled version of the Pi T-Cobbler Plus. &nbsp;It only works with the Raspberry Pi Model Zero, A+, B+, Pi 2, Pi 3, Pi 4, and Pi 5!** (Any Pi with 2x20 connector)  
  
The Raspberry Pi has landed on the Maker World like a 40-GPIO pinned, quad-USB ported,...

Out of Stock
[Buy Now](https://www.adafruit.com/product/2028)
[Related Guides to the Product](https://learn.adafruit.com/products/2028/guides)
![Angled shot of Assembled Pi T-Cobbler Plus next to GPIO ribbon cable](https://cdn-shop.adafruit.com/640x480/2028-07.jpg)

Want to create an automatic fish-feeder, a door-lock system with vibration-feedback, or maybe you want to just chain a bunch of lights and motors together and control them with Adafruit IO?

_You'll need a few PWM outputs. This guide uses **three**._

The Raspberry Pi is limited to one PWM output. While we could use this PWM output for the servo, we're going to use the [Adafruit 16-Channel 12-bit PWM/Servo driver](https://www.adafruit.com/product/815). This board can be used to control up to 16 PWM outputs. This means you can have a bunch of servos, DC motors, LED lights, or even a combination of both.

### Part: Adafruit 16-Channel 12-bit PWM/Servo Driver
quantity: 1
Adafruit PCA9685 Breakout.
[Adafruit 16-Channel 12-bit PWM/Servo Driver](https://www.adafruit.com/product/815)

### Part: Resistors
quantity: 3
560 Ohm
[Resistors](https://www.adafruit.com/product/2784)

### Part: RGB LED
quantity: 1
Diffused RGB (tri-color) LED - Common Anode
[RGB LED](https://www.adafruit.com/product/159)

### Part: Jumper Wires
quantity: 1
Breadboarding wire bundle.
[Jumper Wires](https://www.adafruit.com/product/153)

## Wiring
![](https://cdn-learn.adafruit.com/assets/assets/000/058/625/medium800/adafruit_io_rgb_led_bb.png?1533328043)

Make the following connections between the Raspberry Pi and the PCA9685:

- **Pi 3.3V&nbsp;** to&nbsp; **Power Rail**
- **Pi GND&nbsp;** to&nbsp; **Ground Rail**
- **3.3V** &nbsp;to **PCA9685 VCC**
- **Pi SDA&nbsp;** to&nbsp; **PCA9685 SDA**
- **Pi SCL to PCA9685 SCL**

![](https://cdn-learn.adafruit.com/assets/assets/000/058/626/medium800/adafruit_io_leds_io_rgb.png?1533328142)

Now we're going to connect the RGB LED to the PCA9685. We'll be using the LED with the flat side of the LED on the left. If you're having trouble seeing which side is the flat side, use the longest pin (3V) as your guide. The longest pin will be closer to the flat side of the RGB LED.

Make the following connections between the RGB LED, resistors and the PCA9685:

- **PCA9685 Channel 15** to one leg of a 560 ohm resistor, and the other leg of the resistor to the first leg (R) of the RGB LED.
- **3.3V&nbsp;** to the second leg (3V) of the RGB led.
- **PCA9685 Channel 14** &nbsp;to one leg of a 560 ohm resistor, and the other leg of the resistor to the third leg (G) of the RGB LED.
- **PCA9685 Channel 13** &nbsp;to one leg of a 560 ohm resistor, and the other leg of the resistor to the fourth leg (B) of the RGB LED.

Next, let's install the required CircuitPython libraries and set up our Pi.

# Adafruit IO Basics: Color

## Python Setup

Warning: 

If you're following along with a Raspberry Pi, Beaglebone or any other supported small linux computer, we'll use a special library called&nbsp;[**adafruit\_blinka**](https://pypi.org/project/Adafruit-Blinka/)&nbsp;([named after Blinka, the CircuitPython mascot](https://www.adafruit.com/?q=blinka)) to provide the layer that translates the CircuitPython hardware API to whatever library the Linux board provides. It's CircuitPython, on Pi!

If you haven't set up Blinka and the Adafruit IO Python Library yet on your Raspberry Pi, follow our guide:

- [Blinka + Adafruit IO Setup](https://learn.adafruit.com/adafruit-io-basics-digital-input/python-setup)

# Enable I2C

We use two pins on the Pi (SDA/SCL) to communicate over I2C with the&nbsp;PCA9685. You only have to do this step&nbsp;_once_ per Raspberry Pi, the I2C interface is disabled by default.

- [Enabling I2C](https://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-setup/configuring-i2c)

Once you're done with this and have rebooted, verify you have the I2C devices with the command:

`sudo i2cdetect -y 1`

If your PCA9685 Breakout is wired up correctly, it'll show up at 0x40:

![](https://cdn-learn.adafruit.com/assets/assets/000/058/621/medium800/adafruit_io_i2cdetect.png?1533325870)

## Installing the CircuitPython-PCA9685 Library

You'll also need to install a library to communicate with the PWM breakout. Since we're using Adafruit Blinka (CircuitPython), we can install CircuitPython libraries on our Raspberry Pi. In this case, we're going to&nbsp;install the CircuitPython-PCA9685 library.

Run the following command to **install the CircuitPython-PCA9685 library** :

`pip3 install adafruit-circuitpython-PCA9685`

# Adafruit IO Basics: Color

## Python Code

The **rgb\_led.py&nbsp;** example uses the PCA9685's channels 6, 5 and 4 by default. These channels can be modified by changing the&nbsp; **RED\_PIN, GREEN\_PIN,&nbsp;** and&nbsp; **BLUE\_PIN&nbsp;** variables. You can use any three channels on the PCA (0 to 15).

```auto
# PWM Pins
RED_PIN = 6
GREEN_PIN = 5
BLUE_PIN = 4
```

After importing our system libraries, Adafruit Blinka, the PCA9685, and the Adafruit IO REST client, we need to **set the&nbsp;`ADAFRUIT_IO_KEY` and `ADAFRUIT_IO_USERNAME`&nbsp;variables to our account credentials.&nbsp;**

```auto
# Set to your Adafruit IO key.
# Remember, your key is a secret,
# so make sure not to publish it when you publish this code!
ADAFRUIT_IO_KEY = 'YOUR_AIO_KEY'

# Set to your Adafruit IO username.
# go to https://accounts.adafruit.com to find your username)
ADAFRUIT_IO_USERNAME = 'YOUR_AIO_USERNAME'
```

In the setup of this code, we create an instance of the Adafruit IO Client, create a color feed, and create a PCA9865 class instance which is used to control the PWM outputs.&nbsp;

```auto
# Create an instance of the REST client.
aio = Client(ADAFRUIT_IO_USERNAME, ADAFRUIT_IO_KEY)

try: # if we have a 'color' feed
    color = aio.feeds('color')
except RequestError: # create an `color` feed
    feed = Feed(name='color')
    color = aio.create_feed(feed)

# Create the I2C bus interface.
i2c_bus = I2C(SCL, SDA)

# Create a simple PCA9685 class instance.
pca = PCA9685(i2c_bus)
pca.frequency = 60
```

Whenever the color feed receives a new message, we'll first convert the feed (in hexadecimal) to separate red, green, and blue values compatible with the PCA using the `toRed()` **,** `toGreen()`, and `toBlue()` functions.&nbsp;

Then, we use the `map_range()`method to map the values to 16-bit values for the PCA9685:

```auto
red = map_range(int(red), 0, 255, 0, 65535)
green = map_range(int(green), 0, 255, 0, 65535)
blue = map_range(int(blue), 0, 255, 0, 65535)
```

Then, we're going to send set each pin's duty cycle. Because the RGB LED we are using is&nbsp; **common anode,&nbsp;** we'll need to flip the incoming RGB values by subtracting them from 65535.

```auto
pca.channels[RED_PIN].duty_cycle = 65535 - int(red)
pca.channels[GREEN_PIN].duty_cycle = 65535 - int(green)
pca.channels[BLUE_PIN].duty_cycle = 65535 - int(blue)
```

Save the code to your Raspberry Pi. Run the code by entering the following into your terminal:

**python3 rgb\_led.py**

You can now use the color block on Adafruit IO to set the color feed. You should see something resembling the following in the terminal when you change this feed:

```auto
Received Color:
	 - R:  255
	 - G:  0
	 - B:  0
	 - HEX:  #ff0000
Received Color:
	 - R:  0
	 - G:  0
	 - B:  0
	 - HEX:  #000000
```

You should also see the RGB LED update with the color you picked in the color block.

## Code
https://github.com/adafruit/io-client-python/blob/master/examples/basics/rgb_led.py

# Adafruit IO Basics: Color

## Adafruit IO FAQ

## Encountering an issue with your Adafruit IO Arduino Project?

If you're having an issue compiling, connecting, or troubleshooting your project, check this page first.

_Don't see your issue?_&nbsp;&nbsp;[Post up on the Adafruit IO Forum with your issue](https://forums.adafruit.com/viewforum.php?f=56).

### **I encounter the following error when compiling my sketch:**

**`  fatal error: Adafruit_MQTT.h: No such file or directory, `** `#include "Adafruit_MQTT.h"`

The Adafruit IO Arduino library is dependent on our Adafruit IO MQTT Library.

To resolve this error, from the Arduino IDE, navigate to the **Manage Libraries...** option in the **Sketch -\> Include Library** menu.

![adafruit_io_library_menu.png](https://cdn-learn.adafruit.com/assets/assets/000/065/260/medium640/adafruit_io_library_menu.png?1541529617)

To resolve this error, from the Arduino IDE, navigate to the **Manage Libraries...** option in the **Sketch -\> Include Library** menu.

![adafruit_io_mqtt_install.png](https://cdn-learn.adafruit.com/assets/assets/000/065/259/medium640/adafruit_io_mqtt_install.png?1541529632)

### 

Your board is not connecting to Adafruit IO, but why? Let's find out:

**First** , check in&nbsp;`config.h`&nbsp;that you have the correct&nbsp;`IO_USERNAME`,&nbsp;`IO_KEY`,&nbsp;`WIFI_SSID`, and&nbsp;`WIFI_PASS`&nbsp;are set correctly.&nbsp;

**Next** , we're going to modify the while loop which waits for an IO connection in your sketch. Change the line in the status check loop from&nbsp;`Serial.println(.);`to&nbsp;`Serial.println(io.statusText());`

`// wait for a connection`  
`while(io.status() < AIO_CONNECTED) {`  
`Serial.println(io.statusText());`  
`delay(500);`  
`}`

Verify and re-upload the sketch. If you're receiving a&nbsp; **Network disconnected&nbsp;** error message, the board is not able to talk to the internet. Re-check your hardware, connections, and router settings.&nbsp;

If it's still not showing&nbsp; **Adafruit IO connected** ,&nbsp;check the&nbsp;[IO status on the Adafruit Status page](https://status.adafruit.com/)&nbsp;to make sure the service is online.

### 

Possibly - you can check&nbsp;[IO status on the Adafruit Status page](https://status.adafruit.com/).&nbsp;

### 

There's a&nbsp;[monitor page built-into Adafruit IO](https://io.adafruit.com/monitor)&nbsp;which provides a live view of incoming data and error messages. Keep this page open while you send data to your Adafruit IO devices to monitor data and errors.&nbsp;


## Featured Products

### Adafruit ESP32-S2 TFT Feather - 4MB Flash, 2MB PSRAM, STEMMA QT

[Adafruit ESP32-S2 TFT Feather - 4MB Flash, 2MB PSRAM, STEMMA QT](https://www.adafruit.com/product/5300)
We've got a new machine here at Adafruit, it can uncover your deepest desires. Don't believe me? I'll turn it on right now to prove it to you! What, you want unlimited mozzarella sticks? OK well, that's not something we can provide. But we can provide your...

Out of Stock
[Buy Now](https://www.adafruit.com/product/5300)
[Related Guides to the Product](https://learn.adafruit.com/products/5300/guides)
### Pink and Purple Woven USB A to USB C Cable - 1 meter long

[Pink and Purple Woven USB A to USB C Cable - 1 meter long](https://www.adafruit.com/product/5153)
This cable is not only super-fashionable, with a woven pink and purple Blinka-like pattern, it's also made for USB C for our modernized breakout boards, Feathers, and more.&nbsp;&nbsp;[If you want something just like it but for Micro B, we...](https://www.adafruit.com/product/4111)

Out of Stock
[Buy Now](https://www.adafruit.com/product/5153)
[Related Guides to the Product](https://learn.adafruit.com/products/5153/guides)
### Adafruit IO+ Subscription Pass – One Year

[Adafruit IO+ Subscription Pass – One Year](https://www.adafruit.com/product/3792)
The all-in-one Internet of Things service from Adafruit you know and love is now _even better_ with IO+. The 'plus' stands for MORE STUFF! More feeds, dashboards, storage, speed. Power up your [Adafruit IO](https://io.adafruit.com/) with the $99 pass for 1 year of the...

In Stock
[Buy Now](https://www.adafruit.com/product/3792)
[Related Guides to the Product](https://learn.adafruit.com/products/3792/guides)
### Adafruit IO+ Subscription Card

[Adafruit IO+ Subscription Card](https://www.adafruit.com/product/4443)
These are for freebies only! If you like to purchase one for yourself, here's the store version! https://www.adafruit.com/product/3980

Out of Stock
[Buy Now](https://www.adafruit.com/product/4443)
[Related Guides to the Product](https://learn.adafruit.com/products/4443/guides)

## Related Guides

- [Adafruit ESP32-S2 TFT Feather](https://learn.adafruit.com/adafruit-esp32-s2-tft-feather.md)
- [No-Code Battery Monitoring with WipperSnapper](https://learn.adafruit.com/no-code-battery-monitoring-with-wippersnapper.md)
- [Integrating Color Sensors with itsaSNAP and HomeKit](https://learn.adafruit.com/integrating-color-sensors-with-itsasnap-and-homekit.md)
- [Using Piezo Buzzers with WipperSnapper](https://learn.adafruit.com/using-piezo-buzzers-with-wippersnapper.md)
- [File Glider](https://learn.adafruit.com/file-glider.md)
- [Adafruit IO Basics: Digital Input](https://learn.adafruit.com/adafruit-io-basics-digital-input.md)
- [Raspberry Pi Azure IoT Hub Dashboard with CircuitPython](https://learn.adafruit.com/raspberry-pi-iot-dashboard-with-azure-and-circuitpython.md)
- [How to Add a New Sensor or Component to Adafruit IO WipperSnapper](https://learn.adafruit.com/how-to-add-a-new-component-to-adafruit-io-wippersnapper.md)
- [Adafruit IO Basics: Analog Output](https://learn.adafruit.com/adafruit-io-basics-analog-output.md)
- [All the Internet of Things - Episode Four: Adafruit IO](https://learn.adafruit.com/all-the-internet-of-things-episode-four-adafruit-io.md)
- [Blinka Says Tabletop Arcade Game](https://learn.adafruit.com/blinka-says-tabletop-arcade-game.md)
- [No-Code Rain Sensing Smart Desktop Umbrella Stand](https://learn.adafruit.com/no-code-rain-sensing-smart-desktop-umbrella-stand.md)
- [PyLeap ESP32-S3 TFT Boxing Glove Tracker w/ Adafruit IO](https://learn.adafruit.com/esp32-s2-tft-boxing-glove-tracker-w-adafruit-io.md)
- [Forecast the Weather at Home with a No-Code Barometer ](https://learn.adafruit.com/dps310-analog-barometer.md)
- [Pico W PiCowBell Case](https://learn.adafruit.com/pico-w-picowbell-case.md)
