NES controller Pixel LED

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
NES controller Pixel LED
by on (#166076)
Hey everyone, I have a question about wiring a W2812b LED into a controller of the NES. I have a very basic understanding of electronic components etc, but this stumped me. I have modded a few controllers with standard LED's, and while that looks allright, I wondered if it was possible to wire a programmable "Neopixel" LED into the controller, where the button inputs result in different colours.

The base soldering I did is as follows:

Image

This does not result in lighting the LED immediately... but connecting the middle "Dout" pin to the Latch pin of the controller, and fiddling around pressing the buttons, has resulted the LED to light up, but not to a reliable extent, where it can be used.

This is where I come for your help, am I missing something concerning the "Latch, clock, data" pins of the controller? Do I need to add another piece of hardware to ensure it lights up reliably?
Re: NES controller Pixel LED
by on (#166080)
The WS2812b protocol isn't really compatible with the NES's protocol.

The WS2812b is a single-wire communication device, which sends data and clock over the same wire, and has relatively comparatively strict requirements on the exact speed at which it communicates. But the NES always transmits things in approximately the same way, and the speed at which it reads things will heavily depend on specific game.

Did you mean the WS2801? It uses a SPI-like protocol that has much more in common with how the NES controller communicates.
Re: NES controller Pixel LED
by on (#166082)
Assuming you want this to work with any NES game, it's not going to be suitable unless you add an MCU or something to control it. Looks like a pretty neat chip, but it really needs to be controlled by custom software to get much use out of it.

A simpler alternative for a similar effect, if you haven't considered it already, would be to use a red/green LED, or RGB LED. Though if wired straight up that's only 2 or 3 buttons. If you want all 8 buttons to work, you could include an AND gate logic chip. One way to do this would be to have all 4 signals of the D-pad one color, A and B be 2nd color, start and select be the 3rd color. It's just multiple LEDs in a single package, so red and green on at the same time would appear yellow and so on. The actual color combinations you get will be extremely dependent on the resistor you choose for each color's intensity.
Re: NES controller Pixel LED
by on (#166099)
Thanks for the fast replies, the main reason why I tried the led was to see if the pulse sent by the controller would light it up differently when a button is pressed. Aesthetics right? :p Anyway, it gave me a better insight in how the pulses are handled by the led/nes.

The WS2801 looks more of a suited chip indeed, since I didn't take the clock into account... live and learn in this case hehe.

About the RGB led, the ones i have laying around, are a bit too bulky to fit easily into the controller (5mm x 9mm) and were an option I took into concideration...

Anyway, thanks for the help, I'll keep you updated on the progress and what I used to achieve my goal :)
Re: NES controller Pixel LED
by on (#168058)
Bollewol wrote:
Thanks for the fast replies, the main reason why I tried the led was to see if the pulse sent by the controller would light it up differently when a button is pressed. Aesthetics right? :p Anyway, it gave me a better insight in how the pulses are handled by the led/nes.

The WS2801 looks more of a suited chip indeed, since I didn't take the clock into account... live and learn in this case hehe.

About the RGB led, the ones i have laying around, are a bit too bulky to fit easily into the controller (5mm x 9mm) and were an option I took into concideration...

Anyway, thanks for the help, I'll keep you updated on the progress and what I used to achieve my goal :)


I program ws2812's daily for work. If you have any questions feel free to ask.