Introduction: Neopixel Tester
You may be building a project that uses Neopixel LED's or have some in your component box that you want to check they function. I had the same need but rather than wait until the project was complete to find an issue, I wanted to make sure that they worked during the build process as I was hand soldering multiple LED's
As a result I built the following simple functional checker, used with WS2812/SK6812 LED's (nominal supply 5V but will work at 3V), but could be used to check other variants with suitable modifications.
As the project I was building was using a Microbit, 3V operation was ideal as they could be driven directly without requiring a higher voltage or level shifting.
Available output current subject to the Microbit version is V1(90mA)/V2(270mA)
This project was verified with both Microbit versions but only to a maximum of 81.5mA.
Step 1: Design Requirements
The design requirements were to be able to test multiple LED's in a string from 1 to 25 maximum.
In addition to the number of LED's switching between the primary colours of Red, Green and Blue and brightness adjustment were required.
25 is a worst case maximum for all LED's lit, although in use 13 would be the maximum therefore plenty of current margin would exists.
Worst case current 20mA *25 = 500mA (one colour only per LED at maximum brightness), which is much higher than the maximum output current from the Microbit. Consequently, a suitable brightness setting would be required to ensure that the Microbit was not overstressed.
Further details on Neopixel requirements can be found here.
With a current drain of 80% of 90mA = 81mA for 25 LED's = 3.24mA /LED.
At this stage measurements were taken of output current versus brightness settings for each colour to determine if there was sufficient capability to test 25 (WS2812/SK6812), LED's simultaneously.
The maximum number of LED's that could be driven is related to the colour, Green and Blue had similar current requirements. However, Red was twice the current of either the Green or Blue.
A brightness setting of 160 for Red gave 81.5mA and satisfied the worst case design requirements.
Both Green or Blue could be set to a brightness of 255 and still be less than 81.5mA.
As it transpired setting a Brightness of 10 and ~0.5mA/LED was sufficiently bright for the project, indicating that 100+ Neopixel LED's could possibly be drive by the Microbit at a brightness of 10.
Well at the time of publishing the original Instructable I did not have enough LED's but since then I have managed to evaluate a 60 LED Neopixel string using all three colours without any issue.
I will evaluate a longer string when I get one.
Step 2: Software
The application was created using MakeCode Blocks
Step 3: Hardware
The hardware consists of a Microbit, and the recommended components, a reservoir capacitor (1000uF/6V3 min, electrolytic), connected between V+ & 0V and a resistor (470R), connected in series with the data line connected at the first LED.
The capacitor and the resistors were mounted on stripboard to ease future assembly and a suitable connector for the LED string to be tested will be required.
The specific Neopixel LED's used are pre-mounted to a leadless carrier and require connections to be soldered to enable control. Serial in line headers, straight or right angle individually or combined make suitable connections in addition to wires.
Using SIL pins and F/F jumpers allows custom strings to be created by plugging in LED's as required.
Step 4: Operation
Note: **** The MakeCode Block simulator does not show the protection circuit. However, this must be included in the actual circuit. ***
Operation and mode setting is via the A & B buttons.
Pressing A+B selects the Mode.(Mn)
M0 = Enables selection of the number of LED's in the string.
Button A = (+Sn) which increments the string count. (Maximum 25)
Button B= (-Sn) which decrements the string count. (Minimum 0)
M1 = Enables colour and brightness
Button A = Colour Red, Green, Blue and off
Button B = Brightness (0 to 250) in steps of 10.
Plug in and Switch on.
At switch on the output is disabled to prevent damage to both Microbit and LED's
Press A+B to select the mode M0 then press A for S1, each successive pressing of A increments and B decrements S. Use A and B to set the number of LED's in the string.
Press A+B to select the mode M1.
Then press A to select the colour Red, Green, Blue or Off.
Press B to increase the brightness from 10 to 250 in steps of 10.
Modes and selections are shown on the Microbit display.