# Arcade Synth Controller

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/108/383/medium800/gaming_arcade_controller2.jpg?1643222795)

https://youtu.be/uz89GpdrFzg

Build your own arpeggiator synthesizer/MIDI controller in the form of a fight stick/piano keyboard mashup! It's perfect for chiptunes. You'll use LED Arcade 1x4 boards, MIDI FeatherWing, Feather M4 Express, and lots of shiny buttons to build this retro-style synth.

Play root notes with the light-up arcade buttons, adjust tempo and octave with the joystick, and use the front-panel function buttons to start/stop the arps, adjust arp range, and to select different patterns.

Output square wave synth sounds over stereo headphone jack, and/or send MIDI over USB or classic DIN-5 MIDI cable to your software and hardware synthesizers.

This project is inspired directly by the amazing [Pianocade](https://pianocade.com/).

On-board synthesis using Audio Library:

https://youtu.be/ZnQs0-DC_8A?t=1830

Arcade Synth Controller controlling Game Boy via MIDI:

https://youtu.be/ZnQs0-DC_8A?t=1264

## Parts
### Adafruit Feather M4 Express - Featuring ATSAMD51

[Adafruit Feather M4 Express - Featuring ATSAMD51](https://www.adafruit.com/product/3857)
It's what you've been waiting for, the Feather M4 Express featuring ATSAMD51. This Feather is fast like a swift, smart like an owl, strong like a ox-bird (it's half ox, half bird, OK?) This feather is powered by our new favorite chip, the **ATSAMD51J19** -&nbsp; with...

In Stock
[Buy Now](https://www.adafruit.com/product/3857)
[Related Guides to the Product](https://learn.adafruit.com/products/3857/guides)
![Angled shot of a Adafruit Feather M4 Express. ](https://cdn-shop.adafruit.com/640x480/3857-10.jpg)

### Adafruit LED Arcade Button 1x4 - STEMMA QT I2C Breakout

[Adafruit LED Arcade Button 1x4 - STEMMA QT I2C Breakout](https://www.adafruit.com/product/5296)
The only thing better than a glowy arcade button is, perhaps, FOUR glowing arcade buttons - and that's what the&nbsp; **Adafruit LED Arcade Button 1x4 QT I2C Breakout** &nbsp;will let you do! This long 3" x 0.8" PCB has 8 x <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/5296)
[Related Guides to the Product](https://learn.adafruit.com/products/5296/guides)
![Four 30mm arcade buttons in order of color: blue, green, clear, and red. A white hand with a white painted manicure presses each of the arcade buttons.](https://cdn-shop.adafruit.com/product-videos/640x480/5296-07.jpg)

### Part: Adafruit LED Arcade Button 1x4
quantity: 4
STEMMA QT I2C Breakout
[Adafruit LED Arcade Button 1x4](https://www.adafruit.com/product/5296)

### Adafruit MIDI FeatherWing Kit

[Adafruit MIDI FeatherWing Kit](https://www.adafruit.com/product/4740)
Turn your Feather into a song-bird with this musically-enabled FeatherWing that adds MIDI input and output jacks to just about any Feather. You get both input and output DIN-5 MIDI jacks, a 3V optically isolator so you can interface with MIDI on 3.3V logic/power microcontrollers, and two...

In Stock
[Buy Now](https://www.adafruit.com/product/4740)
[Related Guides to the Product](https://learn.adafruit.com/products/4740/guides)
![Angled shot of a Adafruit MIDI FeatherWing Kit. ](https://cdn-shop.adafruit.com/640x480/4740-04.jpg)

### Small Arcade Joystick

[Small Arcade Joystick](https://www.adafruit.com/product/480)
This snappy 8-way joystick beckons you to play with it! It is rugged, and not too large, reminiscent of a Pac Man arcade cabinet. Unlike the potentiometer-based 2-axis and mini thumbsticks, this joystick uses 4 snap microswitches so it's good if you want a directional control but not the...

In Stock
[Buy Now](https://www.adafruit.com/product/480)
[Related Guides to the Product](https://learn.adafruit.com/products/480/guides)
![Small Arcade Joystick with red ball](https://cdn-shop.adafruit.com/640x480/480-00.jpg)

### Part: Arcade Button with LED
quantity: 13
30mm Translucent Red
[Arcade Button with LED](https://www.adafruit.com/product/3489)

### Part: 30mm Translucent Clear
quantity: 3
Arcade Button with LED
[30mm Translucent Clear](https://www.adafruit.com/product/3491)

### FeatherWing Tripler Mini Kit - Prototyping Add-on For Feathers

[FeatherWing Tripler Mini Kit - Prototyping Add-on For Feathers](https://www.adafruit.com/product/3417)
This is the **FeatherWing Tripler** - a prototyping add-on and more for all Feather boards. This is similar to our [FeatherWing Proto](https://www.adafruit.com/products/2884) except there are three! The magic of the Tripler comes when you want to connect your Feather to...

In Stock
[Buy Now](https://www.adafruit.com/product/3417)
[Related Guides to the Product](https://learn.adafruit.com/products/3417/guides)
![Triple prototyping feather wing PCB with socket headers installed](https://cdn-shop.adafruit.com/640x480/3417-05.jpg)

### Part:  FeatherWing Proto - Prototyping Add-on For All Feather Boards FeatherWing Proto 
quantity: 1
Prototyping Add-on For All Feather Boards
[ FeatherWing Proto - Prototyping Add-on For All Feather Boards FeatherWing Proto ](https://www.adafruit.com/product/2884)

### Part: Breadboard-Friendly 3.5mm Stereo Headphone Jack
quantity: 1
TRS
[Breadboard-Friendly 3.5mm Stereo Headphone Jack](https://www.adafruit.com/product/1699)

### Part: STEMMA QT / Qwiic JST SH 4-pin Cable
quantity: 4
100mm Long
[STEMMA QT / Qwiic JST SH 4-pin Cable](https://www.adafruit.com/product/4210)

### Part: STEMMA QT / Qwiic JST SH 4-Pin Cable
quantity: 1
200mm Long
[STEMMA QT / Qwiic JST SH 4-Pin Cable](https://www.adafruit.com/product/4401)

### Part: SparkFun STEMMA QT / Qwiic Breadboard Breakout Adapter
quantity: 1
I2C - JST-SH
[SparkFun STEMMA QT / Qwiic Breadboard Breakout Adapter](https://www.adafruit.com/product/4527)

### 16mm Illuminated Pushbutton - Green Latching On/Off Switch

[16mm Illuminated Pushbutton - Green Latching On/Off Switch](https://www.adafruit.com/product/1443)
A switch is a switch, and an LED is an LED, but this LED illuminated button is a lovely combination of both! It's a medium sized button, large enough to press easily but not too big that it gets in the way of your project panel. It has a built in LED that can be controlled separately from...

Out of Stock
[Buy Now](https://www.adafruit.com/product/1443)
[Related Guides to the Product](https://learn.adafruit.com/products/1443/guides)
![Angled shot of a green round 16mm illuminated pushbutton. ](https://cdn-shop.adafruit.com/640x480/1443-00.jpg)

### 16mm Illuminated Pushbutton - Yellow Momentary

[16mm Illuminated Pushbutton - Yellow Momentary](https://www.adafruit.com/product/1441)
A button is a button, and an LED is a LED, but this LED illuminated button is a lovely combination of both! It's a medium sized button, large enough to press easily but not too big that it gets in the way of your project panel. It has a built in LED that can be controlled separately from...

In Stock
[Buy Now](https://www.adafruit.com/product/1441)
[Related Guides to the Product](https://learn.adafruit.com/products/1441/guides)
![Angled shot of a yellow 16mm illuminated pushbutton. ](https://cdn-shop.adafruit.com/640x480/1441-00.jpg)

### Part: Arcade Button Quick-Connect Wire Pairs
quantity: 4
0.11" (10 pack)
[Arcade Button Quick-Connect Wire Pairs](https://www.adafruit.com/product/1152)

### Part: 10uF 50V Electrolytic Capacitors
quantity: 1
Pack of 10
[10uF 50V Electrolytic Capacitors](https://www.adafruit.com/product/2195)

### Part: Through-Hole Resistors 1.0K Ω
quantity: 1
5% 1/4W - Pack of 25
[Through-Hole Resistors 1.0K Ω](https://www.adafruit.com/product/4294)

### Part: Little Rubber Bumper Feet
quantity: 2
Pack of 4
[Little Rubber Bumper Feet](https://www.adafruit.com/product/550)

## Optional

You can use two or three sets of aluminum bumper feet for the base if you're feeling highly extra!

## Enclosure Materials

To build the laser cut enclosure you'll need 3mm thick (~1/8") acrylic stock in gray, black, and white:

- 2x sheets of [matte gray](https://www.delviesplastics.com/p/Storm_Grey_ColorHues.html)[1/8" x](https://www.delviesplastics.com/PROD.html?Product_Code=7328_Translucent_White)[12"x24"](https://www.delviesplastics.com/p/Storm_Grey_ColorHues.html)
- 1x sheet of [frosted black](https://www.delviesplastics.com/PROD.html?Product_Code=Frosted-2025-Black-Sheet)[1/8" x](https://www.delviesplastics.com/PROD.html?Product_Code=7328_Translucent_White)[12"x24"](https://www.delviesplastics.com/PROD.html?Product_Code=Frosted-2025-Black-Sheet)
- 1x sheet of [translucent white 1/8" x 12"x24"](https://www.delviesplastics.com/PROD.html?Product_Code=7328_Translucent_White)

You'll use M4 screws and nuts to secure the case, as well as the joystick:

- [M4 x 0.7mm nuts](https://www.mcmaster.com/90592A011)
- [M4 x 80mm socket head screws](https://www.mcmaster.com/91290A192)
- [M4 x 14mm socket head screws](https://www.mcmaster.com/91292A038)

# Arcade Synth Controller

## Code the Arcade Synth

## Easy Code Upload

You can get the code onto your Feather M4 Express as easy as drag-and-drop! Simply plug in the Feather to your computer with a known good USB data cable (not power only!) and then double-click the reset button.

The board will show up on your computer as a USB drive named **FEATHERBOOT**. Download the **Arcade\_Synth\_Controller.UF2** file linked below and then drag it onto the **FEATHERBOOT** drive.

The board will automatically reset and run the code.

[Arcade_Synth_Controller.UF2](https://cdn-learn.adafruit.com/assets/assets/000/107/892/original/CURRENT.UF2?1642612709)
### Source Code Hacking

If you want to dig in deeper, you can download the source code [here](https://github.com/adafruit/Adafruit_Learning_System_Guides/tree/main/Arcade_Synth_Controller). This will require some knowledge of the Arduino IDE and how to upload code to your board.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Arcade_Synth_Controller/Arcade_Synth_Controller.ino

### MIDI

The **Arcade\_Synth\_Controller.ino** code plays notes via the Audio Library synthesizer, as well as sending out MIDI via USB and Classic DIN-5 connection. To adjust which channels are used, change the `MIDIusb.sendNoteOn` or `Off` lines here from channel 1 to whichever you need.

```cpp
void noteOn(uint8_t note) {
  waves[0]-&gt;begin( 0.9, tune_frequencies2_PGM[note], waveform);
  waves[1]-&gt;begin( 0.9, tune_frequencies2_PGM[note] * 1.01, waveform); // detune
  waves[2]-&gt;begin( 0.9, tune_frequencies2_PGM[note] * 1.005, waveform); // detune
  waves[3]-&gt;begin( 0.9, tune_frequencies2_PGM[note] * 1.025, waveform); // detune
  filterf = filterf_max;
  filter0.frequency(filterf);
  env0.noteOn();
  MIDIusb.sendNoteOn(note, 127, 1);
  MIDIclassic.sendNoteOn(note, 127, 1);
}


void noteOff(uint8_t note) {
  env0.noteOff();
  MIDIusb.sendNoteOn(note, 0, 1);
  MIDIclassic.sendNoteOn(note, 0, 1);
}

void midiPanic(){
  for( uint8_t m = 0; m &lt; 128; m++ ){
    MIDIusb.sendNoteOn(m, 0, 1) ;
    MIDIclassic.sendNoteOn(m, 0, 1) ;
    yield();  // keep usb midi from flooding
  }
}
```

### Arpeggios

The [Arpy.h class](https://github.com/todbot/mozzi_experiments/), design by awesome guy [Tod Kurt](https://twitter.com/todbot), handles the playing of arpeggio patterns based on the root note played on the keyboard.

You may want to edit the existing patterns or create your own. This is where to make those changes in the **Arpy.h** code:

```cpp
int8_t arps[arp_count][arp_len] = {
      {0, 4, 7, 12},    // major
      {0, 3, 7, 10},    // minor 7th
      {0, 3, 6, 3},     // Diminished
      {0, 5, 7, 12},    // Suspended 4th
      {0, 12, 0, -12},  // octaves
      {0, 12, 24, -12}, // octaves 2
      {0, -12, -12, 0}, // octaves 3 (bass)
      {0, 0, 0, 0},     // root
    };
```

### Synthesizer Design

The [Audio System Design Tool](https://www.pjrc.com/teensy/gui/) can be used to design your synth modules and patch connections. In the example used here, the patch is contained in the **ADT.h** file.

```cpp
AudioSynthWaveform       wave0;          //xy=502.74795150756836,82.7552137374878
AudioSynthWaveform       wave1;      //xy=504.28649139404297,117.86524295806885
AudioSynthWaveform       wave2;      //xy=503.2865982055664,153.0081024169922
AudioSynthWaveform       wave3;      //xy=502.8580284118653,188.86524295806885
AudioMixer4              mixer0;         //xy=633.7151184082031,100.00811004638672
AudioEffectEnvelope      env0;           //xy=758.612813949585,54.04482841491699
AudioFilterStateVariable filter0;        //xy=888.6010780334473,60.850419998168945
AudioMixer4              mixerA;         //xy=1010.7359161376953,171.30673599243164
AudioMixer4              mixerL;      //xy=1196.8192749023438,210.86235809326172
AudioMixer4              mixerR;     //xy=1198.2637329101562,277.8345947265625
AudioOutputAnalogStereo  audioOut;       //xy=1360.3193969726562,250.61236572265625
AudioConnection          patchCord1(wave0, 0, mixer0, 0);
AudioConnection          patchCord2(wave3, 0, mixer0, 3);
AudioConnection          patchCord3(wave2, 0, mixer0, 2);
AudioConnection          patchCord4(wave1, 0, mixer0, 1);
AudioConnection          patchCord5(mixer0, env0);
AudioConnection          patchCord6(env0, 0, filter0, 0);
AudioConnection          patchCord7(filter0, 0, mixerA, 0);
AudioConnection          patchCord8(mixerA, 0, mixerL, 0);
AudioConnection          patchCord9(mixerA, 0, mixerR, 0);
AudioConnection          patchCord10(mixerL, 0, audioOut, 0);
AudioConnection          patchCord11(mixerR, 0, audioOut, 1);
```

![](https://cdn-learn.adafruit.com/assets/assets/000/108/348/medium800/gaming_asdt.jpg?1643085983)

# Arcade Synth Controller

## Build the Arcade Synth Circuit

![](https://cdn-learn.adafruit.com/assets/assets/000/108/349/medium800/gaming_arc-7379.jpg?1643090162)

# The Circuit
## The Proto Board

The FeatherWing Proto board is great for adding on a small audio output circuit, as well as connections for the STEMMA QT ports over I2C, joystick wiring, and the reset and enable switches.

The schematic below shows these connections as they relate to the Feather board, but you'll make them on the Proto board and rely on the FeatherWing Tripler to connect those points to the Feather.

![](https://cdn-learn.adafruit.com/assets/assets/000/108/339/medium800/gaming_fritz.jpg?1643062269)

![](https://cdn-learn.adafruit.com/assets/assets/000/108/338/medium800/gaming_Pianocade02_schematic.jpg?1643061527)

## The Proto Board

Following the schematic above, as well as these photos, solder the parts in place for the:

- audio output RC circuit (resistor capacitor circuit for removing noise from the audio)
- joystick wiring (note the use of pin D6 as common joystick switch ground)
- headers for the enable and reset switches
- STEMMA QT/Qwiic connector to SDA, SCL, 3v3, and GND.

![gaming_arc-7381.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/316/medium640/gaming_arc-7381.jpg?1642987983)

![gaming_arc-7383.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/317/medium640/gaming_arc-7383.jpg?1642987992)

## The Feather Tripler

Add headers and M2.5 nylon standoffs to the Feather Tripler as shown here.

Insert the MIDI FeatherWing (with either DIN-5 or TRS plugs on it, your choice) to the Tripler, followed by the Proto FeatherWing and the Feather M4 Express.

Fasten the boards to the Tripler standoffs so they don't wiggle around when inserting cables later.

![gaming_arc-7386.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/186/medium640/gaming_arc-7386.jpg?1642987672)

![gaming_arc-7387.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/187/medium640/gaming_arc-7387.jpg?1642987679)

![gaming_arc-7388.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/188/medium640/gaming_arc-7388.jpg?1642987679)

![gaming_arc-7389.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/189/medium640/gaming_arc-7389.jpg?1642987681)

![gaming_arc-7390.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/190/medium640/gaming_arc-7390.jpg?1642987681)

![gaming_arc-7391.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/191/medium640/gaming_arc-7391.jpg?1642987688)

![](https://cdn-learn.adafruit.com/assets/assets/000/108/233/medium800/gaming_arc-7393.jpg?1642987791)

![](https://cdn-learn.adafruit.com/assets/assets/000/108/285/medium800/gaming_arc-7378.jpg?1642987915)

## LED Arcade Button STEMMA QT Boards

To use the four LED Arcade Button boards on I2C they must each have a unique address.

You will cut the traces on three of the boards to set them.

Set them to:

- **0x3A (default, don't cut any traces)**
- **0x3B -- cut trace A0**
- **0x3C -- cut trace A1**
- **0x3D -- cut traces A0 and A1**

Then, wire them to each other in order from left to right using 100mm STEMMA QT cables.

![gaming_arc-7394.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/127/medium640/gaming_arc-7394.jpg?1642987450)

![gaming_arc-7395.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/129/medium640/gaming_arc-7395.jpg?1642987478)

## Arcade Button Wiring

Plug two sets of quick connect cables into each arcade button -- one for the switch, the other pair for the LED.

The polarity doesn't matter for the switch tabs (these are the ones protruding from the gray plastic switch base), however, you must connect the **-** and **+** properly for the LED to work. These are marked both on the Arcade Button board LED ports and on the molding of the switch base.

To avoid confusion, I marked these wires in advance using heat shrink tubing. I also used heat shrink to order each set of four buttons **yellow** , **red** , **green** , **blue** , as shown here. This type of organization helps immensely with wiring things properly and later troubleshooting!

![gaming_arc-7397.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/123/medium640/gaming_arc-7397.jpg?1642987393)

![gaming_arc-7398.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/124/medium640/gaming_arc-7398.jpg?1642987399)

![gaming_arc-7399.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/125/medium640/gaming_arc-7399.jpg?1642987407)

![gaming_arc-7400.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/126/medium640/gaming_arc-7400.jpg?1642987415)

## Reset and Enable Button Wiring

I decided not to wire the LEDs of these switches, instead wiring only the switches. Polarity doesn't matter.

Remember, the yellow momentary switch will be plugged into the Feather's **Reset** pin, and the green toggle switch into **Enable**.

![gaming_arc-7402.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/121/medium640/gaming_arc-7402.jpg?1642987353)

![gaming_arc-7401.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/122/medium640/gaming_arc-7401.jpg?1642987360)

# Arcade Synth Controller

## Build the Arcade Enclosure

![](https://cdn-learn.adafruit.com/assets/assets/000/108/350/medium800/gaming_arc-7497.jpg?1643090217)

# The Enclosure
The Arcade Synth Controller enclosure is designed to be laser cut from 3mm thick acrylic. I used an [Epilog](https://www.epiloglaser.com/) Zing 16 to cut the parts.

The .svg file below can be used on a laser cutter or sent to a service provider for cutting.

[Arcade_Synth_case.svg](https://cdn-learn.adafruit.com/assets/assets/000/107/896/original/Arcade_Synth_case.svg?1642626576)
![](https://cdn-learn.adafruit.com/assets/assets/000/107/897/medium800/gaming_cuts.jpg?1642626684)

## Enclosure Parts

Cut the parts from 3mm (~1/8") acrylic as shown. Finished surface side of material is place facing upwards for cutting.

![gaming_arc-7403.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/920/medium640/gaming_arc-7403.jpg?1642985716)

![gaming_arc-7404.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/921/medium640/gaming_arc-7404.jpg?1642985723)

![gaming_arc-7405.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/922/medium640/gaming_arc-7405.jpg?1642985729)

![gaming_arc-7406.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/923/medium640/gaming_arc-7406.jpg?1642985737)

## Affix the Arcade Boards

Use M2.5 nylon standoffs, screws, and nuts to affix the Arcade Button boards to the base plate. The first board (address 0x3A) is on the left.

Note the orientation of the board so that everything else lines up later.

![gaming_arc-7407.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/070/medium640/gaming_arc-7407.jpg?1642987173)

![gaming_arc-7409.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/071/medium640/gaming_arc-7409.jpg?1642987180)

![gaming_arc-7410.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/072/medium640/gaming_arc-7410.jpg?1642987186)

![gaming_arc-7412.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/073/medium640/gaming_arc-7412.jpg?1642987194)

![](https://cdn-learn.adafruit.com/assets/assets/000/108/083/medium800/gaming_arc-7413.jpg?1642987250)

## Affix the Tripler

Use the standoffs and nuts to attache the tripler as shown. Connect the STEMMA QT cable port to the Arcade Button Boards.

![gaming_arc-7414.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/023/medium640/gaming_arc-7414.jpg?1642986886)

![gaming_arc-7415.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/024/medium640/gaming_arc-7415.jpg?1642986895)

![gaming_arc-7417.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/025/medium640/gaming_arc-7417.jpg?1642986919)

![gaming_arc-7418.jpg](https://cdn-learn.adafruit.com/assets/assets/000/108/026/medium640/gaming_arc-7418.jpg?1642986954)

![](https://cdn-learn.adafruit.com/assets/assets/000/108/048/medium800/gaming_arc-7419.jpg?1642987101)

## Rear Panel Buttons

Making sure the finish side of the back panel is facing out (so the MIDI out ports align with the holes properly) feed the reset and enable buttons into their holes, then thread on their retaining rings.

Plug the switches into their respective ports on the Feather Proto board.

Place the back panel notches into the base.

![gaming_arc-7420.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/978/medium640/gaming_arc-7420.jpg?1642986674)

![gaming_arc-7421.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/979/medium640/gaming_arc-7421.jpg?1642986680)

![gaming_arc-7422.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/980/medium640/gaming_arc-7422.jpg?1642986710)

![gaming_arc-7423.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/981/medium640/gaming_arc-7423.jpg?1642986743)

![gaming_arc-7424.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/982/medium640/gaming_arc-7424.jpg?1642986750)

![gaming_arc-7425.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/983/medium640/gaming_arc-7425.jpg?1642986757)

![](https://cdn-learn.adafruit.com/assets/assets/000/108/003/medium800/gaming_arc-7426.jpg?1642986835)

## Side Panels

Place the side panel notches into the base.

![gaming_arc-7428.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/976/medium640/gaming_arc-7428.jpg?1642986630)

![gaming_arc-7429.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/977/medium640/gaming_arc-7429.jpg?1642986637)

## Front Panel Buttons

With the finish side facing out, feed the three front panel arcade buttons into their holes as shown.

Thread on their retaining rings, then plug them into the fourth LED Arcade Button breakout board. Double-check that you've plugged in the LED cables and switch cables into their proper respective ports.

![gaming_arc-7430.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/969/medium640/gaming_arc-7430.jpg?1642986507)

![gaming_arc-7431.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/972/medium640/gaming_arc-7431.jpg?1642986565)

![gaming_arc-7432.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/973/medium640/gaming_arc-7432.jpg?1642986576)

![gaming_arc-7433.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/974/medium640/gaming_arc-7433.jpg?1642986583)

![](https://cdn-learn.adafruit.com/assets/assets/000/107/975/medium800/gaming_arc-7434.jpg?1642986598)

## Top Layers Buttons

Sandwich the top panels together (NOTE: only the lower of the two has finger joint notches), then feed in the buttons, minding their **yellow** , **red** , **green** , **blue** ordering.

Thread on their retaining rings.

![gaming_arc-7436.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/940/medium640/gaming_arc-7436.jpg?1642986376)

![gaming_arc-7439.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/941/medium640/gaming_arc-7439.jpg?1642986391)

![gaming_arc-7440.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/942/medium640/gaming_arc-7440.jpg?1642986407)

![gaming_arc-7442.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/943/medium640/gaming_arc-7442.jpg?1642986418)

![](https://cdn-learn.adafruit.com/assets/assets/000/107/946/medium800/gaming_arc-7443.jpg?1642986446)

## Joystick Attach

Unscrews the joystick topper and set it aside. It looks like an everlasting gobstopper, but don't eat it. It will last forever. And taste pretty bland.

With the interface pins facing inward toward the center of the controller (it won't fit otherwise!) feed the joystick stem up through the top panels, then screw them into place with the four M4 x 40mm screws and nuts.

Plug in the joystick wiring harness.

![gaming_arc-7445.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/936/medium640/gaming_arc-7445.jpg?1642986286)

![gaming_arc-7447.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/937/medium640/gaming_arc-7447.jpg?1642986305)

![gaming_arc-7450.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/938/medium640/gaming_arc-7450.jpg?1642986323)

![gaming_arc-7455.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/939/medium640/gaming_arc-7455.jpg?1642986343)

## Plug in the Buttons

&nbsp;

It's a plugging party!

Plug all of the remaining arcade buttons, following left-to-right order, into the LED Arcade Button breakout boards.

![gaming_arc-7457.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/932/medium640/gaming_arc-7457.jpg?1642986191)

![gaming_arc-7459.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/933/medium640/gaming_arc-7459.jpg?1642986206)

![gaming_arc-7461.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/934/medium640/gaming_arc-7461.jpg?1642986227)

![gaming_arc-7463.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/935/medium640/gaming_arc-7463.jpg?1642986250)

Primary: 

![](https://cdn-learn.adafruit.com/assets/assets/000/108/345/medium800/gaming_arc-7466.jpg?1643068849)

## Close the Case

Carefully close the case top, aligning the finger joint tabs and slots.

Fasten the six M4 x 80mm screws through the holes, using nuts to secure them at the bottom.

![gaming_arc-7468.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/928/medium640/gaming_arc-7468.jpg?1642986101)

![gaming_arc-7472.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/929/medium640/gaming_arc-7472.jpg?1642986115)

![gaming_arc-7480.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/930/medium640/gaming_arc-7480.jpg?1642986133)

![gaming_arc-7481.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/931/medium640/gaming_arc-7481.jpg?1642986143)

## Joystick Washer and Ball

Replace the joystick's disk and ball topper.

![gaming_arc-7482.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/926/medium640/gaming_arc-7482.jpg?1642986025)

![gaming_arc-7483.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/927/medium640/gaming_arc-7483.jpg?1642986033)

## Feet

You can use large rubber bumper feet to prevent the exposed screws from marring your desk, or get extra fancy and use four or even six M4 threaded keyboard feet as shown here.

![gaming_arc-7488.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/924/medium640/gaming_arc-7488.jpg?1642985989)

![gaming_arc-7489.jpg](https://cdn-learn.adafruit.com/assets/assets/000/107/925/medium640/gaming_arc-7489.jpg?1642985995)

# Arcade Synth Controller

## Play the Arcade Synth Controller

![](https://cdn-learn.adafruit.com/assets/assets/000/108/344/medium800/gaming_arc-7495.jpg?1643068815)

Plug in a micro USB cable to the Feather, and plug the other end into your computer (particularly for USB MIDI usage) or a USB power supply.

For audio out, plug in a stereo 3.5mm TRS cable into the jack on the Protoboard -- plug the other end into your amplifier, powered speakers, or audio interface.

Optionally, if you're sending out classic MIDI signals, plug a MIDI cable into the MIDI out, which is the MIDI port closest to the reset button.

Power on the Arcade Synth Controller by pressing the green switch after a moment the buttons will light up and you're ready to play.

https://youtu.be/RWvWKp_G25Y

Start the arpeggiator by pressing the white button on the left on the front of the controller -- this button is unlit when the arps are stopped and lit up when they're playing.

You will hear the synth playing a C major arpeggio, as the first keyboard button on the controller is lit by default. Sucess!

Here are the other controls to try:

- pick a different root note by pressing any red keyboard button. The root note will light up brighter than the others
- speed up or slow down the tempo with the joystick right/left
- increase or decrease the octave offset with the joystick up/down
- expand the arpeggio range from one, two, or three octaves of the pattern with the white middle button on the front panel
- cycle among eight different built-in arp patterns with the white right button on the front panel


## Featured Products

### Adafruit Feather M4 Express - Featuring ATSAMD51

[Adafruit Feather M4 Express - Featuring ATSAMD51](https://www.adafruit.com/product/3857)
It's what you've been waiting for, the Feather M4 Express featuring ATSAMD51. This Feather is fast like a swift, smart like an owl, strong like a ox-bird (it's half ox, half bird, OK?) This feather is powered by our new favorite chip, the **ATSAMD51J19** -&nbsp; with...

In Stock
[Buy Now](https://www.adafruit.com/product/3857)
[Related Guides to the Product](https://learn.adafruit.com/products/3857/guides)
### Adafruit LED Arcade Button 1x4 - STEMMA QT I2C Breakout

[Adafruit LED Arcade Button 1x4 - STEMMA QT I2C Breakout](https://www.adafruit.com/product/5296)
The only thing better than a glowy arcade button is, perhaps, FOUR glowing arcade buttons - and that's what the&nbsp; **Adafruit LED Arcade Button 1x4 QT I2C Breakout** &nbsp;will let you do! This long 3" x 0.8" PCB has 8 x <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/5296)
[Related Guides to the Product](https://learn.adafruit.com/products/5296/guides)
### Adafruit MIDI FeatherWing Kit

[Adafruit MIDI FeatherWing Kit](https://www.adafruit.com/product/4740)
Turn your Feather into a song-bird with this musically-enabled FeatherWing that adds MIDI input and output jacks to just about any Feather. You get both input and output DIN-5 MIDI jacks, a 3V optically isolator so you can interface with MIDI on 3.3V logic/power microcontrollers, and two...

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

[Small Arcade Joystick](https://www.adafruit.com/product/480)
This snappy 8-way joystick beckons you to play with it! It is rugged, and not too large, reminiscent of a Pac Man arcade cabinet. Unlike the potentiometer-based 2-axis and mini thumbsticks, this joystick uses 4 snap microswitches so it's good if you want a directional control but not the...

In Stock
[Buy Now](https://www.adafruit.com/product/480)
[Related Guides to the Product](https://learn.adafruit.com/products/480/guides)
### Arcade Button with LED - 30mm Translucent Red

[Arcade Button with LED - 30mm Translucent Red](https://www.adafruit.com/product/3489)
A button is a button, and a switch is a switch, but these translucent arcade buttons are in a class of their own. Particularly because they have&nbsp; **LEDs built right in!** &nbsp;That's right, you'll be button-mashing amidst a wash of beautiful light with these lil'...

In Stock
[Buy Now](https://www.adafruit.com/product/3489)
[Related Guides to the Product](https://learn.adafruit.com/products/3489/guides)
### Arcade Button with LED - 30mm Translucent Clear

[Arcade Button with LED - 30mm Translucent Clear](https://www.adafruit.com/product/3491)
A button is a button, and a switch is a switch, but these translucent arcade buttons are in a class of their own. Particularly because they have&nbsp; **LEDs built right in!** &nbsp;That's right, you'll be button-mashing amidst a wash of beautiful light with these lil'...

In Stock
[Buy Now](https://www.adafruit.com/product/3491)
[Related Guides to the Product](https://learn.adafruit.com/products/3491/guides)
### FeatherWing Tripler Mini Kit - Prototyping Add-on For Feathers

[FeatherWing Tripler Mini Kit - Prototyping Add-on For Feathers](https://www.adafruit.com/product/3417)
This is the **FeatherWing Tripler** - a prototyping add-on and more for all Feather boards. This is similar to our [FeatherWing Proto](https://www.adafruit.com/products/2884) except there are three! The magic of the Tripler comes when you want to connect your Feather to...

In Stock
[Buy Now](https://www.adafruit.com/product/3417)
[Related Guides to the Product](https://learn.adafruit.com/products/3417/guides)
### FeatherWing Proto - Prototyping Add-on For All Feather Boards

[FeatherWing Proto - Prototyping Add-on For All Feather Boards](https://www.adafruit.com/product/2884)
A Feather board without ambition is a Feather board without FeatherWings!

This is the **FeatherWing Proto** - a prototyping add-on for all Feather boards. Using our [Feather Stacking Headers](https://www.adafruit.com/products/2830) or <a...></a...>

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

## Related Guides

- [Adafruit Feather M4 Express](https://learn.adafruit.com/adafruit-feather-m4-express-atsamd51.md)
- [Adafruit MIDI FeatherWing](https://learn.adafruit.com/adafruit-midi-featherwing.md)
- [Adafruit LED Arcade Button 1x4 STEMMA QT](https://learn.adafruit.com/adafruit-led-arcade-button-qt.md)
- [Holiday Icicle Lights with Flair](https://learn.adafruit.com/holiday-icicle-lights-with-flair.md)
- [Simple Vertical Wordclock](https://learn.adafruit.com/vertical-wordclock.md)
- [RP2040 RunCPM Emulator with USB Keyboard & HDMI screen](https://learn.adafruit.com/rp2040-runcpm-emulator-with-usb-keyboard-hdmi-screen.md)
- [Feather RP2040 DVI Video Synth](https://learn.adafruit.com/feather-rp2040-dvi-video-synth.md)
- [CircuitPython with Jupyter Notebooks](https://learn.adafruit.com/circuitpython-with-jupyter-notebooks.md)
- [Coffee Detonator: The TNT Plunger Grinder](https://learn.adafruit.com/coffee-detonator.md)
- [Feather Waveform Generator in CircuitPython](https://learn.adafruit.com/waveform-generator.md)
- [Touch Deck: DIY Customizable TFT Control Pad](https://learn.adafruit.com/touch-deck-diy-tft-customized-control-pad.md)
- [Talking Computer from Star Trek](https://learn.adafruit.com/talking-computer-from-star-trek.md)
- [Prop-Maker Keyblade](https://learn.adafruit.com/propmaker-keyblade.md)
- [New Years Eve Ball Drop](https://learn.adafruit.com/new-years-eve-ball-drop.md)
- [Edit CircuitPython Code on iOS with Runestone](https://learn.adafruit.com/editing-circuitpython-on-ios-with-runestone.md)
- [CircuitPython Motorized Camera Slider](https://learn.adafruit.com/circuitpython-motorized-camera-slider.md)
- [Feather + Raspberry Pi Weather Monitoring Network with LoRa or LoRaWAN](https://learn.adafruit.com/multi-device-lora-temperature-network.md)
