# Gravity Falls Memory Gun

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/129/651/medium800/3d_printing_hero-2.jpg?1714072109)

https://youtu.be/Oc5buzvV1pM

Build a prop replica of the Memory Gun from the _Gravity Falls_ TV show. Powered by the Feather PropMaker RP2040 and CircuitPython, this 3D printed prop lights up and plays blaster sound effects.

![3d_printing_hero-4.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/648/medium640/3d_printing_hero-4.jpg?1714071915)

The 1.3in OLED screen displays a list of audio files stored on the Feather internal flash storage. Use the rotary encoder to cycle through the list of audio files. Press the button to trigger sound effects and light up the LED noodle.

![led_strips_OLED-GIF.gif](https://cdn-learn.adafruit.com/assets/assets/000/129/715/medium640thumb/led_strips_OLED-GIF.jpg?1714484839)

The prop parts are designed to be 3D printed without any support material. The light bulb (plastic holiday ornament) features an LED noodle that is fitted inside 3d printed holder.

![3d_printing_hero-bulb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/650/medium640/3d_printing_hero-bulb.jpg?1714072075)

The parts are 3D printed using various glittery PLA filament without any sanding or post-processing. The pink "blaster shield" is laser cut acrylic, but can also be 3D printed in translucent PLA filament.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/653/medium800/3d_printing_hero-shield.jpg?1714072169)

The Feather PropMaker RP2040 is housed inside the canister with access to the USB-C port for battery charging. A slide switch is hidden right below the USB-C port to power the prop on and off.

