Fixing the PDP-11 Power Supply (again)
Recently I have been working on a driver for the IBV11 GPIB controller for the PDP-11 under 2.11BSD. I've been pushing this to the ibv11 branch on my 2.11BSD fork. Most of my learning and development took place under simh because of how much faster kernel compilations are, but eventually reached the point where I wanted to test the driver on the PDP-11.
Except I couldn't, because despite booting up fine a day earlier, this time, it decided it didn't want to. The symptoms reminded me of the many times I'd forgotten to turn the Line-time Clock (LTC) on. Some operating systems for the PDP-11 do not require this, or worse, won't even boot with it enabled. Others, such as Unix, refuse to boot if it isn't enabled. The Line-time clock is (usually) sourced from the mains power line. It's a 5V signal running at around 50 or 60Hz, depending on which country you are in. Unix uses this to keep track of time (much like many mains powered clocks).
Thinking this, I decided to probe the
BEVENT line which goes from the power supply to the backplane, and provides the LTC signal. It didn't look great, but it was 50Hz and I having not seen this signal before, assumed it was ok.
I ended up going down a bit of a rabbit hole. For starters, I rebuilt my 2.11BSD image in simh, thinking something might be wrong with it. It was throwing a bunch of inode errors, but still booting. It still didn't boot, so I booted xxdp to run CPU diagnostics, which failed! I was quite worried at this point because a new CPU card would be very expensive. Fortunately, I have a friend who is well stocked in QBUS cards and asked to borrow one. It was a nice 50km round trip on the bike. Once I got home, I slid the new card into the PDP and attempted to boot it! Nope, still wouldn't get past the autoconfig step of the 2.11BSD boot process.
In some ways that's a relief. I didn't know what the problem was, but at least the CPU was ok! I decided to go back to what I originally thought - the line time clock. The schematics for almost all of this stuff are readily available on Bitsavers (fortunately). It took me a while to figure out which part was generating the line time clock signal, but once I did there was a fairly obvious component which could be getting in the way. Unsurprisingly, a transistor. This transistor pulls the
BEVENT line down to ground when the base is high.
Fired up the scope, turned on the PDP-11, probed the transistor. Very nice 50Hz square wave on the base of the transistor - much nicer than the one I saw on the
BEVENT line a few days earlier, but the output at this point was dead. I think at this point the transistor had completely died.
Routed around for a new transistor for a bit and assumed I didn't have anything suitable… Until I found an MJE13006. This is a bit of a chunky transistor. I think I bought it as a replacement for the VT220 horizontal output transistor. It can handle quite a lot of current anyway, and it's a lot bigger than what was in there already. Also, the pinout is different so I had to bend the legs weirdly. It looks really great (not).
Anyway, it boots! Not much else to say other than I'm very happy about it. Hopefully get back to the IBV11 driver development soon, so there will be another post about that at some point.