# JOY Controller for Adafruit Feather

## Overview

## A Gamepad with Personality

What happens when you&nbsp;mix&nbsp;[Kawaii](https://en.wikipedia.org/wiki/Kawaii)&nbsp;with a&nbsp;game controller? JOY! Say hello to our new [_Circuit Playground_](https://www.youtube.com/playlist?list=PLjF7R1fz_OOXWHQhEVEI5Jqf18TQRr5Hu) character, JOY – the game controller.

An LCD&nbsp;screen is hidden behind JOY's facial features that display pupils in her eyes&nbsp;and teeth in her mouth. Joy's "eye" move and rotate with the position of the 2-axis analog joystick. JOY also randomly blink her eyes.

https://www.youtube.com/watch?v=2BOGQfJ7i1M

## USB HID Controller

JOY&nbsp;operates as a USB controller when plugged into a computer. The joystick is converted from 2-axis analog to a conventional D-pad (up, down, left, right). The action buttons are mapped to keyboards&nbsp;letters (such as W, A, S, D) but can be mapped to any characters, function keys and modifiers.

JOY doesn't _have to be_ a game controller, she can control any number of software or media such as youtube, photoshop, premiere, Ableton live, etc anything that a USB keyboard can do.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/779/medium800/3d_printing_hero-1.jpg?1506705095)

## Building Joy

At any skill level, soldering wires to breakout boards and 3D printing&nbsp;take up the majority of the build.&nbsp;I estimate the&nbsp;project build to about 2-3hrs, suggest for a weekend.&nbsp;So if you're a beginner or novice, building this project entails soldering, wiring, modifying and uploading code.&nbsp;

I recommend walking through the&nbsp;guide before committing and buying&nbsp;all of the parts.&nbsp;As a thoroughly documented tutorial, some "micro steps" and terminology are assumed.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/957/medium800thumb/3d_printing_joy-eye-close.jpg?1507077386)

## Prerequisite Guides

If your new to electronics and the&nbsp;_Adafruit Feather M0 Express_, I&nbsp;suggest you walk through the following guides to get the basics. The Adafruit Feather M0 Express&nbsp;guide will walk you through setting it up with CircuitPython.

