Hi everyone,
I've got a very perplexing problem with my Nano Every. I'm working on an RPM display for a motorcycle that lights an LED strip proportional to the current RPM. It took some time, but I successfully wrote the RPM capture code (based on engine coil fire frequency), and then I wrote corresponding LED control code. Everything worked great on the breadboard setup.
The problem came up when recreating it on perf board for the final product - my circuit is EXACTLY the same as my breadboard (which is still set up). I attempted to run my LED test program on it (in which I input RPM via serial), but now the LED strip just lights up completely white. I can put the same program and LED strip into my breadboard (which has a second Nano Every on it) and it works fine.
All signs point to it being my circuit/soldering, but I can't find any problems with it. There's really only 3 points of connection - power, ground, and data (with a 330R on it). All of it looks good. Putting power on the board (12V) and testing my LED voltage shows no shorts or unexpected values.
When I plug the board into my computer, I get weak flashing (the strip is 12V) and I can't communicate with it - a behavior I never saw on my breadboard. Oddly, if I then attach my 12V supply, I can establish communication and control it. However, it's (pretty much) all white. The first LED does what it's supposed to (starts off and turns blue when the RPM reaches a set value), so my code is under there working correctly. It'll even flash red at the redline like it's meant to.
What's weirder is that it's actually worked a couple of times inexplicably. I had it hooked up, all white, in order to do some testing with my multimeter. After a little prodding it turned off the white and the correct colors came through. I was able to input my test RPM and watch everything change as expected. Again, I'd think this indicates a bad connection somewhere, but I've tested countless times to no avail. 12V goes correctly through the whole strip, and the data is properly isolated.
I've read a few things online that note similar behavior when the board's clock speed is incorrect, but I don't know why it would be, I've never changed it on any board I've used for this project (I think I'm up to 4 now). I won't bother posting my code unless someone asks, since it works perfectly fine on other boards. If need be I can provide that and some photos of my circuit.
I'm at a complete loss. I'm an industrial automation and controls engineer, so I'm not unfamiliar with electronics, but I am new to integrated circuits. I might be missing something obvious. If you have any idea, please let me know.
Thank you!