![](https://cdn-learn.adafruit.com/assets/assets/000/129/652/medium800/3d_printing_hero-3.jpg?1714072136)

## Parts
Featured
### 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)

Featured
### nOOds - Flexible LED Filament - 3V 300mm long - Blue

[nOOds - Flexible LED Filament - 3V 300mm long - Blue](https://www.adafruit.com/product/5508)
Our favorite food when hacking on code or electronics is a hot bowl of noodles - and around NYC these are often called 'noods'! What we've got here are flexible LED noodles, in different lengths and colors. All are not good for eatin' but they are&nbsp;good for cool lighting...

In Stock
[Buy Now](https://www.adafruit.com/product/5508)
[Related Guides to the Product](https://learn.adafruit.com/products/5508/guides)
![Close-up video of a pair of white hands coiling and playing with a 300mm long blue LED filament.](https://cdn-shop.adafruit.com/product-videos/640x480/5508-04.jpg)

Featured
### Monochrome 1.3" 128x64 OLED graphic display - STEMMA QT / Qwiic

[Monochrome 1.3" 128x64 OLED graphic display - STEMMA QT / Qwiic](https://www.adafruit.com/product/938)
These displays are small, only about 1.3" diagonal, but very readable due to the high contrast of an OLED display. This display is made of 128x64 individual white OLED pixels, each one is turned on or off by the controller chip. Because the display makes its own light, no backlight is...

In Stock
[Buy Now](https://www.adafruit.com/product/938)
[Related Guides to the Product](https://learn.adafruit.com/products/938/guides)
![Monochrome 1.3" OLED module with Adafruit logos falling like snow](https://cdn-shop.adafruit.com/product-videos/640x480/938-05.jpg)

Featured
### Adafruit I2C Stemma QT Rotary Encoder Breakout with Encoder

[Adafruit I2C Stemma QT Rotary Encoder Breakout with Encoder](https://www.adafruit.com/product/5880)
Rotary encoders are soooo much fun! Twist em this way, then twist them that way. Unlike potentiometers, they go all the way around and often have little detents for tactile feedback. But, if you've ever tried to add encoders to your project you know that they're a real challenge to...

In Stock
[Buy Now](https://www.adafruit.com/product/5880)
[Related Guides to the Product](https://learn.adafruit.com/products/5880/guides)
![Angled Shot of the I2C Stemma QT Rotary Encoder Breakout with Encoder.](https://cdn-shop.adafruit.com/640x480/5880-00.jpg)

Featured
### Mini Oval Speaker - 8 Ohm 1 Watt

[Mini Oval Speaker - 8 Ohm 1 Watt](https://www.adafruit.com/product/3923)
Hear the good news! This wee speaker&nbsp;is&nbsp;a&nbsp;great addition to any audio project where you need 8 ohm impedance and 1W or less of power. We particularly like this&nbsp;speaker&nbsp;as it is&nbsp;small and comes with nice skinny wires with a connector on the end. It has a handy...

In Stock
[Buy Now](https://www.adafruit.com/product/3923)
[Related Guides to the Product](https://learn.adafruit.com/products/3923/guides)
![Small, black, oval speaker with Pico Blade connector.](https://cdn-shop.adafruit.com/640x480/3923-06.jpg)

### USB Type A to Type C Cable - approx 1 meter / 3 ft long

[USB Type A to Type C Cable - approx 1 meter / 3 ft long](https://www.adafruit.com/product/4474)
As technology changes and adapts, so does Adafruit. This&nbsp;&nbsp; **USB Type A to Type C** cable will help you with the transition to USB C, even if you're still totin' around a USB Type A hub, computer or laptop.

USB C is the latest industry-standard connector for...

In Stock
[Buy Now](https://www.adafruit.com/product/4474)
[Related Guides to the Product](https://learn.adafruit.com/products/4474/guides)
![Angled shot of a coiled black, USB-C to USB-A cable.](https://cdn-shop.adafruit.com/640x480/4474-02.jpg)

### 16mm Panel Mount Momentary Pushbutton -  Burgundy

[16mm Panel Mount Momentary Pushbutton -  Burgundy](https://www.adafruit.com/product/1503)
OK, this item is pretty simple - it's a panel mount pushbutton. It's not that exciting, no LEDs, no bells & whistles. But we really like it anyways – look at that lovely rounded shape, that elegant bevel. If you're going to go with a momentary pushbutton, let it be this...

In Stock
[Buy Now](https://www.adafruit.com/product/1503)
[Related Guides to the Product](https://learn.adafruit.com/products/1503/guides)
![Angled shot of 16mm burgundy panel mount pushbutton.](https://cdn-shop.adafruit.com/640x480/1503-06.jpg)

### 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...

Out of Stock
[Buy Now](https://www.adafruit.com/product/805)
[Related Guides to the Product](https://learn.adafruit.com/products/805/guides)
![Small, black, SPDT slide switch.](https://cdn-shop.adafruit.com/640x480/805-03.jpg)

### Lithium Ion Cylindrical Battery - 3.7v 2200mAh

[Lithium Ion Cylindrical Battery - 3.7v 2200mAh](https://www.adafruit.com/product/1781)
Need a big battery for your project? This lithium-ion battery contains a 2200mAh and a protection circuit that provides over-voltage, under-voltage, and over-current protection. Yet, it is slim and easy to fit into many project cases.  
  
This cell can provide 2 **C** of...

In Stock
[Buy Now](https://www.adafruit.com/product/1781)
[Related Guides to the Product](https://learn.adafruit.com/products/1781/guides)
![Lithium Ion Cylindrical Battery - 3.7v 2200mAh with JST PH connector](https://cdn-shop.adafruit.com/640x480/1781-04.jpg)

### STEMMA QT / Qwiic JST SH 4-pin Cable - 100mm Long

quantity: 2
[STEMMA QT / Qwiic JST SH 4-pin Cable - 100mm Long](https://www.adafruit.com/product/4210)
This 4-wire cable is a little over 100mm / 4" long and fitted with JST-SH female 4-pin connectors on both ends. Compared with the chunkier JST-PH these are 1mm pitch instead of 2mm, but still have a nice latching feel, while being easy to insert and remove.

<a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/4210)
[Related Guides to the Product](https://learn.adafruit.com/products/4210/guides)
![Angled shot of STEMMA QT / Qwiic JST SH 4-pin Cable.](https://cdn-shop.adafruit.com/640x480/4210-00.jpg)

### Part: Plastic Bulb
quantity: 1
12 Pack - 5.5 Inch Long Christmas Light Bulb Ornament
[Plastic Bulb](https://www.amazon.com/gp/product/B0872MP2MD/)

### Through-Hole Resistors - 100 ohm 5% 1/4W - Pack of 25

[Through-Hole Resistors - 100 ohm 5% 1/4W - Pack of 25](https://www.adafruit.com/product/4293)
ΩMG! You're not going to be able to resist these handy resistor packs!&nbsp;Well, axially, they&nbsp;do all of the resisting for you!

This is a **25 Pack of 100Ω Resistors.** More specifically, they are **carbon film** , through-hole...

In Stock
[Buy Now](https://www.adafruit.com/product/4293)
[Related Guides to the Product](https://learn.adafruit.com/products/4293/guides)
![Angled shot of 25 Through-Hole Resistors - 100 ohm 5% 1/4W.](https://cdn-shop.adafruit.com/640x480/4293-00.jpg)

### Silicone Cover Stranded-Core Wire - 50ft 30AWG Black

[Silicone Cover Stranded-Core Wire - 50ft 30AWG Black](https://www.adafruit.com/product/3164)
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...

In Stock
[Buy Now](https://www.adafruit.com/product/3164)
[Related Guides to the Product](https://learn.adafruit.com/products/3164/guides)
![A spool of black AWG wire.](https://cdn-shop.adafruit.com/640x480/3164-01.jpg)

### Silicone Cover Stranded-Core Wire - 50ft 30AWG Red

[Silicone Cover Stranded-Core Wire - 50ft 30AWG Red](https://www.adafruit.com/product/3165)
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...

In Stock
[Buy Now](https://www.adafruit.com/product/3165)
[Related Guides to the Product](https://learn.adafruit.com/products/3165/guides)
![A spool of light red AWG wire.](https://cdn-shop.adafruit.com/640x480/3165-01.jpg)

### Silicone Cover Stranded-Core Wire - 50ft 30AWG White

[Silicone Cover Stranded-Core Wire - 50ft 30AWG White](https://www.adafruit.com/product/3169)
//www.youtube.com/embed/W85OajXuDRA
?start=10

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...

In Stock
[Buy Now](https://www.adafruit.com/product/3169)
[Related Guides to the Product](https://learn.adafruit.com/products/3169/guides)
![A spool of white AWG wire.](https://cdn-shop.adafruit.com/640x480/3169-01.jpg)

## Hardware

The following hardware is necessary for the case assembly.

- 16x M2.5 x 6mm long machine screws
- 3x M3 x 10mm long machine screws
- 2x M3 x 25mm long machine screws
- 2x M3 hex nuts

# Gravity Falls Memory Gun

## 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/129/280/medium800/3d_printing_Circuit-Diagram-V2.jpg?1712690083)

## Wired Connections

- **Slide switch** connects to **EN** an **GND** pins on **Feather**
- **Button** connects to **Btn** and **GND** pins on **Feather** &nbsp;screw-block terminals
- **Speaker** connects to&nbsp; speaker ( **+** and **–** ) pins on **Feather** &nbsp;screw-block terminals
- **LED** connects to **5V** through a **resistor** &nbsp;and **GND** pins on **Feather** screw-block terminals

## STEMMA QT Connections

- The rotary encoder connects to the OLED breakout with STEMMA QT&nbsp;
- OLED breakout connects to Feather with STEMMA QT

**Battery Power**

The Feather PropMaker RP2040 is powered with a 2200mAh LiPo battery.

# Gravity Falls Memory Gun

## Install 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)
# Gravity Falls Memory Gun

## Code the Memory Gun

![](https://cdn-learn.adafruit.com/assets/assets/000/129/717/medium800/led_strips_code-laptop.jpg?1714485076)

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/Gravity_Falls_Memory_Gun/code.py

## Upload the Code 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**
- **Arial-14.bdf**

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

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

## How the CircuitPython Code Works

The code begins by instantiating the components and pins. The `EXTERNAL_POWER` pin is setup as an output. The rotary encoder and OLED display are instantiated over I2C and the `EXTERNAL_BUTTON` is setup as a keypad object.

```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 = False

# rotary encoder
i2c = board.STEMMA_I2C()
seesaw = seesaw.Seesaw(i2c, addr=0x36)
encoder = rotaryio.IncrementalEncoder(seesaw)
last_position = 0

# oled
oled_reset = board.D9
display_bus = i2cdisplaybus.I2CDisplayBus(i2c, device_address=0x3D, reset=oled_reset)
WIDTH = 128
HEIGHT = 64
display = adafruit_displayio_ssd1306.SSD1306(display_bus, width=WIDTH, height=HEIGHT)

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

## Audio

Any audio files that you have in the **/wavs** folder are added to the `wavs` and `wav_names` arrays. `num_wavs` holds the length of the wavs array. This means that you can change up the sound effects in your project without having to edit any of the code elements.

```python
# audio!
wavs = []
wav_names = []
for filename in os.listdir('/wavs'):
    if filename.lower().endswith('.wav') and not filename.startswith('.'):
        wavs.append("/wavs/"+filename)
        wav_names.append(filename.replace('.wav', ''))
audio = audiobusio.I2SOut(board.I2S_BIT_CLOCK, board.I2S_WORD_SELECT, board.I2S_DATA)
num_wavs = len(wavs)
wav_index = 0
# function to open and play the audio files
def open_audio(num):
    n = wavs[num]
    f = open(n, "rb")
    w = audiocore.WaveFile(f)
    return w
wave = open_audio(wav_index)
audio.play(wave)
```

## Graphics

The OLED displays the sound effect names, which are stored in the `wav_names` array. There are three text elements used to show three names at a time. A `vectorio` rectangle "highlights" the center text element to select the sound effect.

```python
# make the display context
splash = displayio.Group()
display.root_group = splash
palette = displayio.Palette(1)
palette[0] = 0xFFFFFF
rect = vectorio.Rectangle(pixel_shader=palette, width=display.width, height=23, x=6, y=21)
splash.append(rect)
font = bitmap_font.load_font("/Arial-14.bdf")
color = 0xFFFFFF
text_0 = wav_names[(wav_index - 1) % num_wavs]
text_area_top_left = label.Label(font, text=text_0, color=color)
text_area_top_left.anchor_point = (0.0, 0.0)
text_area_top_left.anchored_position = (6, 0)
splash.append(text_area_top_left)

text_1 = wav_names[wav_index]
text_area_middle_left = label.Label(font, text=text_1,color=0x000000)
text_area_middle_left.anchor_point = (0.0, 0.5)
text_area_middle_left.anchored_position = (6, display.height / 2)
splash.append(text_area_middle_left)

text_2 = wav_names[(wav_index+1) % num_wavs]
text_area_bottom_left = label.Label(font, text=text_2, color=color)
text_area_bottom_left.anchor_point = (0.0, 1.0)
text_area_bottom_left.anchored_position = (6, display.height)
splash.append(text_area_bottom_left)
```

## The Loop

In the loop, the `switch.events.get()` is used to listen for any button input from the trigger button. `position` holds the value of the rotary encoder. When you rotate the encoder, the `wav_index` value increases or decreases. The `wav_index` determines the selected sound effect file and the highlighted sound effect name on the OLED.

```python
event = switch.events.get()
position = encoder.position
if position != last_position:
  if position > last_position:
      wav_index = (wav_index + 1) % num_wavs
  else:
      wav_index = (wav_index - 1) % num_wavs
      text_area_top_left.text = wav_names[(wav_index-1) % num_wavs]
      text_area_middle_left.text = wav_names[wav_index]
      text_area_bottom_left.text = wav_names[(wav_index+1) % num_wavs]
      last_position = position
```

When the trigger button is pressed, the `EXTERNAL_POWER` pin value is `True`. This lights up the nOOd LED. The selected sound is opened and played thru the I2S amp. When the button is released, the `EXTERNAL_POWER` pin is `False`, turning off the nOOd and audio playback.

```python
if event:
	if event.pressed:
      external_power.value = True
      wave = open_audio(wav_index)
      audio.play(wave)
    if event.released:
      external_power.value = False
```

# Gravity Falls Memory Gun

## 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.

![3d_printing_3d-parts-dark.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/391/medium640/3d_printing_3d-parts-dark.jpg?1713278959)

![3d_printing_3d-parts-light.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/394/medium640/3d_printing_3d-parts-light.jpg?1713279580)

[Download STLs](https://cdn-learn.adafruit.com/assets/assets/000/129/640/original/STLs.zip?1714062128)
[Download CAD source](https://cdn-learn.adafruit.com/assets/assets/000/129/641/original/CAD.zip?1714062143)
## Build Volume

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

- 150mm (X) x 150mm (Y) x 80mm (Z)

![3d_printing_cura-slice.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/637/medium640/3d_printing_cura-slice.jpg?1714060914)

## Build Plate Adhesion

For best bed adhesion, apply a brim (6 line count) to the canister halves. This ensures the thin parts will stay on the build plate while 3D printing.

![3d_printing_slice-brims.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/638/medium640/3d_printing_slice-brims.jpg?1714061099)

## Translucent Filaments

The LED noodle holder is 3D printed using clear translucent PLA filament to allow best illumination from the LED noodle.

The shield is 3D printed using translucent red/pink PLA filament to best resemble the prop from the TV show.

![3d_printing_slice-trans.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/654/medium640/3d_printing_slice-trans.jpg?1714073039)

## PLA Filament

These filaments were used for the gold and dark bronze colored parts.

- [Polymaker GOLD PLA PRO 1.75mm](https://www.amazon.com/gp/product/B0B8HY63WY/)
- [ProtoPasta Metallic Brown PLA 1.75mm](https://proto-pasta.com/collections/all/products/double-espresso-metallic-brown-htpla)

![3d_printing_PLA-filaments.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/667/medium640/3d_printing_PLA-filaments.jpg?1714141490)

## SVG Files

Vector files are available for the **handle grips** and **blaster shield** parts. The handle grips can be made using a vinyl cutter using desired material. The shield can optionally be made using a laser cutter or CNC milling machine.

[SVGs.zip](https://cdn-learn.adafruit.com/assets/assets/000/129/677/original/SVGs.zip?1714392460)
## 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/).

![3d_printing_5768-Feather-RP2040-PropMaker.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/668/medium640/3d_printing_5768-Feather-RP2040-PropMaker.jpg?1714141559)

# Gravity Falls Memory Gun

## Wiring

## LED Noodle Wiring

Make two wires that are 7.5 inches (19cm) in length, preferably in red and black colors.

Trim the leads from the 100 Ohm resistor so they're short.

Solder the black wire to the resistor, then solder the resistor to the cathode pin on the LED Noodle (no hole end).

Solder the red wire to the LED's anode pin (the one with the hole).&nbsp;

![3d_printing_LED-anode.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/551/medium640/3d_printing_LED-anode.jpg?1714048844)

![3d_printing_LED-resistor.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/552/medium640/3d_printing_LED-resistor.jpg?1714048858)

## Wired LED Noodle

Take a moment to ensure the wires and resistor has been properly soldered to the LED noodle.

![3d_printing_LED-wired.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/553/medium640/3d_printing_LED-wired.jpg?1714048871)

## Wiring Button

Make two wires that are 8 inches (20cm) in length, preferably in white and black colored wires.

Solder the white wire to either of the two leads on the button.

Solder the black wire to the remaining lead on the button.

![3d_printing_button-wiring.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/554/medium640/3d_printing_button-wiring.jpg?1714048885)

## Wired Button

Take a moment to ensure the wires have been properly wired to the leads of the button.

![3d_printing_button-wired.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/555/medium640/3d_printing_button-wired.jpg?1714048904)

## Slide Switch Wiring

Create two wires that are 2.5 inches (6cm) in length. These can both be in black.

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.

![3d_printing_switch-wiring.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/559/medium640/3d_printing_switch-wiring.jpg?1714049005)

## Wire Switch to Feather

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

![3d_printing_feather-switch-wiring.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/556/medium640/3d_printing_feather-switch-wiring.jpg?1714048918)

## Wired Slide Switch & Feather

Take a moment to ensure the wires from the slide switch has been properly soldered to the pins on the bottom of the Feather.

![3d_printing_feather-switch-wired.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/557/medium640/3d_printing_feather-switch-wired.jpg?1714048934)

## Speaker Wiring

Cut off the connector from the speaker. Using wire stripper, remove a bit of insulation from each wire.

Tin the exposed wires by adding a bit of solder.

![3d_printing_speaker-wiring.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/561/medium640/3d_printing_speaker-wiring.jpg?1714049452)

## Speaker

Take a moment to ensure the wires have been tinned.&nbsp;&nbsp;

![3d_printing_speaker-wired.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/562/medium640/3d_printing_speaker-wired.jpg?1714049464)

# Gravity Falls Memory Gun

## Assembly

## Installing Battery

Get the **2200 mAh battery** and **Handle B** ready.

Orient the battery so the cable is upright.

Then, place the battery onto the built-in clips on the half of the handle.

![3d_printing_handle-bat-parts.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/560/medium640/3d_printing_handle-bat-parts.jpg?1714049431)

## Installing Button

Get the wired push button ready.

Insert the included hex nut to the body of the push button.

Place the push button into the designated spot on the **Handle B** part.

Ensure the hex nut is tightened to the wall of the 3D printed part.

Position the battery and button wires through the opening near the top of the part.

![3d_printing_handle-button-parts.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/563/medium640/3d_printing_handle-button-parts.jpg?1714049523)

![3d_printing_handle-bat-button-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/564/medium640/3d_printing_handle-bat-button-installed.jpg?1714049542)

## Close Handle Halves

Fit and join the other half of the handle with the battery and button wires fitted through the opening.

![3d_printing_handle-cables.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/565/medium640/3d_printing_handle-cables.jpg?1714049572)

## Secure Handle

Use 3x&nbsp; M3 x 10mm long machine screws to secure the two halves of the handle together.

![3d_printing_handle-screws.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/567/medium640/3d_printing_handle-screws.jpg?1714049604)

![3d_printing_handle-havles-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/568/medium640/3d_printing_handle-havles-installing.jpg?1714049619)

## OLED Screen Cover

Use 4x M2.5 x 6mm long screws to secure the OLED PCB to the Screen Cover.

Orient the OLED PCB with the 3D printed screen cover.

![3d_printing_OLED-cover.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/571/medium640/3d_printing_OLED-cover.jpg?1714049740)

## Secure OLED to Cover

Place the OLED over the screen covers built-in standoffs with the mounting holes lined up.

Insert and fasten the M2.5 machine screws to secure the OLED to the screen cover.

![3d_printing_OLED-cover-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/572/medium640/3d_printing_OLED-cover-installing.jpg?1714049765)

![3d_printing_OLED-cover-secured.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/573/medium640/3d_printing_OLED-cover-secured.jpg?1714049775)

## Rotary & OLED Cases

Get the 3D printed rotary encoder breakout and OLED cases ready.

![3d_printing_rotary-screen-case-screws.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/574/medium640/3d_printing_rotary-screen-case-screws.jpg?1714049797)

## Secure Rotary & OLED Cases

Position the rotary and OLED cases so the mounting holes are lined up correctly.

Insert the rotary case into the OLED case.

Use the M2.5 machine screws to secure the two parts together.

![3d_printing_rotary-screen-case-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/575/medium640/3d_printing_rotary-screen-case-installing.jpg?1714049842)

![3d_printing_rotary-screen-case-secure.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/576/medium640/3d_printing_rotary-screen-case-secure.jpg?1714049862)

## PCB Mount Hardware

Get the various 3D printed parts ready. Use M3 x 20mm long machine screws to secure these parts together.

- PCB Mount
- PCB Standoff
- Canister A
- Canister Coupler

![3d_printing_pcb-mount-parts.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/577/medium640/3d_printing_pcb-mount-parts.jpg?1714049878)

## PCB Mount Installation

Insert the two M3 machine screws through the PCB mount and the PCB standoff.

Place the Canister A part through the threads of the M3 screws.

Ensure the orientation of the parts match the assembly photo.

![3d_printing_pcb-mount-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/578/medium640/3d_printing_pcb-mount-install.jpg?1714049905)

![3d_printing_pcb-mount-install-2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/579/medium640/3d_printing_pcb-mount-install-2.jpg?1714049916)

## Install Canister Coupler

Place the Canister Coupler onto the flat side of the Canister A part.

Ensure the M3 screw threads are going through the couplers mounting holes.

![3d_printing_pcb-mount-install-3.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/580/medium640/3d_printing_pcb-mount-install-3.jpg?1714049952)

## Attach Coupler to OLED Casing

Begin placing the Canister Coupler onto the side of the OLED case with the M3 screws fitted through the mounting holes.

Ensure the parts orientation are matching the assembly photo.

![3d_printing_can-screen-case-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/581/medium640/3d_printing_can-screen-case-install.jpg?1714050000)

## Secure Coupler

Use two M3 hex nuts to secure the Canister subassembly to the OLED casing.

![3d_printing_can-screen-case-install-2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/583/medium640/3d_printing_can-screen-case-install-2.jpg?1714050054)

![3d_printing_can-screen-case-install-3.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/584/medium640/3d_printing_can-screen-case-install-3.jpg?1714050065)

## Install LED Noodle to Holder

Get the wired LED noodle and LED noodle holder ready.

Press the noodle into the channel of the LED noodle holder.

Ensure the length of the LED noodle is equally divided in half on the 3D printed holder.

![3d_printing_LED-holder.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/585/medium640/3d_printing_LED-holder.jpg?1714050098)

![3d_printing_LED-holder-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/586/medium640/3d_printing_LED-holder-installing.jpg?1714050117)

## Bulb & Coupler

Get the plastic bulb and 3D printed bulb coupler ready.

[Plastic bulbs can be purchased here.](https://www.amazon.com/gp/product/B0872MP2MD/)

![3d_printing_LED-bulb-parts.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/587/medium640/3d_printing_LED-bulb-parts.jpg?1714050135)

## Install LED Holder to Bulb

Fit the 3D printed LED holder into the plastic bulb. Push the holder all the way through the plastic bulb.

![3d_printing_LED-bulb-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/636/medium640/3d_printing_LED-bulb-install.jpg?1714056350)

## Install Shield & Coupler

Fit the 3D printed shield onto the thread of the plastic bulb.

Thread the LED wires through the bulb coupler, then fasten the 3D printed coupler onto the thread of the plastic bulb.

![3d_printing_shield-bulb-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/588/medium640/3d_printing_shield-bulb-install.jpg?1714050179)

![3d_printing_bulb-coupler-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/589/medium640/3d_printing_bulb-coupler-install.jpg?1714050198)

## LED Noodle Assembly

Ensure the coupler has been tightened onto the shield and plastic bulb.

![3d_printing_LED-bulb-coupler-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/590/medium640/3d_printing_LED-bulb-coupler-installed.jpg?1714050231)

## Install Speaker

Peel the off the protective layer from the face of the speaker.

Position the speaker so it's facing the slit inside the OLED case.

Firmly press the speaker onto the inside of the OLED case to stick it in place.

![3d_printing_speaker-screen-case-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/591/medium640/3d_printing_speaker-screen-case-installing.jpg?1714050263)

![3d_printing_speaker-screen-case-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/592/medium640/3d_printing_speaker-screen-case-installed.jpg?1714050281)

## Install Speaker Cable

Thread the speaker cable through the hole inside OLED case.

Pull the speaker cable through the canister coupler, PCB standoff and PCB mount.

![3d_printing_speaker-wire-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/593/medium640/3d_printing_speaker-wire-install.jpg?1714050299)

![3d_printing_speaker-wire-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/594/medium640/3d_printing_speaker-wire-installed.jpg?1714050314)

## Install LED Assembly

Begin joining the bulb coupler to the rotary case.

Insert the LED noodle wires through the hole in the rotary case.

Pull the LED noodle wires through the rotary case and out of the OLED case.

![3d_printing_bulb-rotary-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/595/medium640/3d_printing_bulb-rotary-installing.jpg?1714050329)

![3d_printing_led-rotary-wire-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/596/medium640/3d_printing_led-rotary-wire-installing.jpg?1714050347)

## Install Bulb to Rotary Case

Press fit the bulb coupler into the hole of the rotary case.

Thread and pull the LED wires through the canister coupler, PCB standoff, and PCB mount.

![3d_printing_bulb-coupler-rotary-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/598/medium640/3d_printing_bulb-coupler-rotary-install.jpg?1714050365)

![3d_printing_led-rotary-wire-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/599/medium640/3d_printing_led-rotary-wire-installed.jpg?1714050379)

## Install STEMMA QT to OLED

Connect the STEMMA QT to the OLED breakout.

&nbsp;

![3d_printing_rotary-stemma-cable.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/600/medium640/3d_printing_rotary-stemma-cable.jpg?1714050452)

## Installing Rotary Cable

Insert the STEMMA QT cable from the rotary encoder through the slot opening in the rotary case and pull it through the OLED case.

Place the rotary encoder breakout onto the rotary case's built-in standoffs and line up the mounting holes.

![3d_printing_rotary-cable-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/601/medium640/3d_printing_rotary-cable-installing.jpg?1714050473)

![3d_printing_rotary-case-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/602/medium640/3d_printing_rotary-case-install.jpg?1714050483)

## Secure Rotary

Use four M2.5 x 6mm long machine screws to secure the rotary encoder STEMMA QT breakout to the built-in standoffs.

![3d_printing_rotary-case-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/603/medium640/3d_printing_rotary-case-installing.jpg?1714050503)

![3d_printing_rotary-case-secured.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/604/medium640/3d_printing_rotary-case-secured.jpg?1714050518)

## Install Handle Cables

Begin joining the handle subassembly to the OLED case.

Insert and pull the battery cable and button wires through the hole on the OLED case.

![3d_printing_handle-cables-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/605/medium640/3d_printing_handle-cables-install.jpg?1714050561)

## Secure Handle

Fit the handle subassembly in between the mounting tabs on the OLED case.

Position the handle so the mounting holes are lined up with the mounting tabs on the OLED case.

Use four M2.5mm x 6mm long machine screws to secure the handle subassembly to the OLED case.

![3d_printing_handle-screen-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/606/medium640/3d_printing_handle-screen-installing.jpg?1714050716)

![3d_printing_handle-screen-secure.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/607/medium640/3d_printing_handle-screen-secure.jpg?1714050726)

## PCB Mount Handle Cables

Insert and pull the battery cable and button wires through the hole in the canister coupler, PCB standoff and PCB mount.

![3d_printing_handle-screen-wires.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/608/medium640/3d_printing_handle-screen-wires.jpg?1714050751)

## OLED STEMMA QT

Connect the second STEMMA QT cable to the port on the left of the OLED breakout.

Connect the STEMMA QT cable from the rotary encoder to the port on the right of the OLED breakout.

![3d_printing_oled-stemma-cable.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/609/medium640/3d_printing_oled-stemma-cable.jpg?1714050797)

![3d_printing_oled-rotary-stemma-connect.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/610/medium640/3d_printing_oled-rotary-stemma-connect.jpg?1714050813)

## PCB Mount OLED Cable

Insert and pull the STEMMA QT cable through the canister coupler, PCB standoff and PCB mount.

![3d_printing_oled-stemma-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/611/medium640/3d_printing_oled-stemma-install.jpg?1714050889)

## Install OLED Cover

Firmly press the OLED cover onto the OLED casing to snap fit them together.

Ensure the OLED cover is oriented correctly with the OLED case.

![3d_printing_oled-screen-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/612/medium640/3d_printing_oled-screen-install.jpg?1714050909)

## Install Switch

Fit the slide switch onto the PCB mount.

The body of the slide switch should fit in between the two standoffs.

![3d_printing_switch-pcb-mount-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/613/medium640/3d_printing_switch-pcb-mount-install.jpg?1714050931)

## Connect Battery

Plug in the battery cable into the battery port on the Feather.

![3d_printing_bat-feather-connect.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/614/medium640/3d_printing_bat-feather-connect.jpg?1714050953)

## Connect STEMMA QT Cable

Plug in the STEMMA QT cable onto the STEMMA QT port on the Feather.

![3d_printing_stemma-feather-connect.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/615/medium640/3d_printing_stemma-feather-connect.jpg?1714050968)

## Connect Speaker Cable

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

Use a small flat head screwdriver to secure the wires to the Feather screw-block terminals.

![3d_printing_speaker-feather-connect.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/616/medium640/3d_printing_speaker-feather-connect.jpg?1714050985)

## Connect Button

Insert one of the wires from the button to the designated button pin on the Feather screw-block terminal.

Secure the wire to the screw-block terminal.

![3d_printing_button-feather-connect.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/617/medium640/3d_printing_button-feather-connect.jpg?1714051049)

## Connect LED

Insert the anode wire from the LED noodle to the designated 5V pin on the Feather screw-block terminal.

Secure the wire to the screw-block terminal.

![3d_printing_led-feather-connect.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/618/medium640/3d_printing_led-feather-connect.jpg?1714051131)

## Connect Ground Wires

Insert the ground wire from the button and LED noodle to the designated ground pin on the Feather's screw-block terminal.

Secure the two wires to the screw-block terminal.

![3d_printing_gnd-feather-connect.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/619/medium640/3d_printing_gnd-feather-connect.jpg?1714051221)

## Secure Feather to PCB Mount

Place the Feather onto the PCB mount's standoffs.

Use two M2.5 x 6mm long machine screws to secure the Feather to the PCB mount.

![3d_printing_feather-mount-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/620/medium640/3d_printing_feather-mount-installing.jpg?1714051295)

![3d_printing_feather-mount-secure.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/621/medium640/3d_printing_feather-mount-secure.jpg?1714051311)

## Secured Feather

Take a moment to ensure the Feather has been properly secured to the PCB Mount.

![3d_printing_feather-secured.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/622/medium640/3d_printing_feather-secured.jpg?1714051329)

## Install Canister Cover

Snap fit the Canister B part onto Canister A.

![3d_printing_can-cover-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/623/medium640/3d_printing_can-cover-install.jpg?1714051351)

## Canister Topper

Use a single M3 x 6mm long screw to secure the two canister top pieces together.

![3d_printing_can-top-parts.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/569/medium640/3d_printing_can-top-parts.jpg?1714049648)

![3d_printing_can-top-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/570/medium640/3d_printing_can-top-installing.jpg?1714049707)

## Install Canister Topper

Press the canister topper over the two canister halves.

![3d_printing_can-top-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/624/medium640/3d_printing_can-top-install.jpg?1714051383)

![3d_printing_can-cover-top-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/625/medium640/3d_printing_can-cover-top-installed.jpg?1714051392)

## Install Canister Bottom Cover

Orient the canister bottom cover with the Feather USB-C port and the slide switch.

Press the canister bottom cover under the two canister halves.

![3d_printing_can-bottom-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/626/medium640/3d_printing_can-bottom-install.jpg?1714051417)

![3d_printing_can-bottom-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/627/medium640/3d_printing_can-bottom-installed.jpg?1714051427)

## Install Rotary Cover

Orient the rotary cover with the rotary case so the snap fit parts are lined up.

Firmly press the rotary cover onto the rotary case.

![3d_printing_rotary-cover-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/628/medium640/3d_printing_rotary-cover-install.jpg?1714051444)

![3d_printing_rotary-cover-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/629/medium640/3d_printing_rotary-cover-installed.jpg?1714051457)

## Install Rotary Knob

Orient the knob with the shaft of the rotary encoder.

Press fit the 3D printed knob onto the shaft of the rotary encoder.

![3d_printing_rotary-knob-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/630/medium640/3d_printing_rotary-knob-install.jpg?1714051467)

![3d_printing_rotary-knob-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/631/medium640/3d_printing_rotary-knob-installed.jpg?1714051499)

## OLED Test

Use the slide switch to power on the Feather. The OLED will display the audio wave file names.

![3d_printing_OELD-power-test.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/633/medium640/3d_printing_OELD-power-test.jpg?1714051517)

## Final Build

Congratulations on your build!

To charge the battery, use a 5V 1A USB power supply.&nbsp;

![3d_printing_final-build.jpg](https://cdn-learn.adafruit.com/assets/assets/000/129/634/medium640/3d_printing_final-build.jpg?1714051547)

## Usage

Use the slide slide to power the Feather on and off.

Turn the rotary dial to cycle through the list of audio files.

Press the pushbutton to play the highlight audio file and light up the LED.

The LED will stay lit while pressing the push button.

![led_strips_usage-loop.gif](https://cdn-learn.adafruit.com/assets/assets/000/129/713/medium640thumb/led_strips_usage-loop.jpg?1714483872)


## Guide 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)
### nOOds - Flexible LED Filament - 3V 300mm long - Blue

[nOOds - Flexible LED Filament - 3V 300mm long - Blue](https://www.adafruit.com/product/5508)
Our favorite food when hacking on code or electronics is a hot bowl of noodles - and around NYC these are often called 'noods'! What we've got here are flexible LED noodles, in different lengths and colors. All are not good for eatin' but they are&nbsp;good for cool lighting...

In Stock
[Buy Now](https://www.adafruit.com/product/5508)
[Related Guides to the Product](https://learn.adafruit.com/products/5508/guides)
### Monochrome 1.3" 128x64 OLED graphic display - STEMMA QT / Qwiic

[Monochrome 1.3" 128x64 OLED graphic display - STEMMA QT / Qwiic](https://www.adafruit.com/product/938)
These displays are small, only about 1.3" diagonal, but very readable due to the high contrast of an OLED display. This display is made of 128x64 individual white OLED pixels, each one is turned on or off by the controller chip. Because the display makes its own light, no backlight is...

In Stock
[Buy Now](https://www.adafruit.com/product/938)
[Related Guides to the Product](https://learn.adafruit.com/products/938/guides)
### Adafruit I2C Stemma QT Rotary Encoder Breakout with Encoder

[Adafruit I2C Stemma QT Rotary Encoder Breakout with Encoder](https://www.adafruit.com/product/5880)
Rotary encoders are soooo much fun! Twist em this way, then twist them that way. Unlike potentiometers, they go all the way around and often have little detents for tactile feedback. But, if you've ever tried to add encoders to your project you know that they're a real challenge to...

In Stock
[Buy Now](https://www.adafruit.com/product/5880)
[Related Guides to the Product](https://learn.adafruit.com/products/5880/guides)
### Mini Oval Speaker - 8 Ohm 1 Watt

[Mini Oval Speaker - 8 Ohm 1 Watt](https://www.adafruit.com/product/3923)
Hear the good news! This wee speaker&nbsp;is&nbsp;a&nbsp;great addition to any audio project where you need 8 ohm impedance and 1W or less of power. We particularly like this&nbsp;speaker&nbsp;as it is&nbsp;small and comes with nice skinny wires with a connector on the end. It has a handy...

In Stock
[Buy Now](https://www.adafruit.com/product/3923)
[Related Guides to the Product](https://learn.adafruit.com/products/3923/guides)
### USB Type A to Type C Cable - approx 1 meter / 3 ft long

[USB Type A to Type C Cable - approx 1 meter / 3 ft long](https://www.adafruit.com/product/4474)
As technology changes and adapts, so does Adafruit. This&nbsp;&nbsp; **USB Type A to Type C** cable will help you with the transition to USB C, even if you're still totin' around a USB Type A hub, computer or laptop.

USB C is the latest industry-standard connector for...

In Stock
[Buy Now](https://www.adafruit.com/product/4474)
[Related Guides to the Product](https://learn.adafruit.com/products/4474/guides)
### 16mm Panel Mount Momentary Pushbutton -  Burgundy

[16mm Panel Mount Momentary Pushbutton -  Burgundy](https://www.adafruit.com/product/1503)
OK, this item is pretty simple - it's a panel mount pushbutton. It's not that exciting, no LEDs, no bells & whistles. But we really like it anyways – look at that lovely rounded shape, that elegant bevel. If you're going to go with a momentary pushbutton, let it be this...

In Stock
[Buy Now](https://www.adafruit.com/product/1503)
[Related Guides to the Product](https://learn.adafruit.com/products/1503/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...

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

## Related Guides

- [Adafruit I2C QT Rotary Encoder](https://learn.adafruit.com/adafruit-i2c-qt-rotary-encoder.md)
- [Adafruit nOOds Überguide](https://learn.adafruit.com/noods-uberguide.md)
- [Adafruit RP2040 Prop-Maker Feather](https://learn.adafruit.com/adafruit-rp2040-prop-maker-feather.md)
- [Talking Computer from Star Trek](https://learn.adafruit.com/talking-computer-from-star-trek.md)
- [No-Code DS18B20 Temperature Sensor with WipperSnapper](https://learn.adafruit.com/using-ds18b20-temperature-sensor-with-wippersnapper.md)
- [Arcade Fightstick](https://learn.adafruit.com/arcade-fightstick.md)
- [MX MIDI Guitar](https://learn.adafruit.com/mx-midi-guitar.md)
- [Raspberry Pi Rotary Encoder Animated Gif Player](https://learn.adafruit.com/python-rotary-animated-gif-player-two-different-ways.md)
- [Light Up Prop with Prop-Maker](https://learn.adafruit.com/prop-maker-light-wand.md)
- [No-Code Indoor Air Quality Monitor with Separate Display](https://learn.adafruit.com/no-code-indoor-air-quality-monitor-with-separate-display.md)
- [Motion Sensor Bat](https://learn.adafruit.com/motion-sensor-bat.md)
- [No-Code IoT Soil Sensor](https://learn.adafruit.com/soil-node.md)
- [xLights for Sparkle Motion Board](https://learn.adafruit.com/xlights-for-sparkle-motion-board.md)
- [USB MIDI Host2Host](https://learn.adafruit.com/usb-midi-host2host.md)
- [Star Illusion: Laser Cut Audio-Reactive Light with WLED](https://learn.adafruit.com/star-illusion-laser-cut-audio-reactive-light-with-wled.md)
- [PyBadge Conference Badge With Unicode Fonts](https://learn.adafruit.com/pybadge-conference-badge-multi-language-unicode-fonts.md)
- [No-Code Snowfall Tracker with WipperSnapper and Adafruit IO](https://learn.adafruit.com/no-code-snow-tracker-with-wippersnapper-and-adafruit-io.md)
- [PowerWash Simulator Nozzle Controller](https://learn.adafruit.com/powerwash-simulator-nozzle-controller.md)