- [Collin's Lab –&nbsp;Soldering](../../../collins-lab-soldering/learn-more?view=all)
- [Adafruit Feather M0 Express](../../../adafruit-feather-m0-express-designed-for-circuit-python-circuitpython/uf2-bootloader)
- [Adafruit 1.44" Color TFT with Micro SD Socket](../../../../adafruit-1-44-color-tft-with-micro-sd-socket)

![](https://cdn-learn.adafruit.com/assets/assets/000/046/773/medium800/3d_printing_joy-hero-face-fullres.jpg?1506692020)

## Parts & Components

You'll need just a couple a parts to build this project.&nbsp;You have the option to choose from two Adafruit Feather&nbsp;M0 boards. You also can choose different batteries (capacities).

![](https://cdn-learn.adafruit.com/assets/assets/000/046/624/medium800/3d_printing_parts.jpg?1505751012)

### Part: Feather M0 Express
quantity: 1
Micro-controller
[Feather M0 Express](https://adafruit.com/products/3403)

### Part: Soft Buttons
quantity: 1
8mm buttons
[Soft Buttons](https://adafruit.com/products/3101)

### Part: Thumb Joystick
quantity: 1
Breakout with Thumb Joystick
[Thumb Joystick](https://adafruit.com/products/512)

### Part: 1.44 TFT Display
quantity: 1
Color screen
[1.44 TFT Display](https://adafruit.com/products/2088)

### Part: Slide Switch
quantity: 1
on/off switch
[Slide Switch](https://adafruit.com/products/805)

### Part: 500mAh Lipo
quantity: 1
Battery
[500mAh Lipo](https://adafruit.com/products/1578)

## Hardware Machine Screws

The electronic components are secured to the 3D printed enclosure using metric machine screws. I used Phillips flat head style screws that are ~5mm in length. These low-profile screws can be purchased from your local hardware store or online retailers like [Albany County Fasteners](https://www.albanycountyfasteners.com/Phillips-Flat-Head-Machine-Screw-Metric-s/800.htm)&nbsp;or [McMasterCar](https://www.mcmaster.com/#standard-flat-head-screws/=19lemdl).

&nbsp;

- 10qt –&nbsp; **M2.5 x 0.45 x 5mm**
- 4qt –&nbsp; **M3 x 0.5 x 5mm**

![3d_printing_hardware-screws.jpg](https://cdn-learn.adafruit.com/assets/assets/000/046/775/medium640/3d_printing_hardware-screws.jpg?1511800000)

## Tools & Supplies

Hardware, cutters, solder, wires, that sorta thing.

### Part: M2.5 Machine Screws
quantity: 10
Phillips Flat Head Machine Screw A2 SS M2.5 x .45 x 5MM
[M2.5 Machine Screws](https://www.albanycountyfasteners.com/2-5-MM-x-45-Phillips-Flat-Head-Machine-Screw-p/1011-1002.htm)

### Part: M3 Machine Screws
quantity: 4
Phillips Flat Head Machine Screw A2 SS - M3 x .5 x 5MM
[M3 Machine Screws](https://www.albanycountyfasteners.com/3-MM-x-5-Phillips-Flat-Head-Machine-Screw-p/1011-1006.htm)

### Part: 30AWG Wire
quantity: 1
Silicone Cover Stranded-Core Wire - 30AWG in Various Colors
[30AWG Wire](https://www.adafruit.com/product/2051)

### Part: Solder Wire
quantity: 1
Solder Spool - 1/4 lb SAC305 RoHS lead-free / 0.031" rosin-core - 0.25 lb / 100 g
[Solder Wire](https://www.adafruit.com/product/734)

### Part: Heat Shrink Tubing
quantity: 1
Multi-Colored Heat Shrink Pack - 3/32" + 1/8" + 3/16" Diameters
[Heat Shrink Tubing](https://www.adafruit.com/product/1649)

### Part: Mounting Putty Tack
quantity: 1
Loctite Fun-Tak Mounting Putty 2-Ounce
[Mounting Putty Tack](https://www.amazon.com/dp/B001F57ZPW/)

## Cool Tools!

These things really do help make building the project smoothly. You don't need them all of them, but I recommend them.

### Part: Ultimaker 3
quantity: 1
3D Printer
[Ultimaker 3](https://www.adafruit.com/product/3300)

### Part: Wire Strippers
quantity: 1
Hakko Professsional Quality 20-30 AWG Wire Strippers - CSP-30-1
[Wire Strippers](https://www.adafruit.com/product/527)

### Part: Wire Cutters
quantity: 1
Flush diagonal cutters - CHP170
[Wire Cutters](https://www.adafruit.com/product/152)

### Part: Soldering Iron
quantity: 1
Adjustable 30W 110V soldering iron - XY-258 110V
[Soldering Iron](https://www.adafruit.com/product/180)

### Part: Panavise
quantity: 1
Panavise Jr. - PV-201
[Panavise](https://www.adafruit.com/product/151)

### Part: Helping Third Hands
quantity: 1
Helping Third Hand Magnifier W/Magnifying Glass Tool - MZ101
[Helping Third Hands](https://www.adafruit.com/product/291)

![](https://cdn-learn.adafruit.com/assets/assets/000/046/780/medium800/3d_printing_hero-3.jpg?1506705137)

- [Next Page](https://learn.adafruit.com/joy-controller-feather/3d-printing.md)

## Featured Products

### Adafruit Feather M0 Express

[Adafruit Feather M0 Express](https://www.adafruit.com/product/3403)
At the Feather M0's heart is an ATSAMD21G18 ARM Cortex M0+ processor, clocked at 48 MHz and at 3.3V logic, the same one used in the new&nbsp;[Arduino Zero](https://www.adafruit.com/products/2843). This chip has a whopping 256K of FLASH (8x more than the Atmega328 or 32u4) and...

In Stock
[Buy Now](https://www.adafruit.com/product/3403)
[Related Guides to the Product](https://learn.adafruit.com/products/3403/guides)
### Adafruit 1.44" Color TFT LCD Display with MicroSD Card breakout

[Adafruit 1.44" Color TFT LCD Display with MicroSD Card breakout](https://www.adafruit.com/product/2088)
This lovely little display breakout is the best way to add a small, colorful and bright display to any project. Since the display uses 4-wire SPI to communicate and has its own pixel-addressable frame buffer, it can be used with every kind of microcontroller. Even a very small one with low...

In Stock
[Buy Now](https://www.adafruit.com/product/2088)
[Related Guides to the Product](https://learn.adafruit.com/products/2088/guides)
### Soft Tactile Button (8mm) x 10

[Soft Tactile Button (8mm) x 10](https://www.adafruit.com/product/3101)
Put your project in stealth mode with these silent **Soft Tactile Switch Buttons**. **&nbsp;**

**T** actile switches are standard input "buttons" on electronic projects. These work best in a PCB but <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/3101)
[Related Guides to the Product](https://learn.adafruit.com/products/3101/guides)
### Analog 2-axis Thumb Joystick with Select Button + Breakout Board

[Analog 2-axis Thumb Joystick with Select Button + Breakout Board](https://www.adafruit.com/product/512)
This mini-kit makes it easy to mount a PSP/Xbox-like thumb joystick to your project. The thumbstick is an analog joystick - more accurate and sensitive than just 'directional' joysticks - with a 'press in to select' button. Since it's analog, you'll need two analog...

In Stock
[Buy Now](https://www.adafruit.com/product/512)
[Related Guides to the Product](https://learn.adafruit.com/products/512/guides)
### Breadboard-friendly SPDT Slide Switch

[Breadboard-friendly SPDT Slide Switch](https://www.adafruit.com/product/805)
These nice switches are perfect for use with breadboard and perfboard projects. They have 0.1" spacing and snap in nicely into a solderless breadboard. They're easy to switch no matter what size fingers you have, but not so easy that they'll get flipped by accident. Work great as...

In Stock
[Buy Now](https://www.adafruit.com/product/805)
[Related Guides to the Product](https://learn.adafruit.com/products/805/guides)
### Lithium Ion Polymer Battery - 3.7v 500mAh

[Lithium Ion Polymer Battery - 3.7v 500mAh](https://www.adafruit.com/product/1578)
Lithium-ion polymer (also known as 'lipo' or 'lipoly') batteries are thin, light, and powerful. The output ranges from 4.2V when completely charged to 3.7V. This battery has a capacity of 500mAh for a total of about 1.9 Wh. If you need a larger (or smaller!) battery, <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/1578)
[Related Guides to the Product](https://learn.adafruit.com/products/1578/guides)
### Ultimaker 3 - 3D Printer

[Ultimaker 3 - 3D Printer](https://www.adafruit.com/product/3300)
The **Ultimaker 3** &nbsp;is one of our favorite 3D printers on the market. It's a well-built open-source compact machine with an excellent UX.&nbsp;Every inch of the Ultimaker 3&nbsp;is designed to create the most effortless and reliable 3D printing experience ever!&nbsp;<a...></a...>

No Longer Stocked
[Buy Now](https://www.adafruit.com/product/3300)
[Related Guides to the Product](https://learn.adafruit.com/products/3300/guides)
### Silicone Cover Stranded-Core Wire - 30AWG in Various Colors

[Silicone Cover Stranded-Core Wire - 30AWG in Various Colors](https://www.adafruit.com/product/2051)
Silicone-sheathing wire is super-flexible and soft, and its also strong! Able to handle up to 200°C and up to 600V, it will do when PVC covered wire wimps out. We like this wire for being extremely supple and flexible, so it is great for wearables or projects where the wire-harness has to...

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

## Related Guides

- [Adafruit 1.44" Color TFT with Micro SD Socket](https://learn.adafruit.com/adafruit-1-44-color-tft-with-micro-sd-socket.md)
- [Adafruit Feather M0 Express](https://learn.adafruit.com/adafruit-feather-m0-express-designed-for-circuit-python-circuitpython.md)
- [CircuitPython Basics: Analog Inputs & Outputs](https://learn.adafruit.com/circuitpython-basics-analog-inputs-and-outputs.md)
- [Cupcade: the Raspberry Pi Micro Arcade Cabinet](https://learn.adafruit.com/cupcade-raspberry-pi-micro-mini-arcade-game-cabinet.md)
- [¡Bienvenido a CircuitPython!](https://learn.adafruit.com/bienvenido-a-circuitpython-2.md)
- [Using Servos With CircuitPython and Arduino](https://learn.adafruit.com/using-servos-with-circuitpython.md)
- [Using DS18B20 Temperature Sensor with CircuitPython](https://learn.adafruit.com/using-ds18b20-temperature-sensor-with-circuitpython.md)
- [Pro Trinket as a USB HID Mouse](https://learn.adafruit.com/pro-trinket-usb-hid-mouse.md)
- [CPU Temperature Logging with CircuitPython](https://learn.adafruit.com/cpu-temperature-logging-with-circuit-python.md)
- [NeoTrellis Game](https://learn.adafruit.com/neotrellis-box-game.md)
- [CircuitPython Hardware: Charlieplex LED Matrix](https://learn.adafruit.com/micropython-hardware-charlieplex-led-matrix.md)
- [Using LoraWAN and The Things Network with CircuitPython](https://learn.adafruit.com/using-lorawan-and-the-things-network-with-circuitpython.md)
- [Installing CircuitPython on SAMD21 Boards](https://learn.adafruit.com/installing-circuitpython-on-samd21-boards.md)
- [Purple People Eater](https://learn.adafruit.com/purple-people-eater.md)
- [CircuitPython Painter](https://learn.adafruit.com/circuitpython-painter.md)
- [Extending CircuitPython: An Introduction](https://learn.adafruit.com/extending-circuitpython.md)
- [Adafruit BMP388 and BMP390 - Precision Barometric Pressure and Altimeter](https://learn.adafruit.com/adafruit-bmp388-bmp390-bmp3xx.md)
