Ran into a pretty strange problem today. I'd noticed yesterday that I wasn't getting a reliable boot, but the system did boot when I moved the floppy drive out of the way, so I figured one of the feet on the drive cage must have been misaligned and was shorting something to ground. Cue my disappointment this morning when I discovered that it still wasn't booting reliably, and I had no good explanation.
I pulled all my switcher hardware out and stuck a 68000 directly in the socket, to no avail. I swapped all the socketed chips for known good ones. Nope. I noticed that a couple of my video connection wires to the ubeswitch had broken off during all the handling over the past month and a half, so I removed that whole connection. Still not booting reliably, but oddly it seemed like moving around the ubeswitch's reset wire (still connected to the motherboard) was affecting stability. I removed that wire as well. Still not booting.
I inspected the motherboard closely, and found nothing amiss. Just the same, I took it out and blew it all off with compressed air and put it back in. And it booted. Nay, success does not come so easily, for when I started running GEMBench, the really weird stuff started to happen. Every now and then, GEMBench would just freeze in its tracks, sit there for a while, and then suddenly unfreeze and continue as if nothing had gone wrong. A serious "wtf?" moment. Eventually it just crashed.
After a few tries, I convinced it to boot the diag software, and noticed the same freezing behaviour, as well as occasional errors, most often "Bad instruction fetch". Thinking that maybe I've cracked the motherboard in all the ins and outs on the CPU socket, I set the diag software off running the timing test repeatedly, because it gives frequent screen updates, and started poking around with my finger.
I did not find that poking things could cause the system to crash. On the contrary, I found that poking things could cause the system to
uncrash, as in the diag software would freeze, and then unfreeze when I was poking at the CPU with my finger. I figured out that I didn't have to apply any pressure at all to unfreeze the system. Merely touching the right part of the CPU would unfreeze the system. Aha, this is electrical, not physical!
Holding one end of a wire and touching the other end to the pins on the 68000, I eventually isolated the magic unfreeze pin. It was pin 12, BGACK, which is one of the pins I've been switching on my switcher board. Surely my board hasn't done something to damage another component in the BGACK circuit?
At this point I pulled the 68000 back out for some very basic diagnostics. First thing I checked was the pullup resistance on BGACK. 350 kΩ. That's not right at all. That should be 2.2 kΩ. Pulled the board back out and checked the resistor. It's fine, of course. But the connection between BGACK and the resistor was gone. Seems all the pushing and pulling on the CPU socket over these months broke my solder connection on that pullup.
A quick reflow restored the connection, and to avoid the same problem in the future, I taped a scrap of 3D printer flotsam to the underside of the board, directly under the CPU, so it won't flex anymore. The Stacy now behaves normally once again.
Not quite how I expected to spend most of Saturday, but it was an interesting journey.
