# LED Neon Signs with NeoPixels

## Overview

https://youtu.be/kxFSyqw5DW4

Build neon-like signs using NeoPixel LEDs and 3D Printing! Use QT Py RP2040 and CircuitPython to make LED animations that bring them to life!

These strips feature flexible silicone diffusion for a neon look, with the individual addressable capabilities of NeoPixels.&nbsp;

We 3D printed some signs that allow you to use the full meter long strip of NeoPixels.

![led_strips_hero-signs-5k.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/455/medium640/led_strips_hero-signs-5k.jpg?1652193647)

It’s a simple easy press fit installation so there’s no need for cutting or splicing.

The four designs use a 1 meter strip to make simple shapes designed to fit on the bed of our 3D printer.

![led_strips_install-3.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/452/medium640/led_strips_install-3.jpg?1652190059)

## Prerequisite Guides

Take a moment to walk through the following guides.

- [CircuitPython LED Animations](https://learn.adafruit.com/circuitpython-led-animations)
- [QT Py RP2040 Introduction](https://learn.adafruit.com/adafruit-qt-py-2040)
- [NeoPixel Uber Guide](https://learn.adafruit.com/adafruit-neopixel-uberguide)

## Parts
Featured
### Adafruit QT Py RP2040

[Adafruit QT Py RP2040](https://www.adafruit.com/product/4900)
What a cutie pie! Or is it... a QT Py?&nbsp;This diminutive dev board comes with one of our new favorite chip, the RP2040. It's been made famous in the new [Raspberry Pi Pico](https://www.adafruit.com/pico) _and_ our [Feather...](http://www.adafruit.com/product/4884)

In Stock
[Buy Now](https://www.adafruit.com/product/4900)
[Related Guides to the Product](https://learn.adafruit.com/products/4900/guides)
![Video of hand holding a QT Py PCB in their hand. An LED glows rainbow colors.](https://cdn-shop.adafruit.com/product-videos/640x480/4900-06.jpg)

Featured
### Flexible Silicone Neon-like Skinny NeoPixel LED Strip

[Flexible Silicone Neon-like Skinny NeoPixel LED Strip](https://www.adafruit.com/product/4310)
You love NeoPixels, and you love silicone diffusion? Peep this&nbsp; **Flexible Silicone Neon-like Skinny NeoPixel LED Strip**! OK it's a bit of a mouthful, but check out the beautiful footage! It&nbsp;_looks_&nbsp;a lot like a slim strip of neon, but without the need...

In Stock
[Buy Now](https://www.adafruit.com/product/4310)
[Related Guides to the Product](https://learn.adafruit.com/products/4310/guides)
![Demo Video of hands squeezing and unraveling the illuminated Flexible Silicone Neon-like Skinny NeoPixel LED Strip.](https://cdn-shop.adafruit.com/product-videos/640x480/4310-00.jpg)

Featured
### Pink and Purple Woven USB A to USB C Cable - 2 meters long

[Pink and Purple Woven USB A to USB C Cable - 2 meters long](https://www.adafruit.com/product/5044)
This cable is not only super-fashionable, with a woven pink and purple Blinka-like pattern, it's also made for USB C for our modernized breakout boards, Feathers and more.&nbsp; [If you want something just like it but for Micro B, we have a B...](https://www.adafruit.com/product/4111)

Out of Stock
[Buy Now](https://www.adafruit.com/product/5044)
[Related Guides to the Product](https://learn.adafruit.com/products/5044/guides)
![Angled shot of a pink/purple woven USB cable plugged into a laptop port and a small dev board.](https://cdn-shop.adafruit.com/640x480/5044-04.jpg)

Featured
### 5V 2A Switching Power Supply w/ USB-A Connector

[5V 2A Switching Power Supply w/ USB-A Connector](https://www.adafruit.com/product/1994)
Our 5V 2A USB power adapter is the perfect choice for powering single-board computers like Raspberry Pi, BeagleBone, or anything else that's power-hungry!

This adapter was specifically designed to provide 5.25V, not 5V, but we still call it a 5V USB adapter. We did this on purpose to...

In Stock
[Buy Now](https://www.adafruit.com/product/1994)
[Related Guides to the Product](https://learn.adafruit.com/products/1994/guides)
![5V 2A Switching Power Supply with  USB-A Connector](https://cdn-shop.adafruit.com/640x480/1994-01.jpg)

# LED Neon Signs with NeoPixels

## Circuit 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/111/359/medium800/led_strips_circuit-diagram.jpg?1652101901)

## Wiring Connections
NeoPixel Strip

- NeoPixel **GND** to QT Py RP2040 **GND**
- NeoPixel **5V** to QT Py RP2040 **5V**
- NeoPixel **DIN** to QT Py RP2040 **A0**

# LED Neon Signs with NeoPixels

## 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_qtpy_rp2040/)
 **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/101/680/medium800/adafruit_products_QTRP_buttons.jpg?1618956837)

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)
# LED Neon Signs with NeoPixels

## Code

![](https://cdn-learn.adafruit.com/assets/assets/000/111/444/medium800/led_strips_code-banner.jpg?1652186427)

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

To do this, click on the **&nbsp;Download Project Bundle** &nbsp;button in the window below. It will download as a zipped folder.

## Upload the Code and Libraries to the QT Py RP2040
https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/NeoPixel_Neon_Signs/code.py

After downloading the Project Bundle, plug your QT Py RP2040 into the computer's USB port. 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 QT Py RP2040's&nbsp; **CIRCUITPY** &nbsp;drive.&nbsp;

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

Your QT Py RP2040 **CIRCUITPY&nbsp;** drive should look like this after copying the&nbsp; **lib** &nbsp;folder and the&nbsp; **code.py&nbsp;** file.

![](https://cdn-learn.adafruit.com/assets/assets/000/111/443/medium800/led_strips_circuitpy-drive.jpg?1652186356)

# LED Neon Signs with NeoPixels

## Wiring NeoPixel Strip

## Unpack NeoPixel LED Strip

Take the NeoPixel strip out of the packaging to get it ready.

Remove the hook and loop banding and unwind the meter long strip onto your work surface.

![led_strips_strip-stock.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/360/medium640/led_strips_strip-stock.jpg?1652101953)

## Data in and out

Locate the data in and data out connectors on each end of the strip.

The cable with the latching tab is **Data In** and is the start of the NeoPixel strip.

The other end is Data Out and has the last LED in the strip.&nbsp;

![led_strips_strip-data-in-out.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/361/medium640/led_strips_strip-data-in-out.jpg?1652101986)

## Data Out

Locate the data out cable and get it ready to remove.

The data in cable will be soldered to the pins on the QT Py RP2040.

![led_strips_strip-data-out.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/362/medium640/led_strips_strip-data-out.jpg?1652102034)

## Cut Data Cable

Use flush diagonal cutters to cut off the data out cable from the strip.

![led_strips_strip-data-out-cut.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/363/medium640/led_strips_strip-data-out-cut.jpg?1652102167)

## Connect Cable to QT Py

Get the data out cable ready to solder to the QT Py.

The wires might be fused together - if so, peel apart the three wires like the photo.

![led_strips_qtpy-cable.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/364/medium640/led_strips_qtpy-cable.jpg?1652102723)

## Tin Wires

Prep the wires using wire strippers to remove a bit of insulation from the tips of each wire.

Use third helping hands to help keep the wires sturdy while soldering.

Tin the wires by adding a bit of solder to them. This will help prevent the strands of wire from fraying.

&nbsp;

![led_strips_qtpy-cable-tin.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/365/medium640/led_strips_qtpy-cable-tin.jpg?1652102748)

## Solder Wires to QT Py

Use a vise to keep the Qt Py PCB sturdy while soldering.

Solder the red wire to the 5V pin.

Solder the black wire to the GND pin.

Solder the green wire to pin A0.

![led_strips_qtpy-cable-solder.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/366/medium640/led_strips_qtpy-cable-solder.jpg?1652102478)

## Connect Strip to QT Py

Remove the Qt Py from the vise and connect the cables together.

![led_strips_qtpy-strip-connect.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/367/medium640/led_strips_qtpy-strip-connect.jpg?1652102807)

## Power QT Py

Test the circuit by powering the QT Py RP2040 using a 5V USB battery or power supply.

If it doesn't light up, ensure CircuitPython and the code is on the QT Py.

![led_strips_qtpy-power.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/368/medium640/led_strips_qtpy-power.jpg?1652102886)

# LED Neon Signs with NeoPixels

## 3D Printing

## Slice Settings

Use PLA filament that is tested and proven to produce strong parts. Reference the following slice settings for best results.

- 220C Nozzle Temperature
- 60C Heated Bed
- 0.4mm Line Width
- 2x Wall Line Count
- 10% Infill Gyroid
- 6x Top/Bottom Layers

![led_strips_slice-blinka.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/422/medium640/led_strips_slice-blinka.jpg?1652120754)

## Build Volume

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

Rotate lightning bolt sign to utilize diagonal length of the bed.

- 300mm (X) x 300mm (Y) x 100mm (Z)

![led_strips_slice-bed.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/424/medium640/led_strips_slice-bed.jpg?1652120962)

[Download STL files](https://cdn-learn.adafruit.com/assets/assets/000/111/449/original/STLs.zip?1652189742)
[Download CAD Source](https://cdn-learn.adafruit.com/assets/assets/000/111/450/original/cad.zip?1652189951)
![](https://cdn-learn.adafruit.com/assets/assets/000/111/439/medium800/led_strips_hero-blinka-sign.jpg?1652185333)

## Blinka The Python

A simple outline of Blinka, the CircuitPython mascot.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/111/440/medium800/led_strips_hero-rainbow-sign.jpg?1652185373)

## Rainbow

This is rainbow-like shape that curves at the end of each segment.

![](https://cdn-learn.adafruit.com/assets/assets/000/111/441/medium800/led_strips_hero-bolt-sign.jpg?1652185396)

## Lightning Bolt

This bolt features three segments and very tight corners.

![](https://cdn-learn.adafruit.com/assets/assets/000/111/442/medium800/led_strips_hero-cat-sign.jpg?1652185406)

## Neon Kitty

This is a simple side-profile of a cat with a long and curvy tail. Meow!

# LED Neon Signs with NeoPixels

## NeoPixel Installation

## Installation

Begin installing the NeoPixel LED strip by starting with the end of the strip going in first with the light side facing up.

In the cat sign, the end of the strip is fitted into the tail first.

![led_strips_install-1.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/445/medium640/led_strips_install-1.jpg?1652189250)

## Installation (Continued)

Continue to press the strip into the channel.

Be careful not to bend the strip too much when fitting into sharp corners.

![led_strips_install-2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/446/medium640/led_strips_install-2.jpg?1652189323)

The strip won't fully conform to sharp corners due to the thickness of the silicone. Signs like the lightning bolt feature&nbsp; corners with minimum radius of 8mm.

![led_strips_neon-strip-corners.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/457/medium640/led_strips_neon-strip-corners.jpg?1652194665)

Danger: 

## Installation (Continued)

Proceed to fit the NeoPixel LED strip into the sign with the starting end going in last.

Gently go back and forth pressing the strip into the sign to fully seat it into the channel.

![led_strips_install-3.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/447/medium640/led_strips_install-3.jpg?1652189423)

## Installed Strip

And thats it! Congratulations on building a Neon-like sign.

![led_strips_install-4.jpg](https://cdn-learn.adafruit.com/assets/assets/000/111/448/medium640/led_strips_install-4.jpg?1652189542)

## Power it Up!

Use a 5V USB battery or power supply to power the QT Py RP2040 using a USB-C to USB-A cable.

![](https://cdn-learn.adafruit.com/assets/assets/000/111/463/medium800/led_strips_hero-cat-sign.jpg?1652204142)


## Guide Products

### Adafruit QT Py RP2040

[Adafruit QT Py RP2040](https://www.adafruit.com/product/4900)
What a cutie pie! Or is it... a QT Py?&nbsp;This diminutive dev board comes with one of our new favorite chip, the RP2040. It's been made famous in the new [Raspberry Pi Pico](https://www.adafruit.com/pico) _and_ our [Feather...](http://www.adafruit.com/product/4884)

In Stock
[Buy Now](https://www.adafruit.com/product/4900)
[Related Guides to the Product](https://learn.adafruit.com/products/4900/guides)
### Flexible Silicone Neon-like Skinny NeoPixel LED Strip

[Flexible Silicone Neon-like Skinny NeoPixel LED Strip](https://www.adafruit.com/product/4310)
You love NeoPixels, and you love silicone diffusion? Peep this&nbsp; **Flexible Silicone Neon-like Skinny NeoPixel LED Strip**! OK it's a bit of a mouthful, but check out the beautiful footage! It&nbsp;_looks_&nbsp;a lot like a slim strip of neon, but without the need...

In Stock
[Buy Now](https://www.adafruit.com/product/4310)
[Related Guides to the Product](https://learn.adafruit.com/products/4310/guides)
### Pink and Purple Woven USB A to USB C Cable - 2 meters long

[Pink and Purple Woven USB A to USB C Cable - 2 meters long](https://www.adafruit.com/product/5044)
This cable is not only super-fashionable, with a woven pink and purple Blinka-like pattern, it's also made for USB C for our modernized breakout boards, Feathers and more.&nbsp; [If you want something just like it but for Micro B, we have a B...](https://www.adafruit.com/product/4111)

Out of Stock
[Buy Now](https://www.adafruit.com/product/5044)
[Related Guides to the Product](https://learn.adafruit.com/products/5044/guides)
### 5V 2A Switching Power Supply w/ USB-A Connector

[5V 2A Switching Power Supply w/ USB-A Connector](https://www.adafruit.com/product/1994)
Our 5V 2A USB power adapter is the perfect choice for powering single-board computers like Raspberry Pi, BeagleBone, or anything else that's power-hungry!

This adapter was specifically designed to provide 5.25V, not 5V, but we still call it a 5V USB adapter. We did this on purpose to...

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

## Related Guides

- [Adafruit QT Py RP2040](https://learn.adafruit.com/adafruit-qt-py-2040.md)
- [FunHouse Motion Detecting Lights with LIFX Bulbs](https://learn.adafruit.com/funhouse-motion-detecting-lighting-for-lifx-bulbs.md)
- [NeXT Bus Mouse to USB HID with CircuitPython](https://learn.adafruit.com/next-bus-mouse-to-usb-hid-with-circuitpython.md)
- [Feather RP2040 DVI CircuitPython Day 2024 Countdown Clock](https://learn.adafruit.com/feather-rp2040-dvi-circuitpython-day-2024-countdown-clock.md)
- [Split Ortho Keyboard with TCA8418 Matrix Expanders](https://learn.adafruit.com/split-ortho-keyboard.md)
- [LEGO Set Lighting](https://learn.adafruit.com/lego-set-lighting.md)
- [3D Print Ratcatcher 2 Controller Device](https://learn.adafruit.com/3d-print-ratcatcher-2-controller-device-wand.md)
- [Stained Glass Lamp](https://learn.adafruit.com/stained-glass-lamp.md)
- ["Mother of all Demos" USB Keyset](https://learn.adafruit.com/usb-keyset.md)
- [PowerWash Simulator Nozzle Controller](https://learn.adafruit.com/powerwash-simulator-nozzle-controller.md)
- [No-Code WipperSnapper Water Detection](https://learn.adafruit.com/water-detection-with-wippersnapper.md)
- [QT Py RP2040 USB to Serial MIDI Friends](https://learn.adafruit.com/qt-py-rp2040-usb-to-serial-midi-friends.md)
- [Adafruit CircuitPython Wii Classic Controller Library](https://learn.adafruit.com/adafruit-circuitpython-wii-classic-controller-library.md)
- [Tandy 1000 Keyboard to USB with CircuitPython](https://learn.adafruit.com/tandy-1000-keyboard-to-usb-with-circuitpython.md)
- [IBM PC Keyboard to USB HID with CircuitPython](https://learn.adafruit.com/ibm-pc-keyboard-to-usb-hid-with-circuitpython.md)
- [No-Code IKEA Vindriktning Air Quality Sensor Hack with Adafruit IO](https://learn.adafruit.com/no-code-ikea-vindriktning-hack-with-qt-py-esp32-s3-and-adafruit-io.md)
