As the subject says, I have a Unicorn Hat HD that I recently purchased, and it seems to have an issue with a row of LEDs being stuck on a dim red, intermittently.
It just comes and goes as it pleases, with no relation to what I’m sending to the hat. It will persist though reboots and power cycles as well. This is on an OG Pi B+.
If you haven’t already, remove it and reattach it. “With the Pi off and power supply unplugged”. Also make sure the bottom side isn’t touching anything on the Pi. Especially if you added any heatsinks to the Pi. Adding standoffs would be a good idea.
I will admit my OG Pi is probably not in the best shape. I was hoping to add a Pi 4 to my collection with this hat, but well… chip shortages and such.
I’ve made sure it’s clean, it’s on a clean non-conductive surface, I’ve changed Ethernet cables and power supplies, removed and reinstalled the hat… the stuck LEDs now appear to be a permanent feature. As this is the only Pi I have at the moment, I can’t see if it does it with a different one.
Otherwise the hat works perfectly fine, and the stuck LEDs can be hidden somewhat when pushing full-matrix patterns. It stands out pretty badly if I’m pushing things that only use a small subset of the LEDs, though.
It’s likely not the Pi causing it. The Unicorn Hat HD uses SPI. Whatever is wrong is IMHO more than likely on the Hat. I have several Unicorn Hat HD’s here. I’ve had a LED that didn’t work, one Red one wouldn’t light up, haven’t had your issue though. Mine are plugged into Pi Zero’s.
Unicorn HAT HD at Raspberry Pi GPIO Pinout
How long have you had it?
Might want to e-mail Pimoroni Tech support then, and put a link to this thread in that e-mail.
Contact Us for Raspberry Pi Technical Support – Pimoroni
Replying here in the future in case anyone has the same issue.
Some of the Python examples seem to exit cleanly and clear the display on close while others leave pixels lit sometimes. My display arrived with 14 or 16 pixels in one column lit red and I wasn’t able to clear it until I ran a demo that cleared the buffer. If I had sent that command manually it would have done it as well.