I have the Fusion hat on a Pi5 and am going through the python examples. Lesson 1.8 does not work. I have spent days using chatgpt to try to troubleshoot and even ordered more 74HC595 chips. There seems to be a problem with the data and clock coming from the fusion hat. Has anyone else experienced this? Any advice? I’m getting tired of manually clocking and latching to test, and chatgpt seems to have little more to offer.
Problem solved! I used Claude, chatgpt, and an Arduino to work through a LOT of troubleshooting. The final result is that GPIO pins 17, and 27 were not reliably changing high/low state so the 74HC595 was not receiving signals correctly. Moving Data pin 27 to GPIO 6, Register Clock pin 4 to GPIO 13, and Shift Register Clock pin 17 to GPIO 5 works! I added a 0.0001 delay between clock edges and get a smooth display. Neither AI could offer reasons that the recommended GPIO pins failed.
I should add that through the troubleshooting process I put a 0.1 uF capacitor across the 3.3v and ground rails supplying the breadboard, and put 220 ohm resistors between the 74HC595 Q0-Q7 pins and the respective display pins. I also moved 74HC595 pin 10 to GPIO 22, which allows a positive clearing of the memory when starting the program. (That pin seems to work, at least for this.) GPIO pins 17, 4, and 27 worked for the other projects so far, but AI says they can’t handle the bit banging required for this display counter.
Physical circuits do occasionally run into some hard-to-explain situations of unstable voltage levels. It could be unstable wiring, it could be aged cables, or it could be oxidized contact points causing the contact resistance to fluctuate between high and low. Sometimes it’s even just a nearby high-power device switching on and off intermittently, coupling interference in through a shared ground or through the air. And then there are the more “mystical” ones: temperature drift, humidity changes, a damp PCB leaking current, or some capacitor already on the verge of failure, flip-flopping back and forth.
So when I run into this kind of problem, I usually don’t rush to question life itself. First I take a multimeter and measure the voltage at the key nodes, then wiggle the wires and press on the connectors to see if I can reproduce it. If it reproduces, it’s basically a contact issue; if it doesn’t reproduce, then it’s most likely interference or a thermal-stability problem with a component.
If you really can’t find the cause, bring out the oscilloscope and capture the waveform — very often one look at the waveform and it reveals itself. In short, electricity is very reasonable when it’s being reasonable; when it isn’t, you just have to be more patient than it is.