Video: Cycling through colors and white brightness levels using an Arduino Uno.
Now that we know there’s definitely two unreleased colors (Orange and Teal) programmed into the hilt, we wanted to see why the blades weren’t displaying the colors properly.
On possibility was that the blade’s particular PCB traces (aka LED wiring) was somehow preventing these colors as options.
The blade uses 4 pin Anode (not Cathode!) RGB LEDs to display colors. These LEDs actually have a tiny Red, Green, and Blue LED inside of them— Different colors are created by adjusting them individually.
There’s a different pin for each color, along with an additional pin for common ground (cathode), OR common (anode), which is a very important distinction to make when you’re testing— Their RGB PWM values are opposites, so the same code won’t work.
Example: Cathode’s red (255,0,0) is cyan on an Anode led, while Anode’s cyan (0,255,255) is red on a Cathode.
After using the correct code for Anode LEDs, I was able to have an Arduino cycle through a wide spectrum of colors and brightnesses successfully.
So… that leaves the LED driver controller or the communication from the hilt itself as the problem. Here’s hoping it’s the blade and not the hilt, since one is definitely easier for customers to upgrade for a fix.