# NeoPixel Infinity Mirror Coaster

## Overview

https://youtu.be/SFuh2ApT50o

In this guide we’re building yet another infinity mirror! This makes a really cool optical illusion that uses acrylic mirrors and a strip of NeoPixel smart RGB LEDs.

## Bluetooth Remote Control

With the ItsyBitsy nRF52840, you can remotely control the LEDs. Set different colors and change animations with the Bluefruit connect app for iOS or Android.

![3d_printing_hero-itsy.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/269/medium640/3d_printing_hero-itsy.jpg?1579631201)

## 3D Printed Snap Fit

The 3D printed parts are designed to snap fit together so it’s easy to build. It's portable with a rechargeable battery and switch so you can easily turn it off.

![3d_printing_hero-adabot-mirror.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/270/medium640/3d_printing_hero-adabot-mirror.jpg?1579631229)

## Circuit Python Code

The code for this project was written in Adafruit’s CircuitPython. It’s really easy to setup hardware with Bluetooth using the BLE library for CircuitPython. With the LED animation library, we can customize the settings and create different effects.

![3d_printing_code-python.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/271/medium640/3d_printing_code-python.jpg?1579631311)

## Parts
List of parts used to build this project.

- [Adafruit ItsyBitsy nRF52840](https://www.adafruit.com/product/4481)
- [Mini Skinny NeoPixel Strip](https://www.adafruit.com/product/2970)
- [Trinket/ItsyBitsy Lipo Backpack](https://www.adafruit.com/product/2124)
- [500mAh battery](https://www.adafruit.com/product/1578)
- [Slide Switch](https://www.adafruit.com/product/805)
- [10-wire ribbon cable](https://www.adafruit.com/product/3890)
- [Fully reversible USB cable](https://www.adafruit.com/product/4111)
- [Roll of Mirrored Film](https://www.amazon.com/gp/product/B00FQPGH8I/)
- 2x [4in (1/16in thick) Acrylic Disc](https://www.amazon.com/gp/product/B071Y55MC9/)

![3d_printing_parts.jpg](https://cdn-learn.adafruit.com/assets/assets/000/086/942/medium640/3d_printing_parts.jpg?1579187696)

### Adafruit Mini Skinny NeoPixel Digital RGB LED Strip - 144 LED/m

[Adafruit Mini Skinny NeoPixel Digital RGB LED Strip - 144 LED/m](https://www.adafruit.com/product/2970)
So thin. So mini. So teeeeeeny-tiny. It's the 'skinny' version of our classic NeoPixel strips!

These NeoPixel strips have 144 digitally-addressable pixel Mini LEDs per meter and are very affordable and are only 7.5 mm wide (0.3")&nbsp;if you remove the strip from the...

In Stock
[Buy Now](https://www.adafruit.com/product/2970)
[Related Guides to the Product](https://learn.adafruit.com/products/2970/guides)
![Adafruit NeoPixel Digital RGB LED Strip wired to a microcontroller, with all the LEDs in a rainbow](https://cdn-shop.adafruit.com/product-videos/640x480/2970-05.jpg)

### Adafruit ItsyBitsy nRF52840 Express - Bluetooth® LE

[Adafruit ItsyBitsy nRF52840 Express - Bluetooth® LE](https://www.adafruit.com/product/4481)
What's smaller than a Feather but larger than a Trinket? It's an **Adafruit ItsyBitsy nRF52840 Express** featuring the **Nordic nRF52840 Bluetooth® LE** processor! Teensy & powerful, with an fast nRF52840 Cortex M4 processor running at 64 MHz and 1 MB...

In Stock
[Buy Now](https://www.adafruit.com/product/4481)
[Related Guides to the Product](https://learn.adafruit.com/products/4481/guides)
![Angled Shot of the Adafruit ItsyBitsy nRF52840 Express - Bluetooth LE.](https://cdn-shop.adafruit.com/640x480/4481-05.jpg)

### Adafruit LiIon/LiPoly Backpack Add-On for Pro Trinket/ItsyBitsy

[Adafruit LiIon/LiPoly Backpack Add-On for Pro Trinket/ItsyBitsy](https://www.adafruit.com/product/2124)
If you have an ItsyBitsy or Pro Trinket you probably know it's the perfect little size for a portable project. This LiPoly backpack makes it really easy to do! Instead of wiring 2 or 3 boards together to make a charging system, this little PCB sits on top of the PCB and allows a...

In Stock
[Buy Now](https://www.adafruit.com/product/2124)
[Related Guides to the Product](https://learn.adafruit.com/products/2124/guides)
![Angled Shot of the Adafruit LiIon/LiPoly Backpack Add-On for Pro Trinket/ItsyBitsy.](https://cdn-shop.adafruit.com/640x480/2124-09.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)

### 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)
![Small, black, SPDT slide switch.](https://cdn-shop.adafruit.com/640x480/805-03.jpg)

### Fully Reversible Pink/Purple USB A to micro B Cable - 1m long

[Fully Reversible Pink/Purple USB A to micro B Cable - 1m long](https://www.adafruit.com/product/4111)
This cable is not only super-fashionable, with a woven pink and purple Blinka-like pattern, it's also fully reversible! That's right, you will save _seconds_ a day by not having to flip the cable around.

First let's talk about the cover and over-molding. We got these...

In Stock
[Buy Now](https://www.adafruit.com/product/4111)
[Related Guides to the Product](https://learn.adafruit.com/products/4111/guides)
![Fully Reversible Pink/Purple USB A to micro B Cable](https://cdn-shop.adafruit.com/640x480/4111-02.jpg)

### 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)
![10 wire Silicone Cover Stranded-Core Ribbon Cable](https://cdn-shop.adafruit.com/640x480/3890-01.jpg)

### Part: Roll of Mirror Film
quantity: 1
BDF S05 One Way Mirror Film
[Roll of Mirror Film](https://www.amazon.com/gp/product/B00FQPGH8I/)

### Part: Acrylic Disc
quantity: 1
4in (101.6mm) diameter x 1/16in (1.6mm) thick
[Acrylic Disc](https://www.amazon.com/gp/product/B071Y55MC9/)

Project Inspired by MN Maker  
[https://www.youtube.com/watch?v=HhfsTSldXTI](https://www.youtube.com/watch?v=HhfsTSldXTI)

# NeoPixel Infinity Mirror Coaster

## Wiring Diagram

The diagram below provides a visual reference for wiring of the components. This diagram was created using the software package [Fritzing](http://fritzing.org/download/).

## Adafruit Library for Fritzing

Use Adafruit's Fritzing parts library to create circuit diagrams for your projects. 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/086/941/medium800/3d_printing_circuit-diagram.jpg?1579179148)

## Wired Connections

The ItsyBitsy nRF52840 is powered by 500mAh battery via the Lipo Backpack. This allows the USB port from the ItsyBitsy nRF52840 to charge the 500mAh battery. A slide switch is connected to the two switch pin on the Lipo Backpack.&nbsp;

- **BAT** from **Lipo Backpack** to **BAT** on **ItsyBitsy nRF52840**
- **Ground** from **Lipo Backpack** to **GND** on **ItsyBitsy nRF52840**
- **5V** from **Lipo Backpack** to **USB** on **ItsyBitsy nRF52840**

## Slide Switch

A 2-pin slide switch is wired to the switch pins on the Trinket/ItsyBitsy Lipo Backpack.&nbsp;

## NeoPixel Strip

The neopixel strip is connected to the ItsyBitsy with three wired connections, data, voltage and ground.

- **5V+** from **NeoPixel Ring** to **Vhi** on **ItsyBitsy nRF52840**
- **G** from **NeoPixel Ring** to **G** on **ItsyBitsy nRF52840**
- **DIN** from **NeoPixel Ring** to **Pin #5** on **ItsyBitsy nRF52840**

# NeoPixel Infinity Mirror Coaster

## Software

![](https://cdn-learn.adafruit.com/assets/assets/000/087/260/medium800/3d_printing_code-python.jpg?1579625852)

## Setup ItsyBitsy nRF52840 with CircuitPython

We'll need to get our board setup so we can run the CircuitPython code. Let's walk through these steps to get the latest version of CircuitPython onto your board.&nbsp;

## The Mu Python Editor

Mu is a simple Python editor that works with Adafruit CircuitPython hardware. It's written in Python and works on Windows, MacOS, Linux and Raspberry Pi. The serial console is built right in, so you get immediate feedback from your board's serial output! While you can use any text editor with your code, Mu makes it super simple. [Instructions for Mu are available here](https://learn.adafruit.com/welcome-to-circuitpython/installing-mu-editor).

## Installing or upgrading CircuitPython

You should ensure you have CircuitPython 4.0 or greater on your board. Plug your board in with a known good data + power cable (not the cheesy USB cable that comes with USB power packs, they are power only). You should see a new flash drive pop up.

If the drive is **CIRCUITPY** , then open the **boot\_out.txt** file to ensure the version number is 4.0 or greater.&nbsp;

```python
Adafruit CircuitPython 5.0.0-beta.3 on 2020-01-08; Adafruit ItsyBitsy nRF52840 Express with nRF52840
```

If you need to install or upgrade CircuitPython, [see this guide page on the ItsyBitsy nRF52840](https://learn.adafruit.com/adafruit-itsybitsy-nrf52840-express/circuitpython).

## Download the Adafruit CircuitPython Library Bundle

In order to run the code, we'll need to download a few libraries. Libraries contain code to help interface with hardware a lot easier for us.

Use the [ItsyBitsy nRF52840 page on Installing Libraries](https://circuitpython.org/board/itsybitsy_nrf52840_express/) to get the library that matches the major version of CircuitPython you are using noted above, i.e. 4.x for the versiond starting with 4, 5.x for the versions starting with 5, etc.

To run the code for this project, we need the two libraries in the Required Libraries list below. Unzip the library bundle and search for the libraries. Drag and drop the files into a folder named **lib** on the **CIRCUITPY** drive (create the folder if it is not already on the ItsyBitsy nRF52840).

## Required Libraries&nbsp;

- **neopixel.mpy**
- **adafruit\_dotstar.mpy**
- **adafruit\_bluefruit\_connect**
- **adafruit\_ble**
- **adafruit\_led\_animation**

![](https://cdn-learn.adafruit.com/assets/assets/000/087/259/medium800/3d_printing_circuitdrive-files.jpg?1579625575)

Once we have all the files we need, a directory listing will look similar to above as far as files and directories.

## Upload Code

Click on the download link below to grab the main code directly from GitHub. **Ensure the file** is named **code.py** &nbsp;and drop it onto the **CIRCUITPY** drive main (root) directory that appears when your ItsyBitsy nRF52840 is plugged into your computer via a known good USB data cable. The code will run properly when all of the files have been uploaded including libraries.

Use any text editor or favorite IDE to modify the code. We suggest using Mu as noted above.

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

## Double Check

See the directory listing above and double check that you have all the files listed to make this project function. If any are missing or in an incorrect directory, move them so they're in the right places.

# NeoPixel Infinity Mirror Coaster

## Bluefruit LE Connect App

## Bluetooth App

This project uses the Adafruit Bluefruit LE connect app (available free for Android and iOS) to trigger the lights and sounds. It uses the control pad to trigger up to 8 different colors and sound effects. If you haven't downloaded the app yet, use the button below to install it on your mobile device.

![3d_printing_bluefruit-app.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/261/medium640/3d_printing_bluefruit-app.jpg?1579625974)

[Download BLE Connect App iOS](https://itunes.apple.com/us/app/adafruit-bluefruit-le-connect/id830125974?mt=8)
[Download BLE Connect App for Android](https://play.google.com/store/apps/details?id=com.adafruit.bluefruit.le.connect)
## Connect to ItsyBitsy nRF52840

Power on the ItsyBitsy nRF52840 by connecting it via USB to your computer.

## Using Bluefruit LE Connect App

Open the Bluefruit LE Connect app and locate the device named **CIRCUITPY** and tap the **connect** button. Locate and tap on **Controller**. Under module, tab on **Control Pad**.&nbsp;

Use the LEFT arrow button to cycle between the two animations.

## Color Picker

You can change the color of the animations by using the Color Picker. Tap connect, select Controller. Under module, tap on **Color Picker**. Use the color wheel to select a color and the slider to adjust the brightness. Tap the **send color** button to trigger the color.

## Apple Watch

If you have an Apple Watch, you can use the Bluefruit LE Connect App just like the mobile app. The Apple Watch app is included with the iOS app download.&nbsp;

# NeoPixel Infinity Mirror Coaster

## 3D Printing

## 3D Printed Parts

STL files for 3D printing are oriented to print "as-is" on FDM style machines. Original design source may be downloaded using the links below.

- ic-case-frame.stl
- ic-case-bottom.stl
- ic-case-top.stl
- ic-ring.stl

![3d_printing_3d-parts.jpg](https://cdn-learn.adafruit.com/assets/assets/000/086/943/medium640/3d_printing_3d-parts.jpg?1579187796)

## Exploded View

The CAD animation shows how the parts fit together. A ring of neopixels are sandwiched in between the two acrylic discs. The top cover snap fits onto the frame. The electronics are housed in the bottom cover with built-in snap fit tabs. The switch and USB port are accessible on the outside of the frame.

![led_strips_cad-explosion.gif](https://cdn-learn.adafruit.com/assets/assets/000/087/312/medium640thumb/led_strips_cad-explosion.jpg?1579661993)

## 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 board, displays, connectors and more can be downloaded from the [Adafruit CAD parts GitHub Repo](https://github.com/adafruit/Adafruit_CAD_Parts).

![3d_printing_itsybitsy-nrf52840.gif](https://cdn-learn.adafruit.com/assets/assets/000/086/945/medium640thumb/3d_printing_itsybitsy-nrf52840.jpg?1579195246)

[Download CAD files from Thingiverse](https://www.thingiverse.com/thing:4118457)
[Download CAD files from Cults 3D](https://cults3d.com/en/3d-model/tool/infinity-mirror)
[Download CAD files from PrusaPrinters](https://www.prusaprinters.org/prints/18418-infinity-mirror)
## Slicing Parts

No supports are required. Slice with setting for PLA material.&nbsp;

The parts were sliced using CURA using the slice settings below.

- PLA filament 220c extruder
- 0.2 layer height
- 10% gyroid infill
- 60mm/s print speed
- 60c heated bed

![3d_printing_cura-slice.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/263/medium640/3d_printing_cura-slice.jpg?1579626720)

# NeoPixel Infinity Mirror Coaster

## Switch Wiring

## Lipo Backpack with Switch

The slide switch is wired to the ItsyBitsy Lipo backpack with two wired connections.

![3d_printing_lipoly-switch.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/040/medium640/3d_printing_lipoly-switch.jpg?1579273736)

## Wire for Switch

Using the 10-wire ribbon cable, cut a piece for the switch. A length of 48mm (1.89in) is suffice. Peel apart the ribbon cable for a 2-wire piece of wire. Using wire strippers, remove a bit of insulation from the tips. Tin the tips by adding a bit of solder. This will help to prevent the strands of wire from fraying.

![3d_printing_switch-wire.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/045/medium640/3d_printing_switch-wire.jpg?1579274314)

## Switch Wire

The 2-wire cable piece is connected to the middle pin and either the far left or right pin. Third helping hands can assist by soldering the switch in place while soldering.

![3d_printing_switch-wired.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/041/medium640/3d_printing_switch-wired.jpg?1579273883)

## Cut Trace

The pins on the Trinket/ItsyBitsy Lipo Backpack need to be cut in order to enable on/off switch functionality. Use diagonal flush snips to cut the trace circled in red. Use the mounting hole as an anchor.&nbsp;

![3d_printing_lipoly-trace-cut.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/157/medium640/3d_printing_lipoly-trace-cut.jpg?1579368062)

![3d_printing_untitled.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/273/medium640/3d_printing_untitled.jpg?1579633474)

## Solder Switch to Lipo Backpack

Connect the wires from the slide switch to the two pins on the Lipo backpack by soldering them in place. Third helping hands can help keep the switch in place while soldering.

![3d_printing_lipoly-switch-wiring.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/043/medium640/3d_printing_lipoly-switch-wiring.jpg?1579273932)

## Wired Switch

Double check the wires and ensure the solder joints are solid.&nbsp;

![3d_printing_lipoly-switch-wired.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/044/medium640/3d_printing_lipoly-switch-wired.jpg?1579274105)

# NeoPixel Infinity Mirror Coaster

## NeoPixel Wiring

## NeoPixel Strip Length

Remove the mini skinny NeoPixel strip from the reel. For this project, a strip of 44 LEDs (or a length of 305mm / 12in) is needed to cover the outside diameter of the acrylic disk.

![3d_printing_neostrip-length.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/047/medium640/3d_printing_neostrip-length.jpg?1579276976)

## Cut NeoPixel Strip

Individually count the LEDs on the strip so there are 44. Double check the number of pixels is correct. Cut the NeoPixel strip in between the solder pads. Remove the pre-soldered wires from the beginning of the strip by cutting it off with wire cutters.&nbsp;

![3d_printing_neostrip-cut.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/048/medium640/3d_printing_neostrip-cut.jpg?1579277004)

## NeoPixel Wire

A 3-wire ribbon cable is wired to the first pixel on the strip. The wire length measures to 120mm (4.72in). Measure and cut a piece of cable from the 10-wire ribbon cable.

![3d_printing_strip-wire-tinned.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/050/medium640/3d_printing_strip-wire-tinned.jpg?1579279137)

## Wire Tinning

Using wire strippers, remove a bit of insulation from the tips of each wire. Tin the exposed wires by adding a bit of solder. This will help to prevent the strands of wire from fraying. A set of third helping hands can help keep the wire in place while soldering.

![3d_printing_strip-wire-tin.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/049/medium640/3d_printing_strip-wire-tin.jpg?1579277104)

## Wire Strip

Tin the solder pads on the first NeoPixel by adding a bit of solder. Attach the 3-wire ribbon cable to the first NeoPixel. Double check the wire is connecting to the Data In (DI), Ground (G) and Voltage (+) pads. Third helping hands can help keep the strip in place while soldering.

![3d_printing_strip-wiring.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/082/medium640/3d_printing_strip-wiring.jpg?1579292198)

## Wired Strip

Double check the solder joints are solid and the connections are made on the first NeoPixel.

![3d_printing_strip-wired.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/083/medium640/3d_printing_strip-wired.jpg?1579292227)

# NeoPixel Infinity Mirror Coaster

## Lipo Backpack Wiring

## Wires for Lipo Backpack

The Lipo Backpack is connected to the ItsyBitsy with 3-wired connections. Using the 10-wire ribbon cable, cut a piece so it's 48mm (1.89in) in length. Peel apart the ribbon cable for a 3-wire piece of cable. Using wire strippers, remove a bit of insulation from the tips. Tin the tips by adding a bit of solder. This will help to prevent the strands of wire from fraying.

![3d_printing_lipo-wires.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/084/medium640/3d_printing_lipo-wires.jpg?1579292265)

## Wiring Lipo Backpack

Solder the 3-wire cable to the BAT, G and USB pins on the Lipo Backpack.

![3d_printing_lipo-wiring.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/085/medium640/3d_printing_lipo-wiring.jpg?1579292300)

## Connect Lipo Backpack to ItsyBitsy

The Lipo Backpack is connected to the ItsyBitsy.

![3d_printing_lipo-itsy-connect.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/088/medium640/3d_printing_lipo-itsy-connect.jpg?1579292448)

## Solder Wires to ItsyBitsy

Make the following connections to connect the Lipo Backpack to the ItsyBitsy.&nbsp;

- BAT from Lipo Backpack to BAT on ItsyBitsy
- Ground from Lipo Backpack to Ground on ItsyBitsy
- 5V from Lipo Backpack to USB on ItsyBitsy

![3d_printing_lipo-itsy-wiring.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/090/medium640/3d_printing_lipo-itsy-wiring.jpg?1579292470)

## Wired ItsyBitsy and Lipo Backpack

Double check the wiring and ensure the solder joints are solid.

![3d_printing_lipo-itsy-wired.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/091/medium640/3d_printing_lipo-itsy-wired.jpg?1579292521)

## Test Lipo Backpack and Battery

Plug the 500mAh battery into the battery port on the Lipo Backpack. Use the slide switch to power on the circuit.

![3d_printing_lipo-itsy-bat-test.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/092/medium640/3d_printing_lipo-itsy-bat-test.jpg?1579292538)

# NeoPixel Infinity Mirror Coaster

## ItsyBitsy Wiring

## Wiring the NeoPixel Strip to the ItsyBitsy

The NeoPixel strip is now ready to be connected to the ItsyBitsy.

![3d_printing_itsy-strip-connect.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/087/medium640/3d_printing_itsy-strip-connect.jpg?1579292415)

## Solder Wires to the ItsyBitsy

The 3-wires from the strip are soldered to the pins on the bottom of the ItsyBitsy. This allows the single ground pin to be shared across the strip and Lipo backpack. Solder the following connections:

- **Ground(-)** from Strip to **Ground** on ItsyBitsy
- **Data Out(DO)** from Strip to **5!** on ItsyBitsy
- **Voltage+** from Strip to **Vhi** on ItsyBitsy

![3d_printing_itsy-strip-wiring.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/094/medium640/3d_printing_itsy-strip-wiring.jpg?1579292578)

## Testing NeoPixel Strip

Test out the the strip by turning on the circuit using the slide switch.&nbsp;

![3d_printing_strip-testing.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/095/medium640/3d_printing_strip-testing.jpg?1579292594)

# NeoPixel Infinity Mirror Coaster

## Acrylic Setup

## Acrylic Disc

The acrylic discs come in different diameters and thickness. The enclosure was designed for a specific size.

- 4in Diameter (101.6mm)
- 1/16in Thick (1.59mm)

![3d_printing_acrylic-discs.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/267/medium640/3d_printing_acrylic-discs.jpg?1579627071)

## Mirror Film

This one-way mirror film comes in a roll in different sizes. It comes with a box cutter and a squeegee tool for applying the film. I used the following roll size:

- 12in x&nbsp; 24ft

![3d_printing_film-roll.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/266/medium640/3d_printing_film-roll.jpg?1579627050)

## Cut Roll of Film

Start by laying out a sheet from the roll onto a cutting mat. I used a T-square ruler to guide the blade while cutting a sheet from the roll.

![3d_printing_cut-film-sheet.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/221/medium640/3d_printing_cut-film-sheet.jpg?1579617805)

Danger: 

## Trim Pieces of Film

I placed the acrylic disc over the sheet to gauge how large the piece needs to be. You'll want to add a bit of extra space around the edges so the acrylic has total coverage.

![3d_printing_trim-film.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/222/medium640/3d_printing_trim-film.jpg?1579617962)

## Pieces of Film

I suggest cutting out several pieces. You'll want to have extra pieces&nbsp;in case one of them gets messed up while applying.

![3d_printing_film-pieces.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/223/medium640/3d_printing_film-pieces.jpg?1579618281)

## Serving Tray and Gloves

I suggest using a serving tray to catch the soapy water so your work surface doesn't get wet. Gloves will help to prevent getting smudges and fingerprints on the acrylic or film.

![3d_printing_gloves-tray.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/224/medium640/3d_printing_gloves-tray.jpg?1579618391)

## Peel Corners with Tape

The film has a protective backing that needs to be removed. Adding pieces of tape to the corners can help you peel apart the two layers.

![3d_printing_film-peel-corners.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/225/medium640/3d_printing_film-peel-corners.jpg?1579618430)

## Peel Acrylic Backings

These acrylic discs have backings on both sides so you’ll need to remove those as well.

![3d_printing_acrylic-peel.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/226/medium640/3d_printing_acrylic-peel.jpg?1579618513)

## Wet Acrylic

The roll of film has instructions for applying the film to windows (acrylic in our case). The directions say to use soapy water. I filled an empty spray bottle with **16oz** of water and **6 drops** of liquid hand soap. Spray the acrylic disc so the surface is has been fully wet.

![3d_printing_acrylic-wet.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/227/medium640/3d_printing_acrylic-wet.jpg?1579618557)

## Wet Film

The sticky side of the film also needs to be wet so spray it down and made sure to get total coverage. The trick is to use lots of soapy water so the two surfaces can adhere smoothly.

![3d_printing_film-wet.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/228/medium640/3d_printing_film-wet.jpg?1579618667)

## Place Film onto Acrylic

Place the film over the acrylic and try to get it in the center. Lay the film on top and press down. You can shift it into place if you need to.

![3d_printing_place-film-acrylic.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/229/medium640/3d_printing_place-film-acrylic.jpg?1579618758)

## Squeegee Wet Film

I used the squeegee that came with the film and rinsed out all of the water and air bubbles.

![3d_printing_film-squeegee-wet.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/230/medium640/3d_printing_film-squeegee-wet.jpg?1579618795)

## Soak Up Water

The serving tray should catch most of the water. I made sure to use plenty of paper towels to soak it all up.

![3d_printing_soakup-water.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/231/medium640/3d_printing_soakup-water.jpg?1579618909)

## Squeegee Film Dry

Squeegee the film until all of the soapy water has either been wiped away or dried out. You'll want to start from the center and wipe out towards to the edges.

![3d_printing_film-squeegee-dry.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/232/medium640/3d_printing_film-squeegee-dry.jpg?1579618964)

## Dry Acrylic Film

Once the application looks good, make sure to let the film dry several&nbsp; minutes before trimming the excess. The edges take a bit of time to fully dry.

![3d_printing_dry-film.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/233/medium640/3d_printing_dry-film.jpg?1579619009)

## Trim Excess Film

I flipped it over and used a box cutter to trim along the edge on the outside. You’ll want to be super careful not to scratch up the surface while doing this.

The acrylic disc only needs one side of the mirrored film.

![3d_printing_trim-excess-film.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/234/medium640/3d_printing_trim-excess-film.jpg?1579619108)

## Rinse and Repeat!

This took me several times to get right, so it takes a bit of effort to get a nice finish. With some practice and patience, we were able to get these two pieces.

If things don't look as good as you'd like, you can always peel off the film and try again!

![3d_printing_two-acrylics.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/235/medium640/3d_printing_two-acrylics.jpg?1579619235)

# NeoPixel Infinity Mirror Coaster

## Case Assembly

## Install Strip into Ring

The 3D printed ring will help the NeoPixel strip stay in place. The strip of NeoPixels is fitted inside the ring and wraps around with the LEDs facing inwards.

![3d_printing_ring-install-strip.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/236/medium640/3d_printing_ring-install-strip.jpg?1579619399)

## Slit for Wiring

The wiring is fitted through a slit so it doesn’t get kinked when installing the acrylic.

![3d_printing_ring-wire-slit.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/237/medium640/3d_printing_ring-wire-slit.jpg?1579619511)

## Hot Glue Strip to Ring

Dabs of hot glue can help attach the strip of NeoPixels to the ring. This keeps the strip nicely secured so it stays in place.

![3d_printing_ring-hotglue-strip.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/238/medium640/3d_printing_ring-hotglue-strip.jpg?1579619586)

## Installed Strip

Double check the strip of NeoPixels is nice and flush with the 3D printed ring. If you're using a different strip of NeoPixels, your LED count will be different.

![3d_printing_ring-strip-installed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/239/medium640/3d_printing_ring-strip-installed.jpg?1579619693)

## Test Strip

Make sure to test out the strip of NeoPixels to ensure everything is still working properly.

![3d_printing_ring-strip-test.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/240/medium640/3d_printing_ring-strip-test.jpg?1579619795)

## Clean Acrylic

It’s a good idea to wipe down the acrylic before installing them into the case. You can use a micro fiber cloth or wet wipes for glasses. Paper towel with alcohol works OK too (careful not to get fibers on the acrylic).

![3d_printing_clean-acrylic.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/241/medium640/3d_printing_clean-acrylic.jpg?1579619988)

## Install Acrylic Top

Grab one of the acrylic discs and begin to fit it into the top cover with the mirrored side facing inwards.

![3d_printing_install-acrylic-top.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/243/medium640/3d_printing_install-acrylic-top.jpg?1579620116)

## Install Ring to Top

The ring of NeoPixels can then be fitted inside the top cover. Make sure the wire is lined up and going through with the slit. Push the 3D printed ring all the way down so it's flush up against the acrylic disc.

![3d_printing_install-ring-top.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/244/medium640/3d_printing_install-ring-top.jpg?1579620234)

## Install Bottom Acrylic

Place the second piece of acrylic on top of the 3D printed ring. Press down so it's flush. Double check and make sure the wiring from the NeoPixel strip isn't being kinked.

![3d_printing_install-acrylic-bottom.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/245/medium640/3d_printing_install-acrylic-bottom.jpg?1579620291)

## Test Mirror Strip

With the two acrylic discs now in place, it's a good idea to power on the circuit to test out the effect. If there's any smudges, fingerprints or dust, you should be able to see it right away. If the effect doesn't look as expected, try flipping the acrylic discs.

![3d_printing_test-mirror-strip.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/247/medium640/3d_printing_test-mirror-strip.jpg?1579620379)

## Pass Circuit Through Frame

Grab the 3d printed frame and start to pass the electronics through. The side with the lip should be facing the acrylic disc.

![3d_printing_pass-circuit-frame.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/248/medium640/3d_printing_pass-circuit-frame.jpg?1579620518)

## Snap Fit Frame to Top

These two parts snap fits together and have pretty tight tolerances. Make sure the frame is lined up properly with the top cover. Reference the photo for the correct placement.

![3d_printing_snapfit-frame-top.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/249/medium640/3d_printing_snapfit-frame-top.jpg?1579620669)

## Check Wiring

Double check to make sure the wiring from the strip of NeoPixels is passing through the slits across the top cover and frame.

![3d_printing_wire-slit-check.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/250/medium640/3d_printing_wire-slit-check.jpg?1579620746)

## Install ItsyBitsy

The ItsyBitsy can then be snap fitted into the bottom cover. Tabs on the side will keep it in place.

![3d_printing_itsy-snapfit-bottom.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/251/medium640/3d_printing_itsy-snapfit-bottom.jpg?1579620794)

## Install Lipo Backpack

The Lipo backpack also press fits and the slide switch is installed into a little holder.

![3d_printing_lipo-snapfit-bottom.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/252/medium640/3d_printing_lipo-snapfit-bottom.jpg?1579620837)

## Install Switch

Insert the body of the switch at an angle and firmly press down to snap fit it into place.

![3d_printing_switch-snapfit-bottom.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/253/medium640/3d_printing_switch-snapfit-bottom.jpg?1579620885)

## Connect Battery

With the parts in place the battery can then be connected and tacked down with double-sticky tape or mounting tack.

![3d_printing_connect-bat.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/254/medium640/3d_printing_connect-bat.jpg?1579620921)

## Install Bottom Cover

The bottom cover can now be snap fitted into the frame with the openings lined up. Firmly press the two parts together to snap fit them shut.

![3d_printing_bottom-snapfit-frame.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/255/medium640/3d_printing_bottom-snapfit-frame.jpg?1579621010)

## Installed Bottom

The bottom cover should clamp into the frame. Make sure the port holes are properly lined up.

![3d_printing_installed-bottom.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/256/medium640/3d_printing_installed-bottom.jpg?1579621068)

## Test Build

Turn it on and try it out!&nbsp; My final build has a few tiny scratches and small air bubbles, but overall a decent finish.&nbsp;

![3d_printing_build-test.jpg](https://cdn-learn.adafruit.com/assets/assets/000/087/257/medium640/3d_printing_build-test.jpg?1579621120)


## Featured Products

### Adafruit Mini Skinny NeoPixel Digital RGB LED Strip - 144 LED/m

[Adafruit Mini Skinny NeoPixel Digital RGB LED Strip - 144 LED/m](https://www.adafruit.com/product/2970)
So thin. So mini. So teeeeeeny-tiny. It's the 'skinny' version of our classic NeoPixel strips!

These NeoPixel strips have 144 digitally-addressable pixel Mini LEDs per meter and are very affordable and are only 7.5 mm wide (0.3")&nbsp;if you remove the strip from the...

In Stock
[Buy Now](https://www.adafruit.com/product/2970)
[Related Guides to the Product](https://learn.adafruit.com/products/2970/guides)
### Adafruit ItsyBitsy nRF52840 Express - Bluetooth® LE

[Adafruit ItsyBitsy nRF52840 Express - Bluetooth® LE](https://www.adafruit.com/product/4481)
What's smaller than a Feather but larger than a Trinket? It's an **Adafruit ItsyBitsy nRF52840 Express** featuring the **Nordic nRF52840 Bluetooth® LE** processor! Teensy & powerful, with an fast nRF52840 Cortex M4 processor running at 64 MHz and 1 MB...

In Stock
[Buy Now](https://www.adafruit.com/product/4481)
[Related Guides to the Product](https://learn.adafruit.com/products/4481/guides)
### Adafruit LiIon/LiPoly Backpack Add-On for Pro Trinket/ItsyBitsy

[Adafruit LiIon/LiPoly Backpack Add-On for Pro Trinket/ItsyBitsy](https://www.adafruit.com/product/2124)
If you have an ItsyBitsy or Pro Trinket you probably know it's the perfect little size for a portable project. This LiPoly backpack makes it really easy to do! Instead of wiring 2 or 3 boards together to make a charging system, this little PCB sits on top of the PCB and allows a...

In Stock
[Buy Now](https://www.adafruit.com/product/2124)
[Related Guides to the Product](https://learn.adafruit.com/products/2124/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)
### Fully Reversible Pink/Purple USB A to micro B Cable - 1m long

[Fully Reversible Pink/Purple USB A to micro B Cable - 1m long](https://www.adafruit.com/product/4111)
This cable is not only super-fashionable, with a woven pink and purple Blinka-like pattern, it's also fully reversible! That's right, you will save _seconds_ a day by not having to flip the cable around.

First let's talk about the cover and over-molding. We got these...

In Stock
[Buy Now](https://www.adafruit.com/product/4111)
[Related Guides to the Product](https://learn.adafruit.com/products/4111/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 ItsyBitsy nRF52840 Express](https://learn.adafruit.com/adafruit-itsybitsy-nrf52840-express.md)
- [BLE Sniffer with nRF52840](https://learn.adafruit.com/ble-sniffer-with-nrf52840.md)
- [Adafruit NeoPixel Überguide](https://learn.adafruit.com/adafruit-neopixel-uberguide.md)
- [MASLOW: an Open WiFi Detector with Adafruit Pro Trinket and CC3000](https://learn.adafruit.com/wifi-hotspot-finder-adafruit-pro-trinket-cc3000.md)
- [Glowy Message Crown](https://learn.adafruit.com/glowy-message-crown.md)
- [Zelda Guardian Robot Terrako Companion](https://learn.adafruit.com/terrako.md)
- [Morning Star POV Double Staffs](https://learn.adafruit.com/pov-dotstar-double-staff.md)
- [Introducing Bluefruit LE Micro](https://learn.adafruit.com/bluefruit-le-micro-atmega32u4-microcontroller-usb-bluetooth-le-in-one.md)
- [Animated Flying Toaster OLED Jewelry](https://learn.adafruit.com/animated-flying-toaster-oled-jewelry.md)
- [Raspberry Gear](https://learn.adafruit.com/raspberry-gear.md)
- [Getting Started with CircuitPython and Bluetooth Low Energy](https://learn.adafruit.com/circuitpython-nrf52840.md)
- [Portable Trellis Sound Board](https://learn.adafruit.com/portable-trellis-sound-board.md)
- [Adafruit Pro Trinket LiPoly/LiIon Backpack](https://learn.adafruit.com/adafruit-pro-trinket-lipoly-slash-liion-backpack.md)
- [Pocket Galaxy](https://learn.adafruit.com/pocket-galaxy.md)
- [Talking d20 20-Sided Gaming Die](https://learn.adafruit.com/talking-d20-20-sided-gaming-die.md)
- [Eye of Newt](https://learn.adafruit.com/eye-of-newt.md)
