# Adabot Toy Robot Friend

## Overview

https://www.youtube.com/watch?v=Im_aNMb1gsA

![](https://cdn-learn.adafruit.com/assets/assets/000/122/473/medium800/3d_printing_hero-hold-red.jpg?1689077799)

Make your very own robot friend...You can build your own animatronic Adabot with the Adafruit RP2040 PropMaker Feather. It features a servo-controlled head, neopixel LEDs, sound effects, and poseable limbs!

Adabot's head rotates randomly while the mouth lights up. Press the button to trigger randomly selected quotes from Circuit Playground Episodes. When Adabot is laid on it's back, the servo stops to act as a "sleep" mode.

![3d_printing_hero-arms.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/476/medium640/3d_printing_hero-arms.jpg?1689078151)

3D print the parts to build your own! This guide covers coding the Adafruit RP2040 PropMaker Feather, wiring the components, and assembling.

![3d_printing_hero-sharpie.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/455/medium640/3d_printing_hero-sharpie.jpg?1689015941)

## Parts from Adafruit
### 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)

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

### NeoPixel Stick - 8 x 5050 RGB LED with Integrated Drivers

[NeoPixel Stick - 8 x 5050 RGB LED with Integrated Drivers](https://www.adafruit.com/product/1426)
Make your own little LED strip arrangement with this stick of NeoPixel LEDs. We crammed 8 of the tiny 5050 (5mm x 5mm) smart RGB LEDs onto a PCB with mounting holes and a chainable design. Use only one microcontroller pin to control as many as you can chain together! Each LED is addressable as...

Out of Stock
[Buy Now](https://www.adafruit.com/product/1426)
[Related Guides to the Product](https://learn.adafruit.com/products/1426/guides)
![NeoPixel Stick with 8 x 5050 RGB LED ](https://cdn-shop.adafruit.com/640x480/1426-05.jpg)

### Micro servo

[Micro servo](https://www.adafruit.com/product/169)
Tiny little servo can rotate approximately 180 degrees (90 in each direction) and works just like the standard kinds you're used to but _smaller_. You can use any servo code, hardware, or library to control these servos. Good for beginners who want to make stuff move without...

Out of Stock
[Buy Now](https://www.adafruit.com/product/169)
[Related Guides to the Product](https://learn.adafruit.com/products/169/guides)
![Micro servo with three pin cable](https://cdn-shop.adafruit.com/640x480/169-06.jpg)

### 16mm Panel Mount Momentary Pushbutton -  Yellow

[16mm Panel Mount Momentary Pushbutton -  Yellow](https://www.adafruit.com/product/1502)
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/1502)
[Related Guides to the Product](https://learn.adafruit.com/products/1502/guides)
![Angled shot of 16mm yellow panel mount pushbutton.](https://cdn-shop.adafruit.com/640x480/1502-05.jpg)

### Lithium Ion Polymer Battery - 3.7v 500mAh

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

Out of Stock
[Buy Now](https://www.adafruit.com/product/1578)
[Related Guides to the Product](https://learn.adafruit.com/products/1578/guides)
![Angled shot of a Lithium Ion Polymer Battery 3.7V 500mAh with JST-PH connector.](https://cdn-shop.adafruit.com/640x480/1578-03.jpg)

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

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

### Part: 2-pin Cable Molex Connector
quantity: 1
40cm long - Molex PicoBlade Compatible
[2-pin Cable Molex Connector](https://www.adafruit.com/product/4720)

### Part: M2.5 Nylon Hardware Kit
quantity: 1
Black Nylon Machine Screw and Stand-off Set – M2.5 Thread
[M2.5 Nylon Hardware Kit](https://www.adafruit.com/product/3299)

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

## Additional Parts&nbsp;
### Part: Neodymium Magnets
quantity: 4
D42 1/4" dia. x 1/8" thick
[Neodymium Magnets](https://www.kjmagnetics.com/proddetail.asp?prod=d42)

### Part: M2 Hardware Kit
quantity: 1
320PCS M2 Male Female Nylon Hex Spacer Standoff Screw Nut Assorted Assortment Kit
[M2 Hardware Kit](https://www.amazon.com/gp/product/B07D78PFQL/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1)

### Part: M2.5 Steel Screws
quantity: 2
M2.5 x 5mm long button head screws
[M2.5 Steel Screws](https://www.mcmaster.com/92000A103/)

# Adabot Toy Robot Friend

## 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.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/324/medium640/3d_printing_3d-parts.jpg?1688670128)

[Download STLs.zip](https://cdn-learn.adafruit.com/assets/assets/000/122/464/original/STLs.zip?1689018088)
[Download CAD source](https://cdn-learn.adafruit.com/assets/assets/000/122/465/original/CAD.zip?1689018339)
## Part Copies

The following parts require multiple copies.

- 2x Antenna
- 2x Arm Half A
- 2x Arm Half B
- 2x Arm Joint
- 2x Claw
- 2x Ear Cap
- 2x Foot
- 2x Leg Joint
- 2x Leg
- 2x Pupil

![3d_printing_part-copies.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/463/medium640/3d_printing_part-copies.jpg?1689017896)

## Build Volume

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

- 74mm (X) x 66mm (Y) x 48mm (Z)

![3d_printing_cura-slicer.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/459/medium640/3d_printing_cura-slicer.jpg?1689016977)

## Color Filament

For best illumination, we suggest printing the **mouth** piece in a while PLA filament.

![3d_printing_mouth-filament.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/461/medium640/3d_printing_mouth-filament.jpg?1689017420)

## 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/122/462/medium640/3d_printing_5768-Feather-RP2040-PropMaker.jpg?1689017572)

# Adabot Toy Robot Friend

## 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/122/212/medium800/3d_printing_Circuit-Diagram-V2.jpg?1688130091)

## Wired Connections

- The NeoPixel stick, button, and speaker are each connected to pins on the screw block terminal.
- The slide switch is connected to the EN and GND pins on the Feather.
- The micro servo connects to the servo header pins on the Feather.
- A 500mAh battery is connected to the battery port on the Feather.

&nbsp;

# Adabot Toy Robot Friend

## 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)
# Adabot Toy Robot Friend

## Coding Adabot

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/Adabot_RP2040_Prop-Maker_Feather/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&nbsp; **CIRCUITPY**. Unzip the folder and copy the following items to the RP2040 Prop-Maker Feather's&nbsp; **CIRCUITPY** &nbsp;drive.&nbsp;

- **lib** &nbsp;folder
- **WAVs** folder
- **code.py**

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

![CIRCUITPY](https://adafruit.github.io/Adafruit_Learning_System_Guides/Adabot_RP2040_Prop-Maker_Feather.png )

## How the CircuitPython Code Works

The code begins by enabling the `EXTERNAL_POWER` pin on the Feather. This pin enables power to all of the external components. Next, the onboard LIS3DH accelerometer is instantiated over I2C and the `EXTERNAL_BUTTON` pin is setup as an input.

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

i2c = board.I2C()
int1 = DigitalInOut(board.ACCELEROMETER_INTERRUPT)
lis3dh = adafruit_lis3dh.LIS3DH_I2C(i2c, int1=int1)
lis3dh.range = adafruit_lis3dh.RANGE_2_G

switch = DigitalInOut(board.EXTERNAL_BUTTON)
switch.direction = Direction.INPUT
switch.pull = Pull.UP
switch_state = False
```

## Audio!

Next is getting the audio ready. All of the audio files are in a folder called **WAVs**. These file names are added to the `wavs` array. The onboard I2S amp is being used for audio playback along with a `Mixer`. The `Mixer` lets you control playback and volume level in software.

Note: to make your own compatible wav files, [check out this guide](https://learn.adafruit.com/microcontroller-compatible-audio-file-conversion).

The `open_audio()` function is used in the main loop to play a random audio file from the **WAVs** folder. You'll pass a track number to the function, which will return an opened `WaveFile` to play through the `Mixer`.

```python
wavs = []
for filename in os.listdir('/WAVs'):
    if filename.lower().endswith('.wav') and not filename.startswith('.'):
        wavs.append("/WAVs/"+filename)

audio = audiobusio.I2SOut(board.I2S_BIT_CLOCK, board.I2S_WORD_SELECT, board.I2S_DATA)
mixer = audiomixer.Mixer(voice_count=1, sample_rate=22050, channel_count=1,
                         bits_per_sample=16, samples_signed=True, buffer_size=32768)

mixer.voice[0].level = 1
track_number = 0
wav_filename = wavs[track_number]
wav_file = open(wav_filename, "rb")
wave = audiocore.WaveFile(wav_file)
audio.play(mixer)
mixer.voice[0].play(wave)

def open_audio(num):
    n = wavs[num]
    f = open(n, "rb")
    w = audiocore.WaveFile(f)
    return w
```

## Lights!

The NeoPixel stick is attached to the `EXTERNAL_NEOPIXELS` terminal block pin. The NeoPixels are using the LED Animations library to show fancy effects. `LARSON` is a modified `Comet` animation to mimic a Larson scanner effect and `Pulse` shows a calming blink that fades in and out.

```python
PIXEL_PIN = board.EXTERNAL_NEOPIXELS
NUM_PIXELS = 8
ORDER = neopixel.GRB
BRIGHTNESS = 0.6

PIXELS = neopixel.NeoPixel(PIXEL_PIN, NUM_PIXELS, auto_write=False,
                           pixel_order=ORDER)
LARSON = Comet(PIXELS, bounce=True, speed=0.6/NUM_PIXELS,
               tail_length=NUM_PIXELS//2,
               color=(RED[0] * BRIGHTNESS,
                      RED[1] * BRIGHTNESS,
                      RED[2] * BRIGHTNESS))
pulse = Pulse(PIXELS, speed=0.1, color=BLUE, period=3)
```

## Movement!

A servo motor is plugged into the `EXTERNAL_SERVO` header. It uses PWM to move.

```python
SERVO_PIN = board.EXTERNAL_SERVO
PWM = pwmio.PWMOut(SERVO_PIN, duty_cycle=2 ** 15, frequency=50)
SERVO = servo.Servo(PWM)
```

## Variables and Time

The **adafruit\_ticks** library is used for non-blocking time tracking in the loop. A few Boolean states are used to track various modes in the loop.

```python
SERVO.angle = POSITION = NEXT_POSITION = 90
MOVING = False
START_TIME = ticks_ms()
DURATION = 1000

adabot_talk = False

clock = ticks_ms()
prop_time = 1000
adabot_nap = False
```

## Adabot Speaks

Right before the loop, Adabot says hello. While the `Mixer` is playing audio, the NeoPixel mouth shows the `LARSON` animation in `RED`.

```python
mixer.voice[0].play(wave)
while mixer.playing:
    LARSON.animate()
```

## The Loop

Every second, the LIS3DH is read. If the `Z` axis registers that Adabot is lying down, then the `adabot_nap` state is set to `True`. When Adabot is napping, the NeoPixels display the `LARSON` animation in `BLUE` and the servo stops moving.

```python
if ticks_diff(ticks_ms(), clock) &gt;= prop_time:
        x, y, z = [
        value / adafruit_lis3dh.STANDARD_GRAVITY for value in lis3dh.acceleration
        ]
        if z &gt; 0.9:
            adabot_nap = True
            SERVO.angle = POSITION = NEXT_POSITION = 90
            LARSON.color=(BLUE[0] * BRIGHTNESS,
                          BLUE[1] * BRIGHTNESS,
                          BLUE[2] * BRIGHTNESS)
```

If Adabot is not napping, then the servo alternates between moving and not moving, essentially moving every two seconds. The movement is random and tracks its previous position.

```python
if not adabot_nap:
            MOVING = not MOVING
            if MOVING:
                POSITION = NEXT_POSITION
                while abs(POSITION - NEXT_POSITION) &lt; 10:
                    NEXT_POSITION = random.uniform(0, 180)
                DURATION = 0.2 + 0.6 * abs(POSITION - NEXT_POSITION) / 180
            else:
                SERVO.angle = NEXT_POSITION
                DURATION = random.uniform(0.5, 2.5)
        clock = ticks_add(clock, prop_time)
    if MOVING:
        FRACTION = 0.0 / DURATION
        FRACTION = (3 * FRACTION ** 2) - (2 * FRACTION ** 3)
        SERVO.angle = POSITION + (NEXT_POSITION - POSITION) * FRACTION
```

## Chat with Adabot

When you press the button, Adabot will speak. `adabot_talk` is set to `True` and the `open_audio` function is used to load up one of the Adabot phrases from the **WAVs** folder. While the `Mixer` is playing the audio, the NeoPixels show the `LARSON` animation in `RED`. After the audio finishes, `adabot_talk` is set to `False` and the `pulse` animation begins again.

```python
if adabot_talk:
        wave = open_audio(random.randint(1, 7))
        mixer.voice[0].play(wave)
        while mixer.playing:
            LARSON.animate()
        if not mixer.playing:
            adabot_talk = False
            PIXELS.fill(BLACK)
            PIXELS.show()
elif adabot_nap:
        LARSON.animate()
else:
        pulse.animate()

if not switch.value and switch_state is False:
        PIXELS.fill(BLACK)
        PIXELS.show()
        adabot_talk = True
        switch_state = True
if switch.value and switch_state is True:
        switch_state = False
```

# Adabot Toy Robot Friend

## Head Assembly

## Head Parts

Gather up the parts to build the head. Parts include head case, eyes, pupils, mouth, ear caps and antennas.

![3d_printing_head-face-parts.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/389/medium640/3d_printing_head-face-parts.jpg?1688999596)

## Install Eyes & Mouth

Press fit the two eyes and mouth parts through the corresponding cutouts inside the head case.

![3d_printing_head-face-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/390/medium640/3d_printing_head-face-install.jpg?1688999647)

## Ear & Antenna

Insert the antenna through the peg of the ear cap. Repeat for the second ear cap and antenna.

![3d_printing_antenna-ear-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/393/medium640/3d_printing_antenna-ear-install.jpg?1689000005)

## Install Ears

Press fit the ear cap through the ear of the head case. Repeat for the second set of ear cap and antenna.

![3d_printing_head-ear-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/394/medium640/3d_printing_head-ear-install.jpg?1689000035)

![3d_printing_head-ear-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/395/medium640/3d_printing_head-ear-installed.jpg?1689000068)

## Pupils

Add the two pupils to the eyes by adhering with either super glue or double-sided tape.

![3d_printing_head-pupils-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/396/medium640/3d_printing_head-pupils-installed.jpg?1689000087)

## Face Mask

A separate "face mask" printed in a black colored filament will block the light from the NeoPixel LEDs from bleeding into the rest of the head.

![3d_printing_head-face-mask.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/391/medium640/3d_printing_head-face-mask.jpg?1688999764)

## Face Mask Install

Apply super glue or double-sided tape to the surface of the face mask and press fit into the head.&nbsp;&nbsp;

![3d_printing_head-face-mask-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/392/medium640/3d_printing_head-face-mask-installed.jpg?1688999774)

# Adabot Toy Robot Friend

## Arm Assembly

## Neodymium Magnets

Gather up 8 neodymium magnets to install into the arm pieces.

![3d_printing_arms-magnets.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/340/medium640/3d_printing_arms-magnets.jpg?1688747626)

## Install Magnets

The magnets are "force fitted" into the arms using vise grips.

![3d_printing_arms-magnets-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/341/medium640/3d_printing_arms-magnets-install.jpg?1688747637)

## Installed Magnets

Continue to force fit the magnets into the arm cavities being very aware of the magnets polarities.

![3d_printing_arms-mags-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/342/medium640/3d_printing_arms-mags-installed.jpg?1688747650)

![3d_printing_arms-ab-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/345/medium640/3d_printing_arms-ab-installed.jpg?1688747717)

## Arm Joints and Claw

The claws and joints are fitted into the recesses built into the arm pieces.

![3d_printing_arms-join-claw-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/343/medium640/3d_printing_arms-join-claw-installing.jpg?1688747681)

## Test Fitting

With the magnet polarities matching, the two halves of the arm should clamp together holding the claw and joints in place.

![3d_printing_arms-joint-claw-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/344/medium640/3d_printing_arms-joint-claw-installed.jpg?1688747692)

# Adabot Toy Robot Friend

## Body Assembly

## Install Bolt

Get the lightening bolt ready to install.

Press fit the bolt into the cutout inside the body.

![3d_printing_torso-bolt-parts.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/438/medium640/3d_printing_torso-bolt-parts.jpg?1689010668)

![3d_printing_torso-bolt-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/439/medium640/3d_printing_torso-bolt-install.jpg?1689010701)

## Install Feet&nbsp;

Get the two legs and feet ready to install.

Press fit the feet into the legs.

![3d_printing_legs-feet-parts.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/440/medium640/3d_printing_legs-feet-parts.jpg?1689010724)

![3d_printing_leg-foot-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/441/medium640/3d_printing_leg-foot-install.jpg?1689010746)

## Installed Feet

Repeat process for the second leg and foot.&nbsp;

![3d_printing_leg-feet-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/442/medium640/3d_printing_leg-feet-installed.jpg?1689010766)

## Leg Joints

Get the two leg joints ready to install.

The leg joints will secure the legs to the body.

![3d_printing_leg-joints.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/443/medium640/3d_printing_leg-joints.jpg?1689010788)

## Install Legs to Body

Insert a leg joint into the leg hole of the body case. Line up the leg with the threaded leg joint.

Fasten the leg joint into the leg until tight.

![3d_printing_leg-joint-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/444/medium640/3d_printing_leg-joint-install.jpg?1689010803)

![3d_printing_leg-joint-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/445/medium640/3d_printing_leg-joint-installed.jpg?1689010832)

## Installed Legs

Repeat process for the second leg.

![3d_printing_legs-joints-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/446/medium640/3d_printing_legs-joints-installed.jpg?1689010865)

## Arm Installation

Begin taking apart the arm assembly so the halves are separated.

![3d_printing_torso-arm-parts.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/447/medium640/3d_printing_torso-arm-parts.jpg?1689010880)

## Install Arm Assembly

Insert arm joint through the arm hole inside the body case.

While holding arm joint, fit an arm half over the joint. Then, place the claw into the cavity.

Snap the corresponding arm half to clamp the claw and arm joints together.&nbsp;

![3d_printing_torso-arm-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/448/medium640/3d_printing_torso-arm-install.jpg?1689010900)

![3d_printing_torso-arm-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/449/medium640/3d_printing_torso-arm-installed.jpg?1689010908)

## Installed Arms

Repeat the installation process to the second arm.

![3d_printing_torso-arms-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/450/medium640/3d_printing_torso-arms-installed.jpg?1689010924)

# Adabot Toy Robot Friend

## Button Switch

## Switch Wire

Create a 2-wire cable using the silicon ribbon cable. Measure and cut the wire so it's 20cm in length.

![3d_printing_switch-wire.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/371/medium640/3d_printing_switch-wire.jpg?1688909764)

## Solder Switch Wires

Remove one of the pins from the slide switch and shorten the remaining pins so they're half their length.

Solder the 2-wire cable to the pins of the slide switch.

![3d_printing_switch-wiring.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/372/medium640/3d_printing_switch-wiring.jpg?1688909775)

## Wired Slide Switch

Double check the wires have been properly soldered to the pins of the slide switch.

![3d_printing_switch-wired.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/373/medium640/3d_printing_switch-wired.jpg?1688909794)

## Button Wire

Create a 2-wire cable using the silicone ribbon cable. Measure and cut the wire so it's 12cm in length.

![3d_printing_button-wire.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/374/medium640/3d_printing_button-wire.jpg?1688909808)

## Solder Button Wires

Apply a bit of solder to the pins of the button.

Solder the 2-wire cable to the pins of the button.

![3d_printing_button-wiring.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/375/medium640/3d_printing_button-wiring.jpg?1688909819)

## Wired Button

Double check the wires have been properly soldered to the pins of the button.

![3d_printing_button-wired.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/376/medium640/3d_printing_button-wired.jpg?1688909831)

# Adabot Toy Robot Friend

## NeoPixel Wiring

## NeoPixel Wire

Create a 3-wire cable for the NeoPixel stick using the silicone ribbon cable.

Measure and cut the wires so they're 18cm in length.&nbsp;

![3d_printing_neopixel-wires.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/377/medium640/3d_printing_neopixel-wires.jpg?1688909864)

## NeoPixel Wiring

Solder the wires to the 5VDC, GND and DIN pads on the NeoPixel stick.

![3d_printing_neopixel-wiring.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/379/medium640/3d_printing_neopixel-wiring.jpg?1688909942)

## Heat Shrink

Add a piece of red heat shrink tubing to the wire attached to the 5VDC pad.

Add a piece of white heat shrink tubing to the wire attached to the DIN pad.

![3d_printing_neopixel-heatshrink.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/380/medium640/3d_printing_neopixel-heatshrink.jpg?1688909956)

## Hardware for NeoPixel Mount

Gather up the following hardware for securing the NeoPixel stick to the NeoPixel mount.

- 2x M2.5 x 6mm long screws
- 2x M2.5 x 6mm long F-F hex standoff
- 2x M2.5 hex nuts

![3d_printing_neopixel-mount-hardware.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/381/medium640/3d_printing_neopixel-mount-hardware.jpg?1688909983)

## NeoPixel Standoffs

Secure the two M2.5 standoffs to the NeoPixel stick using the M2.5 x 6mm long screws.

![3d_printing_neopixel-standoffs.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/382/medium640/3d_printing_neopixel-standoffs.jpg?1688909995)

## NeoPixel Stick Mount

Secure the NeoPixel stick to the mount using the two M2.5 hex nuts.

&nbsp;

![3d_printing_neopixel-mount-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/383/medium640/3d_printing_neopixel-mount-install.jpg?1688910010)

# Adabot Toy Robot Friend

## NeoPixel Head Assembly

## Neck Hardware

Gather up the hardware and neck piece for the head.

- 2x M2 x 10mm long screws
- 2x M2 hex nuts

![3d_printing_head-neck-hardware.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/384/medium640/3d_printing_head-neck-hardware.jpg?1688910102)

## Install Neck

Fit the neck through the neck hole in the head with the mounting tabs lining up with the mounting holes.

Insert the two M2 screws through the mounting holes in the head.

![3d_printing_head-neck-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/385/medium640/3d_printing_head-neck-install.jpg?1688910119)

## Install Neck & NeoPixel Mount

Place the NeoPixel mount into the head with the mounting tabs fitted through the screws.

![3d_printing_head-neck-neopixel-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/386/medium640/3d_printing_head-neck-neopixel-install.jpg?1688910173)

## Neck & NeoPixel Mount Installation

Secure the assembly using the two M2 hex nuts.

![3d_printing_head-neck-neopixel-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/387/medium640/3d_printing_head-neck-neopixel-installing.jpg?1688910188)

## Assembled Neck & NeoPixel Mount

Insert the 3-wire cable from the NeoPixel stick through the neck.

![3d_printing_head-neck-neopixel-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/388/medium640/3d_printing_head-neck-neopixel-installed.jpg?1688910201)

# Adabot Toy Robot Friend

## Speaker Assembly

## Speaker Cable Extension

Get the 2-wire cable ready for the mini oval speaker.

![3d_printing_speaker-cable.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/397/medium640/3d_printing_speaker-cable.jpg?1689000198)

## Connect Cable

Plug in the speaker cable to the cable extension.

![3d_printing_speaker-cable-plug.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/398/medium640/3d_printing_speaker-cable-plug.jpg?1689000213)

## Installing Speaker to Head

Get the speaker ready to install into the head.&nbsp;

![3d_printing_head-speaker.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/399/medium640/3d_printing_head-speaker.jpg?1689000245)

## Peel Sticky Backing

Remove the backing from the speaker by peeling it off.&nbsp;

![3d_printing_speaker-sticky-peel.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/400/medium640/3d_printing_speaker-sticky-peel.jpg?1689000278)

## Install Speaker

Place the speaker into the speaker holder inside the head and stick it to the surface.

![3d_printing_head-speaker-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/401/medium640/3d_printing_head-speaker-install.jpg?1689000295)

## Thread Cables

Insert the cable from the speaker through the neck.

![3d_printing_head-speaker-cable.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/402/medium640/3d_printing_head-speaker-cable.jpg?1689000341)

# Adabot Toy Robot Friend

## Switch Assembly

## Switch Holder

Get the switch ready to install into the switch holder.

![3d_printing_switch-holder.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/403/medium640/3d_printing_switch-holder.jpg?1689000396)

## Install Switch

Fit the switch into the holder at an angle and press fit into place.&nbsp;

The switches actuator will poke through the opening of the holder.

![3d_printing_switch-holder-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/404/medium640/3d_printing_switch-holder-install.jpg?1689000412)

![3d_printing_switch-holder-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/405/medium640/3d_printing_switch-holder-installed.jpg?1689000464)

## Switch Holder Screws

Get the following hardware ready to secure the switch holder to the head cover.

- 2x M2.5 x 6mm long screws
- 2x M2.5 hex nuts

![3d_printing_backcover-switch-screws.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/406/medium640/3d_printing_backcover-switch-screws.jpg?1689000496)

## Secure Switch Holder

Place the switch holder over the head cover with the mounting holes lined up.

Insert and fasten the screws through the mounting holes and secure using the hex nuts.

![3d_printing_backcover-switch-secure.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/407/medium640/3d_printing_backcover-switch-secure.jpg?1689000526)

## Installed Switch Holder

Double check the switch holder has been properly secured to the head cover.

![3d_printing_backcover-switch-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/408/medium640/3d_printing_backcover-switch-installed.jpg?1689000551)

## Install Head Cover

Insert the wires from the slide switch through the neck.

![3d_printing_head-cover-switch-wire.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/409/medium640/3d_printing_head-cover-switch-wire.jpg?1689000597)

## Snap Fit Head Cover

Begin joining the head cover to the head case by snap fitting them together.

![3d_printing_head-cover-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/410/medium640/3d_printing_head-cover-installing.jpg?1689000619)

## Installed Head Cover

Double check the head cover has been properly joined to the head case with all of the wires fitted through the neck.

![3d_printing_head-cover-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/411/medium640/3d_printing_head-cover-installed.jpg?1689000641)

# Adabot Toy Robot Friend

## Head Body Assembly

## Neck Ring & Gear

Get the neck ring and neck gear pieces ready to install.

![3d_printing_head-neck-gear.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/412/medium640/3d_printing_head-neck-gear.jpg?1689000706)

## Head Cables

Insert all of the wires from the head through the neck hole of the body case.&nbsp;

Fit the neck from the head through the neck hole of the body case.

![3d_printing_head-body-cables.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/413/medium640/3d_printing_head-body-cables.jpg?1689000730)

![3d_printing_head-body-fit.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/414/medium640/3d_printing_head-body-fit.jpg?1689000742)

## Install Neck Ring

Insert all of the wires through the neck ring.

Fit the neck ring over the cylinder of the neck and press until it's flush with the surface of the body case.

![3d_printing_neck-ring-cables.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/415/medium640/3d_printing_neck-ring-cables.jpg?1689000760)

![3d_printing_neck-ring-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/416/medium640/3d_printing_neck-ring-installing.jpg?1689000767)

## Install Neck Gear

Insert all of the wires through the neck gear.&nbsp;

Line up the notches in the neck gear with the slits in the neck. Then, press fit the gear onto the neck.&nbsp;

![3d_printing_neck-gear-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/417/medium640/3d_printing_neck-gear-installing.jpg?1689000787)

![3d_printing_neck-gear-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/418/medium640/3d_printing_neck-gear-installed.jpg?1689000796)

# Adabot Toy Robot Friend

## Connect Switch to Feather

## Feather & Switch

Get the wires from the slide switch ready to solder to the&nbsp; Adafruit RP2040 PropMaker Feather.

![3d_printing_feather-adabot.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/419/medium640/3d_printing_feather-adabot.jpg?1689000943)

## Solder Switch Wires

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

![3d_printing_feather-switch-solder.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/420/medium640/3d_printing_feather-switch-solder.jpg?1689000955)

# Adabot Toy Robot Friend

## Servo Assembly

## Servo Cable

The stock cable in the micro servo is a bit too long and could cause issues so it's shortened.

Cut the wires short so the total length is 14cm

![3d_printing_servo-cable.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/492/medium640/3d_printing_servo-cable.jpg?1689178263)

## Rewiring Servo Cable

Remove a bit of insulation from the wires and add a bit of solder to prevent the strands of wire from fraying.

Add pieces of heat shrink tubing to each wire. Then, solder the wires together.

![3d_printing_servo-wiring.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/493/medium640/3d_printing_servo-wiring.jpg?1689178381)

## Wired Servo

Double check the wires have been properly soldered together.

![3d_printing_servo-wired.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/494/medium640/3d_printing_servo-wired.jpg?1689178452)

## Servo Horn & Gear

Get the servo horn, screw and 3D printed gear ready to assemble.

![3d_printing_servo-hardware.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/495/medium640/3d_printing_servo-hardware.jpg?1689178496)

## Trim Servo Horn

Using flush snips, remove the wing from the horn, leaving just the center part.

![3d_printing_servo-horn-cut.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/496/medium640/3d_printing_servo-horn-cut.jpg?1689178546)

![3d_printing_servo-horn-trimmed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/497/medium640/3d_printing_servo-horn-trimmed.jpg?1689178554)

## Install Servo Horn

Press fit the trimmed horn onto the shaft of the servo.

![3d_printing_servo-horn-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/498/medium640/3d_printing_servo-horn-install.jpg?1689178603)

## Install Servo Gear

Place the 3D printed servo gear over the horn and line up the mounting hole.

Insert and fasten the included hardware screw through the top of the 3D printed servo gear.

![3d_printing_servo-gear-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/499/medium640/3d_printing_servo-gear-installing.jpg?1689178643)

## Servo Gear

Ensure the gear has been fully tightened and flush with the servo horn.

![3d_printing_servo-gear-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/500/medium640/3d_printing_servo-gear-installed.jpg?1689178713)

## Servo Mount

Get the following hardware ready to install the micro servo to the servo mount.

- 2x M2 x 10mm long screw
- 2x M2 hex nuts

![3d_printing_servo-mount-hardware.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/501/medium640/3d_printing_servo-mount-hardware.jpg?1689178761)

## Installing Servo Mount

Place the micro servo over the 3D printed mount with the mounting holes lined up.

![3d_printing_servo-mount-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/502/medium640/3d_printing_servo-mount-installing.jpg?1689178826)

## Secure Servo to Mount

Insert and fasten the M2 screws through the mounting tabs on the micro servo.&nbsp;

Secure the micro servo to the mount using the hex nuts.

![3d_printing_servo-mount-secure.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/503/medium640/3d_printing_servo-mount-secure.jpg?1689178872)

## Servo Mount

Double check the orientation of the micro servo is installed correctly.

![3d_printing_servo-mount-secured.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/504/medium640/3d_printing_servo-mount-secured.jpg?1689178924)

# Adabot Toy Robot Friend

## Body Cover Assembly

## Button

Get the button, hex nut and slip ring ready to install to the body cover.

![3d_printing_button-backcover.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/505/medium640/3d_printing_button-backcover.jpg?1689178994)

## Install Button

Insert the button through the hole in the body cover.

Place the slip ring over the body of the button and insert the hex nut.

Securely tighten the hex nut to secure the button to the body cover.

![3d_printing_button-backcover-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/506/medium640/3d_printing_button-backcover-installing.jpg?1689179005)

![3d_printing_button-backcover-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/507/medium640/3d_printing_button-backcover-installed.jpg?1689179017)

## Hardware for Servo Mount

Get the follow hardware ready to secure the servo mount to the body cover.

- 2x M2.5 x 10mm long screws
- 2x M2.5 hex nuts

![3d_printing_backcover-servomount-screws.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/508/medium640/3d_printing_backcover-servomount-screws.jpg?1689179032)

## Secure Servo Mount

Place the servo mount inside the body cover with the mounting holes lined up.

Insert and fasten the screws through the mounting holes.

Use the hex nuts to secure the servo mount to the body cover.

![3d_printing_backcover-servomount-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/509/medium640/3d_printing_backcover-servomount-install.jpg?1689179042)

## Installed Servo Mount

Double check the orientation of the servo mount has been secured correctly.

![3d_printing_backcover-servomount-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/510/medium640/3d_printing_backcover-servomount-installed.jpg?1689179056)

# Adabot Toy Robot Friend

## Feather Body Cover Assembly

## Feather Screws

Get the following hardware ready to secure the Feather to the body cover.

- 2x M2.5 x 6mm long machine screws

![3d_printing_feather-bodycover-screws.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/421/medium640/3d_printing_feather-bodycover-screws.jpg?1689001053)

## Install Feather

Place the Feather onto the body cover with the mounting holes lined up with the standoffs.

Insert the Feather at an angle so the PCB is fitted underneath the clips. Then, snap fit the Feather onto the other clips.&nbsp;

![3d_printing_feather-bodycover-installing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/422/medium640/3d_printing_feather-bodycover-installing.jpg?1689001086)

![3d_printing_feather-bodycover-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/423/medium640/3d_printing_feather-bodycover-installed.jpg?1689001092)

## Secure Feather

Insert and fasten the screws through the Feathers mounting holes.

![3d_printing_feather-bodycover-secure.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/425/medium640/3d_printing_feather-bodycover-secure.jpg?1689002157)

## Connect Servo Cable

Plug the cable from the micro servo into the servo header pins. The brown wire goes to the **G** pin, red wire to **V+** and yellow wire **Sig** pins.

![3d_printing_feather-servo-plug.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/426/medium640/3d_printing_feather-servo-plug.jpg?1689002202)

## Connect Speaker Wires

Insert the two wires from the speaker into the screw block terminals.&nbsp;

Secure the speaker wires to the terminals using a flat head screw driver.

![3d_printing_feather-speaker-screw.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/427/medium640/3d_printing_feather-speaker-screw.jpg?1689002223)

## Connect Button Wire

Insert one of the wires from the button to the screw block terminals.

Secure the button wire to the terminal using a flat head screw driver.

![3d_printing_feather-button-screw.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/428/medium640/3d_printing_feather-button-screw.jpg?1689002242)

## Connect NeoPixel Power Wire

Insert the NeoPixel 5VDC wire to the screw block terminal.

Secure the wire to the terminal using the screw driver.&nbsp;

![3d_printing_feather-neopwr-screw.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/429/medium640/3d_printing_feather-neopwr-screw.jpg?1689002266)

## Connect Ground Wires

Insert the two remaining ground wires to the screw block terminal.

Secure the two wires using the screw driver.

![3d_printing_feather-btn-neo-ground-screw.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/430/medium640/3d_printing_feather-btn-neo-ground-screw.jpg?1689002282)

## Connect NeoPixel DIN Wire

Insert the remaining NeoPixel wire to the screw block terminal. Secure using the screw driver.&nbsp;

![3d_printing_feather-neo-din-screw.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/431/medium640/3d_printing_feather-neo-din-screw.jpg?1689002301)

## Connect Battery

Plug in the 500mAh battery cable to the battery port on the Feather.

![3d_printing_feather-bat-plug.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/432/medium640/3d_printing_feather-bat-plug.jpg?1689002316)

# Adabot Toy Robot Friend

## Final Assembly

## Test Circuit

Use the slide switch to power on the Feather.

Press the button to trigger audio wav files.

The NeoPixel LEDs should light up and play audio from the speaker with the micro servo rotating.

![3d_printing_feather-test.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/433/medium640/3d_printing_feather-test.jpg?1689002361)

## Install Battery

Place the battery into the body case so it's laid flush with the bolt.

![3d_printing_battery-body-install.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/434/medium640/3d_printing_battery-body-install.jpg?1689002376)

## Closing Body

Begin fitting all of the wiring into the body case.

![3d_printing_bodycover-closing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/435/medium640/3d_printing_bodycover-closing.jpg?1689002392)

## Snap Fit Body Cover

Ensure all of the wires have been fitted into the body.

Press the cover into the body so they snap fit together.

![3d_printing_bodycover-close.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/436/medium640/3d_printing_bodycover-close.jpg?1689002401)

## USB Port

The USB-C connector from the Feather will be accessible on the bottom of the body.

Use the USB port to recharge the battery or to reprogram the Feather.

![3d_printing_body-USB.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/437/medium640/3d_printing_body-USB.jpg?1689002415)

## Finished Build

Congratulations on completing your Adabot RP2040! Use the slide switch to power it on or off.&nbsp;

Press the button to trigger random audio files.

For nap time, lay Adabot on it's back to stop the servo from moving.

![3d_printing_hero-holding.jpg](https://cdn-learn.adafruit.com/assets/assets/000/122/458/medium640/3d_printing_hero-holding.jpg?1689015999)

![](https://cdn-learn.adafruit.com/assets/assets/000/122/477/medium800/3d_printing_hero-sharpie-staff.jpg?1689078358)

Adabot can grip onto objects like a Sharpie pen.

![](https://cdn-learn.adafruit.com/assets/assets/000/122/472/medium800/3d_printing_hero-hold.jpg?1689077402)


## 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)
### 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)
### NeoPixel Stick - 8 x 5050 RGB LED with Integrated Drivers

[NeoPixel Stick - 8 x 5050 RGB LED with Integrated Drivers](https://www.adafruit.com/product/1426)
Make your own little LED strip arrangement with this stick of NeoPixel LEDs. We crammed 8 of the tiny 5050 (5mm x 5mm) smart RGB LEDs onto a PCB with mounting holes and a chainable design. Use only one microcontroller pin to control as many as you can chain together! Each LED is addressable as...

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

[Micro servo](https://www.adafruit.com/product/169)
Tiny little servo can rotate approximately 180 degrees (90 in each direction) and works just like the standard kinds you're used to but _smaller_. You can use any servo code, hardware, or library to control these servos. Good for beginners who want to make stuff move without...

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

[16mm Panel Mount Momentary Pushbutton -  Yellow](https://www.adafruit.com/product/1502)
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/1502)
[Related Guides to the Product](https://learn.adafruit.com/products/1502/guides)
### Lithium Ion Polymer Battery - 3.7v 500mAh

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

Out of Stock
[Buy Now](https://www.adafruit.com/product/1578)
[Related Guides to the Product](https://learn.adafruit.com/products/1578/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 - 10 Wire 1 Meter Long

[Silicone Cover Stranded-Core Ribbon Cable - 10 Wire 1 Meter Long](https://www.adafruit.com/product/3890)
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/3890)
[Related Guides to the Product](https://learn.adafruit.com/products/3890/guides)

## Related Guides

- [Adafruit RP2040 Prop-Maker Feather](https://learn.adafruit.com/adafruit-rp2040-prop-maker-feather.md)
- [PyPortal Wall Mount](https://learn.adafruit.com/pyportal-wall-mount.md)
- [Numpad 4000 Mechanical Keyswitch Data Entry Device](https://learn.adafruit.com/numpad-4000-mechanical-keyswitch-data-entry-device.md)
- [ESP32-S3 BLE RS-232 Controller](https://learn.adafruit.com/esp32-s3-ble-rs232-controller.md)
- [New Years Eve Ball Drop](https://learn.adafruit.com/new-years-eve-ball-drop.md)
- [Planetary Gear Dreidels](https://learn.adafruit.com/planetary-gear-dreidels.md)
- [micro:bit Lesson 3. NeoPixels with micro:bit](https://learn.adafruit.com/micro-bit-lesson-3-neopixels-with-micro-bit.md)
- [Pico W YBox3](https://learn.adafruit.com/pico-w-ybox3.md)
- [HalloWing M4 Animated Eye Candy Bowl](https://learn.adafruit.com/hallowing-m4-candy-bowl.md)
- [Lightsaber Prop-Maker RP2040](https://learn.adafruit.com/lightsaber-rp2040.md)
- [How to Make Animated Graphics for Hologram Displays](https://learn.adafruit.com/how-to-make-animated-graphics-for-hologram-displays.md)
- [Lemon Mechanical Keypad](https://learn.adafruit.com/qtpy-lemon-mechanical-keypad-macropad.md)
- [Talking D20 with RP2040 PropMaker Feather](https://learn.adafruit.com/talking-d20-rp2040.md)
- [Arcade Bonnet Controller](https://learn.adafruit.com/arcade-bonnet-controller.md)
- [Metro Minimalist Clock](https://learn.adafruit.com/metro-minimalist-clock.md)
- [3D Scans for Low Poly Statues](https://learn.adafruit.com/low-poly-3d-scans-for-3d-printing.md)
