This might be a bit left field, but I wasn’t sure where else to turn.
I have a project where I’m using a BX to read data and timing from a GPS module and output it to a little OLED screen. For weeks I’ve been plagued with the GPS struggling to get a satellite fix some days and getting it quickly other days. After lots of trial and error, I’ve traced it back to some fast switching outputs on the BX board (which is in close proximity). My tests haven’t always been repeatable and sometimes the GPS module survives for a while in the presence of noise which will eventually cause it to fail and sometimes it takes a while to get a fix even after I have turned off the noise.
The culprit is the clock signal for SPI data going to the screen. If I halve the frequency, it takes longer to fail. I started at 8MHz, but I am down to 250kHz and still getting occasional failures. It appears to be somewhat dependant on my breadboard layout - at one stage I moved the clock pin from one side of the BX to the other and it started working again. I got complacent and rearranged my breadboard again and now here we are again. It seems to be unrelated to whether the output is actually driving the clock pin on the screen or whether its unconnected.
I could lay it out differently again, but ultimately this will be going on a board where I’ll want to cram things in even tighter still so I’m after any advice about what I should be doing differently. I’ve tried some small capacitors to ground, but that didn’t help at all and I didn’t want to keep ramping up the size of the capacitor lest I be overloading the output.
I’ve stripped back the circuit so there’s only the BX board, the GPS module (powered from BX 5V with a capacitor) and a wire from the PPS pin to an input on the BX. Everything else is unconnected. I disable the clock when I lose satellite fix and re-enable it once I get a fix again (determined by the PPS pin starting up again). This way I can watch it fail and reestablish and get some rough idea of if I’m making it better or worse by the percentage time spent in failed state.
Is there something simple I’m missing?
Should an unconnected output switching at 8MHz interfere with a GPS module 2 inches away, which is trying to listen to data at ~1GHz? I presume its the harmonics generated by the edges of the signal rather than the fundamental tone.