Arduino Controller

I’m posting this just for reference, since I ultimately decided not to use Arduino controllers due to cost, size, and memory limitations. They are nice to start with though as they are fully-assembled and easy to find/buy, and if you can work with one of them- you can work with the other DIY controller boards I’m using.

As I said earlier- I started this adventure by digging an Arduino Uno out of my junk drawer and loading the FastLED library on it. Then I just tweaked a sketch called the “100 Line Demo”. I’m linking both here:

Arduinos are really simple to deal with for the most part. There are a LOT of online resources at:

They are used for robotics, 3D printers, home automation (IoT), and education. Basically you just need to install the Arduino IDE (Integrated Development Environment), load up a sketch, and flash it to the board. There is a bit more to that, such as adding libraries and configuring options by editing the sketch (just a text file), but the instructions that are out there are outstanding.

You can buy the boards from multiple sources on the Internet, including the Arduino Store and It’s a great thing to start with if you have no idea what microcontrollers do and how to work with them.

The hardest thing I’ve found is that I use Macs, and Apple keeps making it harder and harder to install 3rd party system-level drivers, like those needed to support some serial chipsets via USB. Mine has had so many dicy serial drivers installed on it over the years that it took me awhile to get the Arduino to be recognized again, as well as the D1 Mini I’m working with now. It’s significantly easier in Windows since most drivers are included or will be automatically installed.

One thing I didn’t realize is the latest version of MacOS- Catalina, actually comes with the drivers I needed, but again- there were conflicts with older installs I had done, so things weren’t working right. Most Mac users who work in IT or are “Makers” or hardware hackers are familiar with having to jump through hoops sometimes to get things to work on a Mac.

In any case, here is a rough drawing of my first setup:

First to explain a few things- the WS2801 modules along the top represent a large number of strings of LEDs, and not single ones. Right now I am actually only driving 100 as a test. I wanted to show how the Power Injection works, as it is needed for longer strings. Basically every “x” LEDs, you need to inject power to overcome the voltage loss from the circuits and wiring. In this case- I illustrated it every 100 LEDs. Note that the green Data wire is untouched.

Once the Arduino is programmed, via an onboard USB port, there are only three wires that need to be connected to it- two for power and the data line. The actual data-out port can be specified in the sketch that you upload to it. Generally people use D3.

This is a 12v system, and conveniently the Arduino Uno accepts 12v and has an onboard voltage regulator to step it down to the 5v it actually uses. It has a barrel connector that can be used to power it, or you can simply use the Vin and Gnd pins. If you use 5v LEDs- you can also power it using the 5v pin, or a USB plug connected properly to your power source.

The capacitor helps smooth out any power spikes that can occur with the rapidly switching LEDs, and the resistor (anything from 300-500 ohms) smooths out any reflection spikes on the data line. There is some debate if either are actually “needed”, but they help provide a good tolerant circuit design for under 50 cents.

As I showed earlier- right now the whole setup is just cobbled together in a little plastic storage box with the lid taped down to make it sort-of weatherproof. (It’s also in a covered area, so really doesn’t get wet anyway.) This was just a prototype as I learned how to work with these components.

For this particular installation- I found an old extension cord worked very well for providing the 12v power and data line between my controller and lights. I used the black and white wires for v+ and ground, and the green (ground) wire for data. I may actually do this for most displays moving forward, as extension cords tend to be cheaper than “low voltage” wiring, while still being relatively heavy-gauge.

I also wanted to share this…
I’m using these for all of my splices. The work much better than I had even hoped and provide a solid weatherproof connection. You don’t necessarily have to buy expensive waterproof connectors for the strings. Many have noted too that there are incompatibilities among those connectors which can potentially burn out your pixels. It’s a no-brainer using splices like this.

There are a bunch of companies selling similar products online. I believe they probably all come from the same place. You can solder and heat shrink at the same time using a heat gun. I don’t use open flames, but found a heat gun actually works amazingly well. The solder melts at a lower temperature.

If you buy large strings of pixels- you will find yourself needing to cut and splice them anyway to get the right pixel count for a given feature. These are a great way to do this.

BTW- this is a good place to mention that I will often post links to suppliers and especially Amazon. I do NOT post referral links and don’t get anything from these. I encourage you to shop around too- eBay is a great source of parts, as are a lot of the direct-from-China distributors like AliExpress (Alibaba) and Banggood.

Next I plan to step through what it took to set up my first “D1 Mini” pixel controller using ESPixelStick.