# Soundbox RP2040

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/130/618/medium800/led_pixels_hero-pink.jpg?1718032116)

Build a fun soundbox project using CircuitPython and Adafruit PropMaker Feather RP2040!

This massive arcade button plays different sounds each time it's pressed. Embedded inside the arcade button is a NeoPixel strip that lights up when pressed.

Each audio file features a color in the file name that corresponds with the NeoPixels, so you can choose a different color for each sound!

## What's Shaking?

Shaking the device will trigger a different set of audio files with an accompanying NeoPixel rainbow!

Thanks to the PropMaker Feather built-in accelerometer, it can easily detect when it's being shaken.

![led_pixels_shake-loop.gif](https://cdn-learn.adafruit.com/assets/assets/000/130/617/medium640thumb/led_pixels_shake-loop.jpg?1718030923)

## 3D Printed Enclosure

The 3D printed enclosure features a speaker grill, chamfered edges and two hinged handles with access to the Feather USB-C port.

The top and bottom covers snap fit, so it's easy to open for changing out the batteries.

![led_pixels_hero-handles.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/621/medium640/led_pixels_hero-handles.jpg?1718038179)

## Kid Friendly

This project uses AA batteries for a safe kid friendly device. No need to worry if it's accidentally dropped!

Create your own audio files to create an education toy for kiddos.

![led_pixels_hero-red.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/624/medium640/led_pixels_hero-red.jpg?1718039115)

## Parts
### Adafruit RP2040 Prop-Maker Feather with I2S Audio Amplifier

[Adafruit RP2040 Prop-Maker Feather with I2S Audio Amplifier](https://www.adafruit.com/product/5768)
The Adafruit Feather series gives you lots of options for a small, portable, rechargeable microcontroller board. By picking a feather and stacking on a FeatherWing you can create advanced projects quickly. One popular combo is our [Feather M4](https://www.adafruit.com/product/3857)...

In Stock
[Buy Now](https://www.adafruit.com/product/5768)
[Related Guides to the Product](https://learn.adafruit.com/products/5768/guides)
![Video of a white hand pressing a button to briefly turn an LED strip into white lights. Also wired up to the microcontroller are a servo motor and a speaker.](https://cdn-shop.adafruit.com/product-videos/640x480/5768-09.jpg)

### Massive Arcade Button with LED - 100mm White

[Massive Arcade Button with LED - 100mm White](https://www.adafruit.com/product/1187)
OMG WATCH OUT! This 100mm diameter arcade button with a **10mm deep plastic base** is so massive and inviting it may collapse upon itself and form a black hole from which not even light can escape! Until it does, however, it ready for all sorts of pressing and pushing. Science...

In Stock
[Buy Now](https://www.adafruit.com/product/1187)
[Related Guides to the Product](https://learn.adafruit.com/products/1187/guides)
![Head-on shot of illuminated massive white 100mm arcade button.](https://cdn-shop.adafruit.com/640x480/1187-00.jpg)

### Adafruit NeoPixel LED Side Light Strip - Black 120 LED

[Adafruit NeoPixel LED Side Light Strip - Black 120 LED](https://www.adafruit.com/product/3634)
Fancy new _side light_ LED strips are a great alternative for folks who have loved and used Adafruit LED strips for a few years but want gorgeous, glowy&nbsp;light emitting at 90 degrees. They're very skinny so you can run them along a thin edge and curve them around shapes and...

Out of Stock
[Buy Now](https://www.adafruit.com/product/3634)
[Related Guides to the Product](https://learn.adafruit.com/products/3634/guides)
![Top down view of a Adafruit NeoPixel Digital RGB 120 LED-per-meter strip.](https://cdn-shop.adafruit.com/640x480/3634-04.jpg)

### Mono Enclosed Speaker with Plain Wires - 3W 4 Ohm

[Mono Enclosed Speaker with Plain Wires - 3W 4 Ohm](https://www.adafruit.com/product/4445)
Listen up! This single&nbsp; 2.8" x 1.2" speaker&nbsp;is&nbsp;the perfect addition to any audio project where you need 4 ohm impedance and 3W or less of power. We particularly like these speakers as they are small and enclosed for good audio volume and quality. This speaker _does..._

In Stock
[Buy Now](https://www.adafruit.com/product/4445)
[Related Guides to the Product](https://learn.adafruit.com/products/4445/guides)
![Enclosed Speaker with wires](https://cdn-shop.adafruit.com/640x480/4445-01.jpg)

### 3x AA Battery Holder with On/Off Switch and 2-Pin JST

[3x AA Battery Holder with On/Off Switch and 2-Pin JST](https://www.adafruit.com/product/4779)
Here's another addition to our growing family of&nbsp;[AA battery holders](https://www.adafruit.com/category/563). Behold! A&nbsp;holder for three (3) AA batteries! It's got&nbsp;a 6" long genuine JST-PH 2-pin cable connector, an On/Off switch, and, oh yes, it's in...

In Stock
[Buy Now](https://www.adafruit.com/product/4779)
[Related Guides to the Product](https://learn.adafruit.com/products/4779/guides)
![Angled shot of 3 x AA battery holder with on-off switch and JST SH connector.](https://cdn-shop.adafruit.com/640x480/4779-02.jpg)

### Part: Quick-Connect Wires
quantity: 1
0.187" (10-pack)
[Quick-Connect Wires](https://www.adafruit.com/product/3835)

### Part: Slide Switch
quantity: 1
Breadboard-friendly SPDT
[Slide Switch](https://www.adafruit.com/product/805)

### Part: Silicone Cover Stranded-Core Ribbon Cable
quantity: 1
4 Wires 1 Meter Long - 28AWG Black
[Silicone Cover Stranded-Core Ribbon Cable](https://www.adafruit.com/product/3891)

### Part: Spudger Prying Tool
quantity: 1
Double Sided Prying Tool
[Spudger Prying Tool](https://www.adafruit.com/product/3434)

## Hardware

- 8x M2.5 x 6mm long steel machine screws (Case Handles)
- 4x M3 x 8mm long steel machine screws (Speaker Grill)
- 4x M3 hex nuts (Speaker Grill)
- 6x M3 x 10mm long steel machine screws (Speaker Mount)
- 6x M3 hex nuts (Speaker Mount)
- 2x M2.5 x 6mm long steel machine screws (Feather)
- 2x M3 x 6mm machine screws (Switch Holder)
- 2x M3 x 6mm hex nuts (Switch Holder)
- 2x M3 x 6mm machine screws (Battery Holder)

# Soundbox RP2040

## Circuit Diagram

The diagram below provides a general visual reference for wiring of the components once you get to the **Assembly** page. This diagram was created using the software package [Fritzing](http://fritzing.org/download/).

## Adafruit Library for Fritzing

Adafruit uses the Adafruit's Fritzing parts library to create circuit diagrams for projects. You can download the library or just grab individual parts. Get the library and parts from [GitHub - Adafruit Fritzing Parts](https://github.com/adafruit/Fritzing-Library/tree/master/parts).

![](https://cdn-learn.adafruit.com/assets/assets/000/130/367/medium800/led_pixels_CircuitDiagram-v1.jpg?1717442875)

## Wired Connections

- **GND** from NeoPixel strip connects to **GND** pin&nbsp;on **Feather**
- **DIN** from NeoPixel strip connects to corresponding pin on **Feather**
- **5V** from NeoPixel strip connects to **5V** pin on **Feather**
- **Slide switch** &nbsp;connects to&nbsp; **EN** &nbsp;and&nbsp; **GND** &nbsp;pins on&nbsp; **Feather**
- **Button** &nbsp;connects to&nbsp; **Btn** &nbsp;and&nbsp; **GND** &nbsp;pins on&nbsp; **Feather** &nbsp;screw-block terminals
- **Speaker** &nbsp;connects to&nbsp; speaker ( **+&nbsp;** and **&nbsp;–** ) pins on **&nbsp;Feather** &nbsp;screw-block terminals

**3x AA Battery Pack**

The PropMaker Feather RP2040 is powered by a 3x AA battery pack plugged into the **Feather** battery JST connector.

# Soundbox RP2040

## CAD Files

## 3D Printed Parts

STL files for 3D printing are oriented to print "as-is" on FDM style machines. Parts are designed to 3D print without any support material using PLA filament. Original design source may be downloaded using the links below.

![led_pixels_3d-parts.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/626/medium640/led_pixels_3d-parts.jpg?1718044012)

[Download STLs.zip](https://cdn-learn.adafruit.com/assets/assets/000/130/628/original/STLs.zip?1718044164)
[Download CAD Source Files](https://cdn-learn.adafruit.com/assets/assets/000/130/629/original/CAD.zip?1718044492)
## CAD Assembly

The arcade button is panel mounted to the top cover. The top cover snap fits over the case. The speaker is secured to a mount that is attached to the bottom cover. The AA battery pack is clipped to a holder that is secured to the bottom cover. The two handles are secured to the side of the case. The speaker grill is secured to the side of the case. The PropMaker Feather RP2040 is secured to the built-in standoffs on the bottom cover. The slide switch is fitted into a holder that is attached to the bottom cover.

![led_pixels_CAD-explode.gif](https://cdn-learn.adafruit.com/assets/assets/000/130/661/medium640thumb/led_pixels_CAD-explode.jpg?1718123588)

## Build Volume

The parts require a 3D printer with a minimum build volume.

- 116mm (X) x 116mm (Y) x 82mm (Z)

![led_pixels_cura-bed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/625/medium640/led_pixels_cura-bed.jpg?1718043962)

## Design Source Files

The project assembly was designed in Fusion 360. This can be downloaded in different formats like STEP, STL and more.

Electronic components like Adafruit's boards, displays, connectors and more can be downloaded from the&nbsp;[Adafruit CAD parts GitHub Repo](https://github.com/adafruit/Adafruit_CAD_Parts/).

![led_pixels_5768-Feather-RP2040-PropMaker.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/627/medium640/led_pixels_5768-Feather-RP2040-PropMaker.jpg?1718044050)

# Soundbox RP2040

## CircuitPython

[CircuitPython](https://github.com/adafruit/circuitpython) is a derivative of [MicroPython](https://micropython.org) designed to simplify experimentation and education on low-cost microcontrollers. It makes it easier than ever to get prototyping by requiring no upfront desktop software downloads. Simply copy and edit files on the **CIRCUITPY** drive to iterate.

## CircuitPython Quickstart

Follow this step-by-step to quickly get CircuitPython running on your board.

[Download the latest version of CircuitPython for this board via circuitpython.org](https://circuitpython.org/board/adafruit_feather_rp2040_prop_maker/)
 **Click the link above to download the latest CircuitPython UF2 file.**

Save it wherever is convenient for you.

![install_circuitpython_on_rp2040_RP2040_UF2_downloaded.jpg](https://cdn-learn.adafruit.com/assets/assets/000/101/655/medium640/install_circuitpython_on_rp2040_RP2040_UF2_downloaded.jpg?1618943202)

![](https://cdn-learn.adafruit.com/assets/assets/000/121/865/medium800/adafruit_products_boot_reset.jpg?1686710555)

To enter the bootloader, hold down the **BOOT/**** BOOTSEL button**(highlighted in red above), and while continuing to hold it (don't let go!), press and release the**reset button**(highlighted in red or blue above).&nbsp;**Continue to hold the BOOT/BOOTSEL button until the RPI-RP2 drive appears!**

If the drive does not appear, release all the buttons, and then repeat the process above.

You can also start with your board unplugged from USB, press and hold the BOOTSEL button (highlighted in red above), continue to hold it while plugging it into USB, and wait for the drive to appear before releasing the button.

A lot of people end up using charge-only USB cables and it is very frustrating! **Make sure you have a USB cable you know is good for data sync.**

You will see a new disk drive appear called **RPI-RP2**.

&nbsp;

Drag the **adafruit\_circuitpython\_etc.uf2** file to **RPI-RP2.**

![install_circuitpython_on_rp2040_RP2040_bootloader_drive.jpg](https://cdn-learn.adafruit.com/assets/assets/000/101/656/medium640/install_circuitpython_on_rp2040_RP2040_bootloader_drive.jpg?1618943666)

![install_circuitpython_on_rp2040_RP2040_drag_UF2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/101/657/medium640/install_circuitpython_on_rp2040_RP2040_drag_UF2.jpg?1618943674)

The **RPI-RP2** drive will disappear and a new disk drive called **CIRCUITPY** will appear.

That's it, you're done! :)

![install_circuitpython_on_rp2040_RP2040_CIRCUITPY.jpg](https://cdn-learn.adafruit.com/assets/assets/000/101/658/medium640/install_circuitpython_on_rp2040_RP2040_CIRCUITPY.jpg?1618943864)

## Safe Mode

You want to edit your **code.py** or modify the files on your **CIRCUITPY** drive, but find that you can't. Perhaps your board has gotten into a state where **CIRCUITPY** is read-only. You may have turned off the **CIRCUITPY** drive altogether. Whatever the reason, safe mode can help.

Safe mode in CircuitPython does not run any user code on startup, and disables auto-reload. This means a few things. First, safe mode _bypasses any code in_ **boot.py** (where you can set **CIRCUITPY** read-only or turn it off completely). Second, _it does not run the code in_ **code.py**. And finally, _it does not automatically soft-reload when data is written to the_ **CIRCUITPY** _drive_.

Therefore, whatever you may have done to put your board in a non-interactive state, safe mode gives you the opportunity to correct it without losing all of the data on the **CIRCUITPY** drive.

### Entering Safe Mode
To enter safe mode when using CircuitPython, plug in your board or hit reset (highlighted in red above). Immediately after the board starts up or resets, it waits 1000ms. On some boards, the onboard status LED (highlighted in green above) will blink yellow during that time. If you press reset during that 1000ms, the board will start up in safe mode. It can be difficult to react to the yellow LED, so you may want to think of it simply as a slow double click of the reset button. (Remember, a fast double click of reset enters the bootloader.)

### In Safe Mode

If you successfully enter safe mode on CircuitPython, the LED will intermittently blink yellow three times.

If you connect to the serial console, you'll find the following message.

```terminal
Auto-reload is off.
Running in safe mode! Not running saved code.

CircuitPython is in safe mode because you pressed the reset button during boot. Press again to exit safe mode.

Press any key to enter the REPL. Use CTRL-D to reload.
```

You can now edit the contents of the **CIRCUITPY** drive. Remember, _your code will not run until you press the reset button, or unplug and plug in your board, to get out of safe mode._

## Flash Resetting UF2

If your board ever gets into a really _weird_ state and CIRCUITPY doesn't show up as a disk drive after installing CircuitPython, try loading this 'nuke' UF2 to RPI-RP2. which will do a 'deep clean' on your Flash Memory. **You will lose all the files on the board** , but at least you'll be able to revive it! After loading this UF2, follow the steps above to re-install CircuitPython.

[Download flash erasing "nuke" UF2](https://cdn-learn.adafruit.com/assets/assets/000/101/659/original/flash_nuke.uf2?1618945856)
# Soundbox RP2040

## Code the Soundbox

Once you've finished setting up your RP2040 Prop-Maker Feather with CircuitPython, you can access the code and necessary libraries by downloading the Project Bundle.

To do this, click on the **Download Project Bundle** button in the window below. It will download to your computer as a zipped folder.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/CircuitPython_Sound_Box_2/code.py

## Upload the Code, Sound Effects, and Libraries to the RP2040 Prop-Maker Feather

After downloading the Project Bundle, plug your RP2040 Prop-Maker Feather into the computer's USB port with a known good USB data+power cable. You should see a new flash drive appear in the computer's File Explorer or Finder (depending on your operating system) called **CIRCUITPY**. Unzip the folder and copy the following items to the Feather's **CIRCUITPY** drive:

- **lib** folder
- **wavs** folder
- **code.py**

Your RP2040 Prop-Maker Feather **CIRCUITPY** drive should look like this after copying the **lib** folder, **wavs** folder and the **code.py** file.

![CIRCUITPY](https://adafruit.github.io/Adafruit_Learning_System_Guides/CircuitPython_Sound_Box_2.png )

## How the CircuitPython Code Works

The code begins by turning on the `EXTERNAL_POWER` pin on the Feather. This pin controls the power to the terminal block pins. The NeoPixels and button use the `EXTERNAL_NEOPIXELS` and `EXTERNAL_BUTTON` pins.

```python
# enable external power pin
# provides power to the external components
external_power = DigitalInOut(board.EXTERNAL_POWER)
external_power.direction = Direction.OUTPUT
external_power.value = True

# external neopixels
num_pixels = 24
pixels = neopixel.NeoPixel(board.EXTERNAL_NEOPIXELS, num_pixels, brightness=0.4, auto_write=True)

# external button
switch = keypad.Keys((board.EXTERNAL_BUTTON,), value_when_pressed=False, pull=True)
```

## Dictionary of Colors

A dictionary is used to list color names and color HEX codes.

```python
colors = [
    {'label': "BLUE", 'color': 0x0000FF},
    {'label': "RED", 'color': 0xFF0000},
    {'label': "GREEN", 'color': 0x00FF00},
    {'label': "YELLOW", 'color': 0xFFFF00},
    {'label': "AQUA", 'color': 0x00FFFF},
    {'label': "PURPLE", 'color': 0xFF00FF},
    {'label': "PINK", 'color': 0xFF0055},
    {'label': "ORANGE", 'color': 0xFF5500},
    {'label': "WHITE", 'color': 0x555555},
    ]
```

## Sorting Audio

The audio files from the wavs folder are sorted into two different arrays:&nbsp;`shake_wavs` and `color_wavs`. They are sorted based on the name of the file. If "`SHAKE`" is in the file name, then it is added to `shake_wavs`. If the file name has one of the color labels from the `colors` dictionary, then it is added to `color_wavs`.

```python
shake_wavs = []
color_wavs = []
for filename in os.listdir('/wavs'):
    if filename.lower().endswith('.wav') and not filename.startswith('.'):
        if "SHAKE" in filename:
            shake_wavs.append("/wavs/" + filename)
        else:
            for color in colors:
                if color['label'] in filename:
                    color_wavs.append("/wavs/" + filename)
                    break
```

## The Loop

In the loop, the&nbsp;`keypad` object is scanned for an `event`. If the switch is pressed, then one of the sound files that was sorted into the `color_wavs` array is opened and played. The NeoPixel ring lights up with the same color that is contained in the name of the audio file.

```python
while True:
    event = switch.events.get()
    if event:
        if event.pressed:
            wave, wave_name = open_audio(random.randint(0, num_colors - 1), color_wavs)
            audio.play(wave)
            for color in colors:
                if color['label'] in wave_name:
                    pixels.fill(color['color'])
                else:
                    pass
            time.sleep(.7)
            pixels.fill((0, 0, 0))
            print('pressed')
```

If the LIS3DH detects a `shake`, then one of the audio files from the `shake_wavs` is opened and played. The NeoPixels light up with a rainbow effect.

```python
if lis3dh.shake(shake_threshold=12):
	wave, wave_name = open_audio(random.randint(0, num_shakes - 1), shake_wavs)
	audio.play(wave)
	for i in range(num_pixels):
		pixels[i] = colorwheel(hue)
		hue = (hue + 30) % 256
		print(hue)
	time.sleep(.7)
    pixels.fill((0, 0, 0))
    print('shake')
```

# Soundbox RP2040

## Wiring

## Slide Switch Wiring

Cut two wires to 2.5 inches (6cm) in length.

Snip off one of the leads on the slide switch, either the far left or right but not the middle. Then, trim the two remaining leads short, about half their length.

Solder the two wires to each of the leads on the slide switch.

![led_pixels_switch-wire.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/541/medium640/led_pixels_switch-wire.jpg?1718021930)

![led_pixels_switch-solder.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/542/medium640/led_pixels_switch-solder.jpg?1718021940)

## Wire Slide Switch to Feather

Solder the two wires from the slide to the EN and GND pins on the top of the Feather.

Take a moment to ensure the wires from the slide switch have been properly soldered.

![led_pixels_switch-feather-solder.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/543/medium640/led_pixels_switch-feather-solder.jpg?1718021955)

![led_pixels_feather-switch-wired.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/544/medium640/led_pixels_feather-switch-wired.jpg?1718021971)

## Disable Battery LiPo Charging

Use a sharp hobby knife to cut the LiPo Charging trace on the back of the PropMaker Feather RP2040. This must be cut to prevent accidental calamity with alkaline batteries when USB is plugged in.

![led_pixels_feather-cut-trace.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/620/medium640/led_pixels_feather-cut-trace.jpg?1718038002)

Warning: Be careful using a hobby knife. Use gloves and caution. An older person should do this for a young maker.

## NeoPixel Strip

Start by removing the NeoPixel strip from the reel.

Remove the stock cable from the beginning of the strip using wire cutters.&nbsp;

Measure and cut a piece from the strip so it has 24 NeoPixel LEDs in the cut piece.

Remove the silicone sheathing from the cut piece.

![led_pixels_strip-length.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/545/medium640/led_pixels_strip-length.jpg?1718021990)

## Solder Wires to the NeoPixels

Measure and cut a piece from the 4-wire silicone ribbon cable so it's 8 inches (20cm) in length, then strip off one of the wires, we only need three.

Locate the end of the NeoPixel strip with the&nbsp; **DI** &nbsp;(Data In)&nbsp; label.

Solder the three wires from the cable to the pads on the front of the NeoPixel strip.

![led_pixels_strip-wiring.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/546/medium640/led_pixels_strip-wiring.jpg?1718022021)

## Wired NeoPixel Strip

Double check the wires are properly soldered to&nbsp; **5V** ,&nbsp; **DI** &nbsp;and&nbsp; **GND** &nbsp;pads on the NeoPixel LED strip.

![led_pixels_strip-wired.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/547/medium640/led_pixels_strip-wired.jpg?1718022042)

## Quick Connect Cable

Grab one quick-connect cable from the pack. Cut the end with the JST connector so the two wires are about 6 inches in length (15cm).

Using wire strippers, remove a bit of insulation from each wire.

Tin the exposed wire using solder to prevent the strands of wire from fraying.

![led_pixels_quick-cables.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/602/medium640/led_pixels_quick-cables.jpg?1718023939)

# Soundbox RP2040

## Arcade Button Assembly

## Remove Switch & LED

Remove the micro switch from the arcade button by twisting it counter clock-wise and pulling it out.

Remove the LED from the micro switch housing by pulling it straight out.

Set the LED aside, it won't be used in this project so you can save it for another project.&nbsp;

![led_pixels_arcade-button-switch.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/567/medium640/led_pixels_arcade-button-switch.jpg?1718022538)

![led_pixels_arcade-button-led.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/568/medium640/led_pixels_arcade-button-led.jpg?1718022555)

## Remove Nut & Plate

Unscrew the plastic nut from the arcade button threading.

The arcade button plate should freely come out of the button housing.

Set the arcade button plate aside, it won't be used in the final build.

![led_pixels_arcade-button-nut.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/569/medium640/led_pixels_arcade-button-nut.jpg?1718022582)

![led_pixels_arcade-button-plate.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/570/medium640/led_pixels_arcade-button-plate.jpg?1718022593)

## Remove Button Actuator

Use a wide flat tool (LEGO brick separator shown in photo) to push the internal spring.

Use your fingers to pinch the two white prongs.

Push the white prongs through the button threading and pull out the white housing from the black button housing.

![led_pixels_arcade-button-spring-removal.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/571/medium640/led_pixels_arcade-button-spring-removal.jpg?1718022608)

![led_pixels_arcade-button-actuator.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/572/medium640/led_pixels_arcade-button-actuator.jpg?1718022625)

## Remove Dome & Cover

Use the spudger tool to pry the clear plastic dome from the white button housing.&nbsp;

Fit the edge of the tool in between the clear plastic dome and white button housing then lift to pry them apart.

A white cover diffuser should freely come out of the clear plastic dome.

![led_pixels_arcade-button-dome.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/573/medium640/led_pixels_arcade-button-dome.jpg?1718022642)

## Disassembled Arcade Button

With the arcade button fully disassembled, take a moment to inspect all the parts are accounted for.&nbsp;

![led_pixels_arcade-button-parts.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/574/medium640/led_pixels_arcade-button-parts.jpg?1718022667)

## LED Strip Holder

Get the white button housing, wired NeoPixel strip and 3D printed strip holder ready.

![led_pixels_arcade-button-strip-holder.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/575/medium640/led_pixels_arcade-button-strip-holder.jpg?1718022701)

## Install LED Strip to Holder

Insert the NeoPixel strip into the 3D printed strip holder with the starting end fitted through the slit in the holder.

Double check the NeoPixel strip is correctly fitted into the 3D printed strip holder.

![led_pixels_strip-holder-fit.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/577/medium640/led_pixels_strip-holder-fit.jpg?1718022741)

![led_pixels_strip-holder-fitted.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/578/medium640/led_pixels_strip-holder-fitted.jpg?1718022755)

## Install Strip to Button Housing

Grab the cable from the NeoPixel strip and insert it through one of the two holes in the white button housing.

Fit the 3D printed LED strip holder into the cavity in the white button housing.

Press the 3D printed LED strip holder into the cavity so it fits flush with the wall of the white button housing.

![led_pixels_arcade-button-actuator-strip-cable.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/579/medium640/led_pixels_arcade-button-actuator-strip-cable.jpg?1718022784)

![led_pixels_arcade-button-actuator-strip-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/580/medium640/led_pixels_arcade-button-actuator-strip-installing.jpg?1718022801)

## Reinstall Button Cover

Place the button cover diffuser over the button housing with the notches lined up correctly.

Press fit the white cover diffuser back onto the white button housing.

![led_pixels_arcade-button-actuator-strip-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/581/medium640/led_pixels_arcade-button-actuator-strip-installed.jpg?1718022818)

![led_pixels_arcade-button-cover-reinstall.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/582/medium640/led_pixels_arcade-button-cover-reinstall.jpg?1718022844)

## Reinstall Dome

Place the clear dome over the white cover diffuser and firmly press them together to snap fit them closed.

![led_pixels_arcade-button-dome-reinstall.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/583/medium640/led_pixels_arcade-button-dome-reinstall.jpg?1718022878)

## Install LED Strip Cable

Insert the NeoPixel cable through one of the two holes in the black button housing.

![led_pixels_arcade-button-strip-cable-thread.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/584/medium640/led_pixels_arcade-button-strip-cable-thread.jpg?1718022903)

## Reinstall Button Actuator

Insert the spring back into the white button housing.

Begin fitting the two prongs into the black button housing.

Use your fingers to compress the spring so the two prongs can be fitted through the black button housing.

![led_pixels_arcade-button-actuator-reinstall.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/585/medium640/led_pixels_arcade-button-actuator-reinstall.jpg?1718022924)

![led_pixels_arcade-button-actuator-reinstall-2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/586/medium640/led_pixels_arcade-button-actuator-reinstall-2.jpg?1718022941)

## Reassembled Button

Double check the two white prongs are fitted through the notches on the end of the buttons threading.

Make sure the whole length of the NeoPixel cable has been pulled through the holes in button housings.

![led_pixels_arcade-button-actuator-reinstalled.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/587/medium640/led_pixels_arcade-button-actuator-reinstalled.jpg?1718022953)

## Install Top Cover

Insert the assembled button into the top cover with the two side nubs fitting into the notches.

Push the assembled button so it's flush with the surface of the top cover.

![led_pixels_case-top-arcade-button.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/588/medium640/led_pixels_case-top-arcade-button.jpg?1718023008)

![led_pixels_case-top-arcade-button-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/589/medium640/led_pixels_case-top-arcade-button-installing.jpg?1718023032)

## Install New Button Plate

Insert the NeoPixel cable through the 3D printed button plate.

Place the 3D printed button plate over the arcade buttons housing.

![led_pixels_case-top-AB-plate-strip-cable.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/590/medium640/led_pixels_case-top-AB-plate-strip-cable.jpg?1718023047)

![led_pixels_case-top-AB-plate-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/591/medium640/led_pixels_case-top-AB-plate-installing.jpg?1718023066)

## Secure Button Plate

Fasten the plastic nut onto the button threading to secure the 3D printed button.

![led_pixels_case-top-AB-plate-nut-secured.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/592/medium640/led_pixels_case-top-AB-plate-nut-secured.jpg?1718023077)

## Reinstall Button Switch

Insert the micro switch back into the button threading.

Press and twist clockwise to secure the micro switch in place.

![led_pixels_case-top-AB-plate-switch-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/593/medium640/led_pixels_case-top-AB-plate-switch-install.jpg?1718023093)

![led_pixels_case-top-AB-plate-switch-secured.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/594/medium640/led_pixels_case-top-AB-plate-switch-secured.jpg?1718023107)

## Installed Micro Switch

Double check the micro switch can be actuated by pressing down on the clear plastic dome. It should "click" when pressed.

![led_pixels_case-top-AB-plate-switch-closeup.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/619/medium640/led_pixels_case-top-AB-plate-switch-closeup.jpg?1718035594)

# Soundbox RP2040

## Assembly

## Handles for Case

Get the two handles ready to secure to the side of the case.

Line up the mounting holes on the handle with the holes on the side of the case.

![led_pixels_case-handles.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/548/medium640/led_pixels_case-handles.jpg?1718022110)

![led_pixels_case-handle-holes.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/551/medium640/led_pixels_case-handle-holes.jpg?1718022168)

## Secure Handles to Case

Hold the handle in place while inserting and fastening the M2.5 x 6mm long steel machine screws.

Repeat the installation with the second handle.

![led_pixels_case-handle-secure.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/549/medium640/led_pixels_case-handle-secure.jpg?1718022134)

![led_pixels_case-handles-secured.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/550/medium640/led_pixels_case-handles-secured.jpg?1718022158)

## Speaker Grill for Case

Get the speaker grill ready to secure to the side of the case.

Place the speaker grill into the case with the mounting holes lined up.

![led_pixels_case-grill.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/552/medium640/led_pixels_case-grill.jpg?1718022186)

![led_pixels_case-grill-insert.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/553/medium640/led_pixels_case-grill-insert.jpg?1718022194)

## Secure Speaker Grill

Insert and fasten the M3 x 6mm long screws to attach the speaker grill to the case.

Use the M3 hex nuts to secure the speaker grill in place.

![led_pixels_case-grill-secure.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/554/medium640/led_pixels_case-grill-secure.jpg?1718022210)

![led_pixels_case-grill-secured.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/555/medium640/led_pixels_case-grill-secured.jpg?1718022223)

## Speaker Mount

Gather up the speaker, hardware and 3D printed speaker mount.

Place the 3D printed speaker mount over the enclosed speaker with the mounting holes lined up.

![led_pixels_speaker-screws.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/556/medium640/led_pixels_speaker-screws.jpg?1718022245)

![led_pixels_speaker-mount-insert.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/557/medium640/led_pixels_speaker-mount-insert.jpg?1718022268)

## Secure Speaker to Mount

Use the M3 x 10mm long steel machine screws to attach the 3D printed mount to the enclosed speaker.

Use the M3 hex nuts to secure the speaker to the mount.

![led_pixels_speaker-mount-secure.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/558/medium640/led_pixels_speaker-mount-secure.jpg?1718022285)

![led_pixels_speaker-mount-secured.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/559/medium640/led_pixels_speaker-mount-secured.jpg?1718022295)

## Battery Mount

Get the bottom case cover, battery mount, and hardware ready.

Place the battery mount over the bottom case cover with the mounting holes lined up.

![led_pixels_btm-bat-holder-screws.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/560/medium640/led_pixels_btm-bat-holder-screws.jpg?1718022313)

![led_pixels_btm-bat-holder-fit.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/561/medium640/led_pixels_btm-bat-holder-fit.jpg?1718022321)

## Secure Battery Mount

Insert and fasten the M3 x 6mm long steel machine screws to secure the battery mount to the bottom cover.

![led_pixels_btm-bat-holder-secure.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/562/medium640/led_pixels_btm-bat-holder-secure.jpg?1718022336)

![led_pixels_btm-bat-holder-secured.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/563/medium640/led_pixels_btm-bat-holder-secured.jpg?1718022348)

## Hardware for Speaker Mount

Get the speaker mount, bottom cover, and hardware ready.

![led_pixels_btm-spk-screws.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/564/medium640/led_pixels_btm-spk-screws.jpg?1718022426)

## Secure Speaker Mount

Place the speaker mount on top of the bottom cover with the mounting holes lined up.

Insert and fasten the M3 x 10mm long steel machine screws to attach the speaker mount to the bottom cover.

Use the M3 hex nuts to secure the parts together.

![led_pixels_btm-spk-fit.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/565/medium640/led_pixels_btm-spk-fit.jpg?1718022450)

![led_pixels_btm-spk-secured.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/566/medium640/led_pixels_btm-spk-secured.jpg?1718022460)

## Hardware for Switch Holder

Get the slide switch holder and hardware ready to install onto the bottom cover.

![led_pixels_btm-switch-holder-screws.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/595/medium640/led_pixels_btm-switch-holder-screws.jpg?1718023731)

## Secure Switch Holder to Bottom Cover

Insert and fasten the M3 x 6mm long screws to attach the slide switch holder to the bottom cover.

Use the M3 hex nuts to secure the parts together.

![led_pixels_btm-switch-holder-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/596/medium640/led_pixels_btm-switch-holder-install.jpg?1718023765)

![led_pixels_btm-switch-holder-secured.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/597/medium640/led_pixels_btm-switch-holder-secured.jpg?1718023775)

## Feather Connections

Get the wires from the various electronics ready to connect to the PropMaker Feather RP2040.

![led_pixels_feather-cables.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/598/medium640/led_pixels_feather-cables.jpg?1718023787)

## Connect Speaker

Insert the two wires from the speaker into the corresponding pins on the Feather screw-block terminals.

Use a flat head screwdriver to secure the wires.

![led_pixels_feather-spk-connect.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/599/medium640/led_pixels_feather-spk-connect.jpg?1718023810)

## Connect NeoPixel Strip

Insert the three wires from the NeoPixel strip into the corresponding pins on the Feather screw-block terminals.

Use a flat head screwdriver to secure the wires.

![led_pixels_feather-strip-connect.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/600/medium640/led_pixels_feather-strip-connect.jpg?1718023821)

## Connect Button Switch

Insert the two wires from the quick-connect cable into the corresponding pins on the Feather screw-block terminals.

Use a flat head screwdriver to secure the wires.

![led_pixels_feather-btn-connect.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/601/medium640/led_pixels_feather-btn-connect.jpg?1718023835)

## Install Feather to Bottom Cover

Place the PropMaker Feather RP2040 onto the two standoffs on the bottom cover.

![led_pixels_btm-feather-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/603/medium640/led_pixels_btm-feather-installing.jpg?1718023962)

## Secure Feather

Use the M2.5 x 6mm long steel machine screws to secure the Feather to the bottom cover.

![led_pixels_btm-feather-secure.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/604/medium640/led_pixels_btm-feather-secure.jpg?1718023980)

## Install Switch to Holder

Fit the slide switch into the 3D printed switch holder.

![led_pixels_btm-switch-secure.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/605/medium640/led_pixels_btm-switch-secure.jpg?1718023995)

## Install AA Batteries

Install three fresh AA batteries into the battery holder.

![led_pixels_batteries-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/606/medium640/led_pixels_batteries-installed.jpg?1718024010)

## Connect Battery

Plug in the connector from the battery holder to the PropMaker Feather RP2040.

![led_pixels_feather-battery-connect.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/607/medium640/led_pixels_feather-battery-connect.jpg?1718024025)

## Install Battery Clip

Slide the battery into the 3D printed battery holder so it fits flush.

Fit the 3D printed battery clip over the battery so it snap fits onto the holder.

![led_pixels_btm-battery-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/608/medium640/led_pixels_btm-battery-install.jpg?1718024038)

![led_pixels_btm-battery-clip-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/609/medium640/led_pixels_btm-battery-clip-install.jpg?1718024047)

## Connect Button Wires

Plug in the two wires from the quick-connect cable onto the arcade buttons micro switch.

![led_pixels_feather-AB-switch-connect.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/610/medium640/led_pixels_feather-AB-switch-connect.jpg?1718024064)

## Test Circuit

Use the slide switch to power on the PropMaker Feather RP2040.

Check the battery's built-in on/off switch is to the "ON" position.

Press the arcade button to play sound and light up the NeoPixels.

![led_pixels_circuit-test.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/611/medium640/led_pixels_circuit-test.jpg?1718024086)

## Installing Case

Fit the top cover through the bottom of the 3D printed case.

![led_pixels_case-top-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/612/medium640/led_pixels_case-top-installing.jpg?1718024099)

## Install Top to Case

Orient the top with the case so they can be fitted together.

Snap fit the top cover onto the 3D printed case.

![led_pixels_case-top-snapping.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/613/medium640/led_pixels_case-top-snapping.jpg?1718024114)

## Install Bottom to Case

Orient the bottom cover with the 3D printed case so the Feathers USB-C port is lined up with the cutout.

![led_pixels_case-btm-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/614/medium640/led_pixels_case-btm-installing.jpg?1718024128)

![led_pixels_case-btm-secured.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/615/medium640/led_pixels_case-btm-secured.jpg?1718024142)

## Final Build

Congratulations on your build!&nbsp;

Use the mini slide switch to power the device on and off.

Then press the button to have fun!

![led_pixels_final-build.jpg](https://cdn-learn.adafruit.com/assets/assets/000/130/616/medium640/led_pixels_final-build.jpg?1718024154)


## Featured Products

### Adafruit RP2040 Prop-Maker Feather with I2S Audio Amplifier

[Adafruit RP2040 Prop-Maker Feather with I2S Audio Amplifier](https://www.adafruit.com/product/5768)
The Adafruit Feather series gives you lots of options for a small, portable, rechargeable microcontroller board. By picking a feather and stacking on a FeatherWing you can create advanced projects quickly. One popular combo is our [Feather M4](https://www.adafruit.com/product/3857)...

In Stock
[Buy Now](https://www.adafruit.com/product/5768)
[Related Guides to the Product](https://learn.adafruit.com/products/5768/guides)
### Massive Arcade Button with LED - 100mm White

[Massive Arcade Button with LED - 100mm White](https://www.adafruit.com/product/1187)
OMG WATCH OUT! This 100mm diameter arcade button with a **10mm deep plastic base** is so massive and inviting it may collapse upon itself and form a black hole from which not even light can escape! Until it does, however, it ready for all sorts of pressing and pushing. Science...

In Stock
[Buy Now](https://www.adafruit.com/product/1187)
[Related Guides to the Product](https://learn.adafruit.com/products/1187/guides)
### Adafruit NeoPixel LED Side Light Strip - Black 120 LED

[Adafruit NeoPixel LED Side Light Strip - Black 120 LED](https://www.adafruit.com/product/3634)
Fancy new _side light_ LED strips are a great alternative for folks who have loved and used Adafruit LED strips for a few years but want gorgeous, glowy&nbsp;light emitting at 90 degrees. They're very skinny so you can run them along a thin edge and curve them around shapes and...

Out of Stock
[Buy Now](https://www.adafruit.com/product/3634)
[Related Guides to the Product](https://learn.adafruit.com/products/3634/guides)
### Mono Enclosed Speaker with Plain Wires - 3W 4 Ohm

[Mono Enclosed Speaker with Plain Wires - 3W 4 Ohm](https://www.adafruit.com/product/4445)
Listen up! This single&nbsp; 2.8" x 1.2" speaker&nbsp;is&nbsp;the perfect addition to any audio project where you need 4 ohm impedance and 3W or less of power. We particularly like these speakers as they are small and enclosed for good audio volume and quality. This speaker _does..._

In Stock
[Buy Now](https://www.adafruit.com/product/4445)
[Related Guides to the Product](https://learn.adafruit.com/products/4445/guides)
### 3x AA Battery Holder with On/Off Switch and 2-Pin JST

[3x AA Battery Holder with On/Off Switch and 2-Pin JST](https://www.adafruit.com/product/4779)
Here's another addition to our growing family of&nbsp;[AA battery holders](https://www.adafruit.com/category/563). Behold! A&nbsp;holder for three (3) AA batteries! It's got&nbsp;a 6" long genuine JST-PH 2-pin cable connector, an On/Off switch, and, oh yes, it's in...

In Stock
[Buy Now](https://www.adafruit.com/product/4779)
[Related Guides to the Product](https://learn.adafruit.com/products/4779/guides)
### Arcade Button and Switch Quick-Connect Wires - 0.187" (10-pack)

[Arcade Button and Switch Quick-Connect Wires - 0.187" (10-pack)](https://www.adafruit.com/product/3835)
Quick connector wire sets make wiring up our arcade-style or metal buttons quicky-quick. Each wire comes as a 'pair' with two 0.187" quick-connects pre-crimped. The wires are terminated together in a JST 2.5mm 2-pin connector. This connector will fit in 0.1" headers,...

In Stock
[Buy Now](https://www.adafruit.com/product/3835)
[Related Guides to the Product](https://learn.adafruit.com/products/3835/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)
### Silicone Cover Stranded-Core Ribbon Cable - 4 Wires 1 Meter Long

[Silicone Cover Stranded-Core Ribbon Cable - 4 Wires 1 Meter Long](https://www.adafruit.com/product/3891)
For those who are fans of our silicone-covered wires, but are always looking to _up their wiring game_. We now have **Silicone Cover Ribbon cables!** These may look _a lot_ like <a...></a...>

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

## Related Guides

- [Adafruit RP2040 Prop-Maker Feather](https://learn.adafruit.com/adafruit-rp2040-prop-maker-feather.md)
- [LED NeoPixel Corset with Circuit Playground Express and MakeCode](https://learn.adafruit.com/led-corset-with-circuit-playground-and-makecode.md)
- [Haunted Air Blaster](https://learn.adafruit.com/automated-air-blaster.md)
- [LED Masquerade Masks with n00ds](https://learn.adafruit.com/led-masquerade-masks-with-n00ds.md)
- [Motion Sensor Bat](https://learn.adafruit.com/motion-sensor-bat.md)
- [Magic Band Reader](https://learn.adafruit.com/magic-band-reader.md)
- [Zelda Echoes Of Wisdom Tri Rod](https://learn.adafruit.com/zelda-tri-rod.md)
- [Gravity Falls Memory Gun](https://learn.adafruit.com/gravity-falls-memory-gun.md)
- [Halo Energy Sword RP2040](https://learn.adafruit.com/halo-energy-sword-rp2040.md)
- [Guitar Synth with CircuitPython SynthIO](https://learn.adafruit.com/guitar-synth-with-circuitpython-synthio.md)
- [PropMaker Jack O'Lantern](https://learn.adafruit.com/propmaker-jack-o-lantern.md)
- [Mario Magic Wand](https://learn.adafruit.com/mario-magic-wand.md)
- [Color Sensing Music Player](https://learn.adafruit.com/color-sensing-music-player.md)
- [Prop-Maker Feather Talking Adabot Clock](https://learn.adafruit.com/prop-maker-feather-talking-adabot-clock.md)
- [Lightsaber Prop-Maker RP2040](https://learn.adafruit.com/lightsaber-rp2040.md)
- [ Faz-Wrench - Five Nights at Freddy's](https://learn.adafruit.com/faz-wrench.md)
