# Joy Featherwing

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/046/961/medium800/gaming_3632_top_ORIG.jpg?1507148965)

Make a game or robotic controller with this **Joy-** ful **FeatherWing**.This FeatherWing has a 2-axis joystick and 5 momentary buttons (4 large and 1 small) so you can turn your feather board into a tiny game controller. This wing communicates with your host microcontroller over I2C so it's easy to use and doesn't take up any of your precious analog or digital pins. There is also an optional&nbsp; **interrupt pin&nbsp;** that can alert your feather when a button has been pressed or released to free up processor time for other tasks.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/964/medium800/gaming_3632_iso_ORIG.jpg?1507148998)

This FeatherWing features Adafruit **Seesaw** technology - a custom programmed little helper microcontroller that takes the two analog inputs from the joystick, and 5 button inputs, and converts it into a pretty I2C interface. This I2C interface means you don't 'lose' any GPIO or analog inputs when using this 'Wing, **and it works with any and all Feathers!** You can easily stack this with any other FeatherWing because I2C is a shared bus. If you have an I2C address conflict, or you want to connect more than one of these to a Feather, there are two address-select jumpers so you have 4 options of I2C addresses

![](https://cdn-learn.adafruit.com/assets/assets/000/046/962/medium800/gaming_3632_quarter_ORIG.jpg?1507148974)

There's an optional IRQ (interrupt) line that you can use if you'd like the Wing to let you know when a button has been pressed. Since its optional (and most Feathers are perfectly happy polling the Wing for data) we left a bunch of solder jumpers so you can select what pin has the IRQ on it. Or just leave it disconnected!

![](https://cdn-learn.adafruit.com/assets/assets/000/046/963/medium800/gaming_3632_kit_ORIG.jpg?1507148976)

We have an Adafruit Seesaw library for Arduino, Python and CircuitPython so you can get started with the Joy FeatherWing in a jiffy.

# Joy Featherwing

## Pinouts

# Power and Reset Pins
![](https://cdn-learn.adafruit.com/assets/assets/000/046/966/medium800/gaming_power.jpg?1507149106)

The power to the Joy Featherwing comes from the host Feather's 3.3V regulator, 3.3V and ground are both required and are highlighted above

The Feather's Reset pin ends up coming from the left-most circled pin and connects to the on-board reset button. This is great for resetting when you have the Wing on top

# I2C Data Pins
![](https://cdn-learn.adafruit.com/assets/assets/000/046/965/medium800/gaming_i2c.jpg?1507149059)

All data and control is done over I2C so it works with any and all Feathers! SDA and SCL are highlighted above. There are 10K pullups to 3.3V on each.

# I2C Addressing
![](https://cdn-learn.adafruit.com/assets/assets/000/046/968/medium800/gaming_addr.jpg?1507149254)

Because multiple featherwings of all kinds can be stacked, the I2C address can be changed if necessary. The Joy Featherwing's default I2C address is **0x49** , but soldering jumpers&nbsp; **A0&nbsp;** and/or&nbsp; **A1** can change this:

# Optional Interrupt Pin
![](https://cdn-learn.adafruit.com/assets/assets/000/046/969/medium800/gaming_intr.jpg?1507149284)

Soldering one of the jumpers for the optional interrupt will connect that pin of your Feather to the interrupt line on the Joy Featherwing. This will allow your Feather to know whether a button has been pressed or released without having to read each button over and over in a loop.

Each Feather has different pin names/numbers so check your mainboard for which pin you want to use then solder that jumper closed

# Joy Featherwing

## Assembly

![](https://cdn-learn.adafruit.com/assets/assets/000/054/011/medium800/adafruit_products_3632-01.jpg?1526574439)

## Prepare the header strip:

Cut the strip to length if necessary. It will be easier to solder if you insert it into a breadboard -&nbsp; **long pins down**

![adafruit_products_DSC_3980.jpg](https://cdn-learn.adafruit.com/assets/assets/000/054/012/medium640/adafruit_products_DSC_3980.jpg?1526574450)

## Add the FeatherWing:

Place the featherwing over the pins so that the short pins poke through the two rows of breakout pads

![adafruit_products_DSC_3981.jpg](https://cdn-learn.adafruit.com/assets/assets/000/054/013/medium640/adafruit_products_DSC_3981.jpg?1526574539)

![adafruit_products_DSC_3978.jpg](https://cdn-learn.adafruit.com/assets/assets/000/054/014/medium640/adafruit_products_DSC_3978.jpg?1526574585)

## And Solder!

Be sure to solder all pins for reliable electrical contact.  
  
_(For tips on soldering, be sure to check out our&nbsp;_[_Guide to Excellent Soldering_](http://learn.adafruit.com/adafruit-guide-excellent-soldering)_)._

&nbsp;

Start by soldering the first row of header

![adafruit_products_DSC_3983.jpg](https://cdn-learn.adafruit.com/assets/assets/000/054/015/medium640/adafruit_products_DSC_3983.jpg?1526574731)

![adafruit_products_DSC_3984.jpg](https://cdn-learn.adafruit.com/assets/assets/000/054/016/medium640/adafruit_products_DSC_3984.jpg?1526574745)

![adafruit_products_DSC_3987.jpg](https://cdn-learn.adafruit.com/assets/assets/000/054/017/medium640/adafruit_products_DSC_3987.jpg?1526574778)

![adafruit_products_DSC_3989.jpg](https://cdn-learn.adafruit.com/assets/assets/000/054/018/medium640/adafruit_products_DSC_3989.jpg?1526574796)

Now flip around and solder the other row completely

![adafruit_products_DSC_3990.jpg](https://cdn-learn.adafruit.com/assets/assets/000/054/019/medium640/adafruit_products_DSC_3990.jpg?1526574864)

![adafruit_products_DSC_3991.jpg](https://cdn-learn.adafruit.com/assets/assets/000/054/020/medium640/adafruit_products_DSC_3991.jpg?1526574883)

![adafruit_products_DSC_3995.jpg](https://cdn-learn.adafruit.com/assets/assets/000/054/021/medium640/adafruit_products_DSC_3995.jpg?1526574917)

You're done with the two header strips.

&nbsp;

Check your solder joints visually and continue onto the next steps

![adafruit_products_DSC_3997.jpg](https://cdn-learn.adafruit.com/assets/assets/000/054/022/medium640/adafruit_products_DSC_3997.jpg?1526574959)

OK You're done! You can now plug your FeatherWing into your Feather and get your JOY on!&nbsp;

![adafruit_products_DSC_3999.jpg](https://cdn-learn.adafruit.com/assets/assets/000/054/023/medium640/adafruit_products_DSC_3999.jpg?1526574998)

# Joy Featherwing

## Arduino Wiring & Test

# Adafruit seesaw Library

To use with the Arduino IDE, you will need to install the **Adafruit\_seesaw** library (here's[&nbsp;the Github repository](https://github.com/adafruit/Adafruit_Seesaw).)

It is available from the Arduino library manager so we recommend using that.

From the IDE open up the library manager...

![](https://cdn-learn.adafruit.com/assets/assets/000/049/781/medium800/adafruit_products_managelib.png?1514865669)

And type in **adafruit seesaw** to locate the library. Click **Install**

![](https://cdn-learn.adafruit.com/assets/assets/000/049/782/medium800/adafruit_products_seesaw.png?1514865693)

[For more details on how to install Arduino libraries, check out our detailed tutorial!](http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use)

# Running the Example Code

The library comes with a Joy Featherwing example to get you started fast. Plug the Wing into the Feather and connect the Feather to your computer with the USB cable.

Open the Arudino IDE and load **File-\>Examples-\>Adafruit\_seesaw-\>joy\_featherwing\_example**

Info: 

Click the Upload button and open the Serial Monitor at 115200 baud speed.

When you move the joystick you should see data appear in the format&nbsp; **x,y**

When you press a button, a notification should appear in the monitor.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/859/medium800/gaming_Screenshot_%2847%29.png?1506968629)

## FeatherJoyWing library!

If you'd like an all-in-one library that abstracts some of the FeatherWing for you, check out [Leonid](https://forums.adafruit.com/viewtopic.php?f=57&t=128513)'s FeatherJoyWing library&nbsp; [https://github.com/leonidlezner/FeatherJoyWing](https://github.com/leonidlezner/FeatherJoyWing)

# Joy Featherwing

## Circuit Python Wiring & Test

# Download Adafruit\_CircuitPython\_seesaw Library

To begin reading data from your Joy Featherwing, you will need to download `Adafruit_CircuitPython_seesaw` from our github repository.&nbsp;You can do that by visiting the github repo and manually downloading or, easier, just click this button to download the zip

[CircuitPython SeeSaw library](https://github.com/adafruit/Adafruit_CircuitPython_seesaw/archive/master.zip)
Extract the zipped folder. And rename the&nbsp; **folder it contains** to **Adafruit\_seesaw**.

Plug your CircuitPython device into your computer via the USB cable, and you should see the CIRCUITPY drive appear.

![](https://cdn-learn.adafruit.com/assets/assets/000/047/104/medium800/gaming_Screenshot_%2850%29.png?1507562749)

you should have the&nbsp; **lib&nbsp;** folder already on the drive. If you do not have the&nbsp; **lib** folder, or you encounter errors due to missing libraries, you can download the latest library package&nbsp;[here](https://github.com/adafruit/Adafruit_CircuitPython_Bundle/releases/tag/20170915).

&nbsp;Drag the Adafruit\_seesaw folder you just renamed to the&nbsp; **CIRCUITPY/lib** folder on your CircuitPython drive. The folder should look like this:

![](https://cdn-learn.adafruit.com/assets/assets/000/047/109/medium800/gaming_Screenshot_%2851%29.png?1507563756)

open the&nbsp; **code.py** file in the root of the&nbsp; **CIRCUITPY** drive and copy and paste the following code:

https://github.com/adafruit/Adafruit_CircuitPython_seesaw/blob/main/examples/seesaw_joy_featherwing.py

Plug your Joy Featherwing onto the top of your CircuitPython Feather board.

When you open the REPL you should see output when you press buttons or move the joystick.

# Joy Featherwing

## Downloads

# Files

- [Fritzing object in Adafruit Fritzing Library](https://github.com/adafruit/Fritzing-Library)
- [PCB files (EAGLE format)](https://github.com/adafruit/Adafruit-Joy-Featherwing-PCB/tree/master)

# Schematic

click to enlarge

![](https://cdn-learn.adafruit.com/assets/assets/000/046/855/medium800/gaming_schematic.png?1506968278)

# Dimensions

in Inches

![](https://cdn-learn.adafruit.com/assets/assets/000/046/856/medium800/gaming_dimensions.png?1506968303)


## Featured Products

### Adafruit Joy FeatherWing for all Feathers

[Adafruit Joy FeatherWing for all Feathers](https://www.adafruit.com/product/3632)
Make a game or robotic controller with this **Joy-** ful **FeatherWing**. This FeatherWing has a 2-axis joystick and 5 momentary buttons (4 large and 1 small) so you can turn your feather board into a tiny game controller. This wing communicates with your host...

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

## Related Guides

- [Adafruit seesaw](https://learn.adafruit.com/adafruit-seesaw-atsamd09-breakout.md)
- [Dotstar Featherwing in CircuitPython](https://learn.adafruit.com/dotstar-featherwing-in-circuitpython.md)
- [Pip-Boy 2040 Wrist-Mounted Prop](https://learn.adafruit.com/pip-boy-2040.md)
- [Adafruit HDC1008 Temperature and Humidity Sensor Breakout](https://learn.adafruit.com/adafruit-hdc1008-temperature-and-humidity-sensor-breakout.md)
- [Adafruit OPT4048 XYZ Color Sensor](https://learn.adafruit.com/adafruit-opt4048-xyz-color-sensor.md)
- [Arduboy Game Controller Hack](https://learn.adafruit.com/arduboy-game-controller.md)
- [Adafruit MEMENTO Camera Board](https://learn.adafruit.com/adafruit-memento-camera-board.md)
- [Adafruit Feather 32u4 with LoRa Radio Module](https://learn.adafruit.com/adafruit-feather-32u4-radio-with-lora-radio-module.md)
- [Adafruit KB2040](https://learn.adafruit.com/adafruit-kb2040.md)
- [Adafruit PiCowbell DVI Output](https://learn.adafruit.com/adafruit-picowbell-dvi-output.md)
- [Halloween Scream Box](https://learn.adafruit.com/halloween-scream-box.md)
- [Adafruit Feather M0 Basic Proto](https://learn.adafruit.com/adafruit-feather-m0-basic-proto.md)
- [Adafruit MiCS5524 CO / Alcohol / VOC Gas Sensor Breakout](https://learn.adafruit.com/adafruit-mics5524-gas-sensor-breakout.md)
- [Snake Game on Metro RP2350](https://learn.adafruit.com/snake-game-on-metro-rp2350.md)
- [Adafruit 3D Printed Chess Set](https://learn.adafruit.com/adafruit-3d-printed-chess-set.md)
