technifix wrote:
I've been experimenting trying to find the source of the crashing. There were some interesting developments.
I was running the SBC at 6MHz, and it would crash around the 10 minute mark. I switched to a 1MHz can and it crashed after an hour. Of course I thought this meant perhaps there was some bug in my program that would only manifest after however many clock cycles that would be, but I put in an 8MHz can and it ran for about 4 hours before it crashed. Must be a co-incidence.
I'm not sure how much you've said about your on-board power supply decoupling. Best practice is to have an electrolytic where power connects to the board, and a smaller bypass cap across the power terminals of each device.
But more importantly, perhaps, if you want to get to the bottom of this, is to consider your experimental design. It's not clear to me if 10 minutes is always the exact life of the machine, or an average, or a single measurement, or if it's exact or approximate. If you tabulate at least a few consecutive times to crash, that might help.
Also, the question of what the machine is doing. The simplest case is a tight loop with no interrupts. Next up might be an ordinary idle state of a monitor or interpreter. Then, a simple program such as an LED blinker. Then, something deliberately meaningful, like a RAM test which loops forever.
If, on the other hand, you are using the machine for this and that, and find it crashes at some point, it's much harder to know what the cause might be.
I still wouldn't rule out your domestic appliances (or nearby industrial users) - if you bench supply reacts to a brownout by dipping the supply rail, that's an external cause. If there's a lift (elevator) in your building, or someone doing arc welding next door, that might affect your machine.