Overview
RGB LED lighting strips are everywhere. Many of these strips come with a handy infrared (IR) remote control that will allow you to select different colors, change brightness, and fade from one color to the next. They're very easy to install and use, but can be rather a disappointment for the discerning LED connoisseur.
The pre-programed animations and available colors on these cheap RGB strips are very basic. You can get ordinary solid colors or annoying blink modes, but buttery smooth subtle color shifts, gradients, and beautiful mesmerizing animations are far beyond the reach of these "dumb" RGB strips. For subtlety and beauty, you need NeoPixels - "smart" individually addressable LED lights that can be controlled with code.
This guide will show you how to get beautiful, subtle NeoPixel animations up and running and controllable with a simple IR remote in minutes, with no coding required.
The free, open-source WLED app allows you to create your own NeoPixel animations, choosing from hundreds of effects and color palettes. Automatically map your custom animations to the buttons on your IR remote, so you can choose solid colors or run your beautiful custom animations from the same controller.
This works with a traditional inexpensive IR sensor:
Or you can use Adafruit's IR Remote Receiver, which has IR sensors that face in two directions. This is a plug-and-play solution with a Stemma connector so you don't need to worry about soldering fiddly sensor legs.
WLED software will work with a wide variety of different remotes. For this tutorial I'm using this 44-key remote from Amazon.
Page last edited June 11, 2024
Text editor powered by tinymce.
Wiring Diagram
We'll be powering the pixels directly through the board since we only have a few pixels. This arrangement works for small projects of 30-60 pixels. For larger projects with more LEDs, you'll want to power the pixels directly from a 5V power supply. If you are powering more than 20 LEDs or so, see the guides below:
The QT Py attaches back-to-back with the BFF using soldered-on headers.
The NeoPixel strip plugs into the 3-pin connector on the BFF, and the IR sensor will plug into the Stemma port on the QT Py using a a Stemma cable.
Page last edited June 11, 2024
Text editor powered by tinymce.
WLED Software
Board Choices
WLED runs on several different boards in Adafruit's collection. There are different benefits to each, but the installation process is largely the same. This page contains instructions for multiple boards -- be sure to use the pinouts and installation instructions for the one you're using,
Sparkle Motion
This is our flagship ESP32 board, designed with WLED and Xlights in mind. It has 4 outputs and is set up to drive either 5v, 12v or 24v pixels. It's a workhorse of a board and for larger projects it's the clear winner. It has an onboard microphone for instant sound-reactive support, and an IR sensor built in, to make it easy to control your project with an infrared remote. It also has a couple stemma ports so you can add your own sensors or peripherals.
Sparkle Motion Mini
The Sparkle Motion Mini is a smaller version of the Sparkle Motion board. It has two LED outputs, a microphone, and two stemma ports that make it easy to add an IR sensor or other peripherals. It's got an onboard NeoPixel and a small footprint, making it perfect for wearables or smaller projects. It will power a whole lot of pixels through the onboard USB port: it's safe to draw up to 4A through this port, giving you plenty of power for most wearable projects.
QT Py Pico ESP32
The QT Py Pico is small and affordable, so usually my go-to for smaller costumes or wearables. It also has a range of BFF add-on boards that add functionality. Here's a guide with more QT Py info. The QT Py will drive up to around 30 pixels through the onboard USB port, so if you have more LEDs than that you may want to consider the Sparkle Motion Mini instead, or you can power the board through the +5v pin.
Note: WLED works on the QT Py Pico but NOT on the S2 or S3 versions, at the time of writing.
Feather Huzzah ESP32
The Feather Huzzah ESP32 the top of the line. It's a great choice for projects where you want to add sensors, interaction, or drive a whole lot of LEDs. It's the most reliable as well -- I've run these for two months straight with no power cycling and they just keep on truckin. Adafruit has a very wide selection of Feather Wing boards that connect to the Feather microcontroller line. The sky is the limit with these boards.
It also comes in a version with a high-powered WiFi range extender! If you're trying to sync multiple instances across distance, check this one out. Feather Huzzah ESP32 V2 w.FL Antenna
Feather Huzzah ESP8266
The Feather Huzzah ESP8266 will run WLED as well, but won't drive as many pixels: the ESP32 limit on WLED is around 1000 pixels per input, but the ESP8266 tops out at around 500. It's about $5 cheaper though, so for smaller projects it's a great way to save a little money and still have access to all the Featherwing options in the Adafruit store.
Driver Update
Some versions of our controllers have a new serial chip which needs a driver installed before we can install WLED. Head over to our How to Install Drivers for WCH USB to Serial Chips tutorial, and download and install the new driver.
If you have an older QT Py with CP2102 USB-to-Serial bridge, use SiLabs’ driver instead.
Install WLED
These next steps require a Web Serial-compatible browser. As of this writing, that means Google Chrome, Microsoft Edge or Opera ,or Firefox “desktop” browsers. Other browsers (Safari, Explorer and anything mobile) won’t work.
Visit https://install.wled.me/
Plug your microcontroller into your computer with a known good USB cable. Click "Install" and select the port for your board.
Depending on the USB-to-serial bridge chip on the board, you might see one or two serial ports. On Mac, for instance, there might be both “/dev/cu.usbmodem[number]” and “/dev/cu.wchusbserial[number]”. Use the “wchusbserial” one.
After successful installation, enter your WiFi network name and password when prompted. This must be a 2.4 GHz WiFi network; ESP32 does not support 5 GHz networks. If it can’t connect, then as a fallback WLED will create its own 2.4 GHz WiFi access point.
If you don't see the "Connect to Wi-Fi" prompt, you'll need to set up your WiFi network using AP (access point) mode. Open up your WiFi settings and look for a WiFi network called WLED-AP. (Note, this access point can take up to 30 seconds to appear sometimes.) Connect to this network using the default password wled1234. The WLED interface will pop up in its own captive browser window.
From here, go into Config/Wifi Settings and enter your WiFi credentials for the access point you normally use near the top.
Give your project a name in the mDNS field a little further down the page. Now you can type in "projectname.local" (where "projectname" is your mDNS name) into any web browser on the same wifi network to access your microcontroller.
You can also scan the QR code below to open access point mode.
For more help and troubleshooting tips visit the Getting Started page on the WLED knowledge base.
WiFi Setup
Head to the WiFi Setup screen under Config and create a good URL so you can control your project from any web-enabled device. Call it something you'll remember, that's easy to type into any web browser on your WiFi network in order to connect to your project.
In Safari or Chrome on your phone or computer, type in this web address to access the WLED interface: http://projectname.local (where "projectname" is whatever you put into this field).
Check out the Additional Settings page for more info on accessing your project. WLED has an "access point mode" that doesn't require a WiFi network for when you're out on the go. It's also helpful to download one of the WLED apps to help manage and organize your projects.
LED Preferences
Next, head to the LED Preferences tab under the Config menu.
Scroll down to Hardware Setup. Put your total number of LEDs into the "Length" field, and change GPIO to the pin number associated with the pin you soldered to. Check the pinout diagram for the board you're using (it's the number in yellow).
Now you can use any computer or handheld device to control your LEDs.
Make sure your device is on the same WiFi network as your board. Navigate to your custom URL (projectname.local/ ) in a web browser. You'll see a color picker above a whole bunch of color palette choices.
Choose a color, choose an effect, and watch your lights animate and glow!
Save your favorite combinations as presets, create playlists, control the speed and intensity of the animations, and lots more. This web app is incredibly intuitive and easy to use.
Head over to the WLED wiki at https://kno.wled.ge/ to delve into all the particulars.
Page last edited June 11, 2024
Text editor powered by tinymce.
Electronics Assembly
Assembly is fairly simple for this project. Watch the video tutorial for a complete step-by-step.
Solder headers onto the QT Py and BFF to stick them together. If you're new to soldering headers, check out this How to Solder Headers guide.
The boards align back-to-back, so I soldered regular headers onto the QT Py and female socket headers onto the back of the BFF.
Trim the sensor legs about halfway down. Cut the yellow wire off your stemma connector - we only need 3 wires for the sensor.
With the sensor bump facing you and the legs pointing down, slip the red wire onto the leg on the right, the black wire to the middle leg, and the blue wire to the leg on the left.
Cover the connections with heat shrink, and squirt a little hot glue inside before you shrink it down to hold the connections firmly together.
Solder to the stemma connector as follows:
- IR sensor red --> stemma red
- IR sensor black --> stemma black
- IR sensor white --> stemma blue
The yellow wire on the stemma connector is unused.
Plug your smaller stemma wire into the QT Py's stemma port, and your larger stemma wire into the IR sensor. Connect the two together by soldering or just plugging in the male and female ends.
Plug the sensor into the Stemma port on the QT Py and the NeoPixel strip into the BFF's NeoPixel port. Plug the QT Py into power with the USB cable. And you're in business!
Troubleshooting
If the lights don't come on, or the remote doesn't seem to do anything, here are a couple things to try:
- Open the WLED software and go to the LED Settings page. Make sure you have the correct pin (GPIO) entered here. The BFF's port is attached to A3, which corresponds to digital pin 15 (A3 is the analog pin number. Find this out in the pinout diagram in the QT PY guide).
- Also be sure you've chosen IR GPIO pin 22 in the WLED software on the same page, and that you've selected your remote from the dropdown.
- Wiggle the connections on the IR sensor to be sure they haven't pulled loose.
- If it's still not working, head over to the NeoPixel Uberguide and try uploading some basic code, just to see whether the problem is with your wiring or with the software. If you can get the lights to come on using Arduino or CircuitPython, the trouble is with the software -- try reinstalling.
Page last edited June 11, 2024
Text editor powered by tinymce.
IR Remote Setup
IR Remote Setup
Click the LED Preferences tab and scroll down to Hardware Setup.
Change the IR GPIO pin to 12, which corresponds to the pin soldered to the IR sensor, and select the remote you're using from the list.
Remote Usage
Save your favorite combinations as presets, create playlists, control the speed and intensity of the animations, and lots more. This web app is incredibly intuitive and easy to use.
When you're in "solid" mode in WLED, the color buttons near the top of the remote will change the colors, making the pixels act like a "dumb" RGB strip.
On my 44-key remote, there are buttons near the bottom labeled "DIY1", "DIY2" etc. WLED will automatically assign your animation presets to these buttons so you can select your favorite presets or playlists. Simply save the presets you want to the first 6 preset slots and the buttons will pull them up.
You will need to press the button marked "Auto" to switch to DIY mode on the remote. Press "Auto" then "DIY1" to play the preset saved to slot #1 in WLED.
Head over to the WLED wiki at https://kno.wled.ge/ to delve into all the particulars.
Page last edited June 11, 2024
Text editor powered by tinymce.