I’ve just recently run into a strange problem that I’m not able to solve
In my basement I have 7x 5m Neopixel strips from Adafruit in my ceiling.
They are controlled with a Teensy 3.2 with an Octows adapter, and receives messages from an ESP8266.
Suddenly, about a week ago, I noticed something was wrong. The program/cycle that was running had stopped. The LEDs had not turned off, they just didnt update any more.
I pulled the power and put it back, and now the LEDs didn’t turn on at all.
So I took the teensy+esp down from the ceiling to do some debugging. I’ve inserted a Serial.println(“Hello world”) all over my code, and everything seems fine. The teensy seemingly runs through the code exactly like it should.
It also reacts to the WIFI-messages I send, but it’s not updating the LEDs.
I’ve also measured the voltage in several places, and I’m reading 5.1V-5.2V everywhere.
What the hell could be wrong? Any tips would be greatly appreciated.
Either the data connection between the teensy and the octo breakout board has broken, or the data connection between the breakout board and your leds has broken, or you’ve blown the first led on the strip - in all of those cases, none of the rest would receive updates anymore.
have you tried running some simple blink sketches directly on the teensy (taking the esp8266 out of the loop)?
It might help if you said what sort of test equipment you have available. If you plan on doing a lot of embedded development in the future then an oscilloscope would be really handy to have. You can use it for troubleshooting this sort of problem, but it can be really handy to have for software development too. e.g. to measure how long a routine is take, or to monitor the execution flow of your code. (e.g. wiggle a few GPIOs.) I’ve seen them used very effectively by embedded software engineers working on real-time code.
Assuming that you don’t have a scope or access to one, you might have a multimeter. If not you can find really inexpensive models now and I would recommend buying one. You can use it to verify connectivity by measuring resistance, but also if you wiggle GPIOs really slowly you can watch the signal lines toggle.
Also I don’t see them in use much anymore, but logic probes can also be used for this. There used to be models that would capture pulses and indicate if a line was tristated as well. The only issue would be if the probe didn’t support all of the logic thresholds that you’re using.
Thank you for all your tips!
I ended up just replacing the Teensy + Octo with a spare I had.
Used the same ESP and loaded the same code, and everything is now back online.
I haven’t had time to research more specifically what exactly is wrong, but I will post back here if I do in case anyone else ever encounter a similar problem.
I don’t have an ocilloscope available, but I’m thinking about buying one. I do have a multimeter, so at least I can check if there is any activity at all from the signal wires.