In retrocomputing circles, it’s often the case that the weirder and rarer the machine, the more likely it is to attract attention. And machines don’t get much weirder than the DEC Rainbow 100-B, sporting as it does both Z80 and 8088 microprocessors and usable as either a VT100 terminal or as a PC with either CP/M or MS-DOS. But hey — at least it got the plain beige box look right.
Weird or not, all computers have at least a few things in common, a fact which helped [Dr. Joshua Reichard] home in on the problem with a Rainbow that was dead on arrival. After a full recapping — a prudent move given the four decades since the machine was manufactured — the machine failed to show any signs of life. The usual low-hanging diagnostic fruit didn’t provide much help, as both the Z80 and 8088 CPUs seemed to be fine. It was then that [Joshua] decided to look at the heartbeat of the machine — the 24-ish MHz clock shared between the two processors — and found that it was flatlined.
Unwilling to wait for a replacement, [Joshua] cobbled together a temporary clock from an Arduino Uno and an Si5351 clock generator. He connected the output of the card to the main board, whipped up a little code to generate the right frequency, and the nearly departed machine sprang back to life. [Dr. Reichard] characterizes this as a “defibrillation” of the Rainbow, and while one hates to argue with a doctor — OK, that’s a lie; we push back on doctors all the time — we’d say the closer medical analogy is that of fitting a temporary pacemaker while waiting for a suitable donor for a transplant.
This is the second recent appearance of the Rainbow on these pages — [David] over at Usagi Electric has been working on the graphics on his Rainbow lately.
I love some of these old retro machines and back in the day I got to briefly play with and repair a DEC rainbow as well as many other weird n wonderful machines that were around at the time of the 8088 IBM PC, there were some real strange boxes out there, fusions of ‘almost’ PC compatible and CPM, even one or two with bespoke OS that I probably still shouldn’t talk about as they were in use only a handful of years ago and could well still be.
Little bit weirded out as to how using a clock generator chip for its intended purpose to generate a clock signal is a hack though, maybe if he’d used it to overclock or add variable ‘turbo’ modes perhaps?
In all fairness, Dan, I’m not a physician, just an academic. As my daughter used to say, “My dad’s a doctor but not the kind that helps people!” Well, hopefully this little hack can help someone else save a Rainbow!
Hi CJay, I’m not sure overclocking would work on this circuit because every other signal depends on the original 24 Mhz oscillator. The video timing (even the 60Hz video is derived from 24Mhz), timing for both processors, etc. The machine itself doesn’t operate at this frequency but it uses that precising timing to derive all other timings in the system. It’s tricky business!
Because it replaced the original clock of the computer. The computer was intended to use a crystal clock, not an Arduino.
The Arduino did not create the clock. It just configured a clock generator.
Well you are right. I just oversimplified a small detail.
“both the Z80 and 8088 CPUs seemed to be fine”… yet they had no clock?
Great journalistic skills there, HaD.
I tested them with an external chip tester and in other machines (ZX Spectrum and IBM 5150 respectively).
Did you even bother reading the linked material?
Here, let me help you:
“1. 8088 and Z80 – verified good
2. ROMs – dumped and verified good
3. Capacitors – recapped
It finally occurred to me to check the clock signal on the 8088. Nothing. The clock signal on the Z80? Nothing. The clock signal on the video timing chip? Nothing.
The DEC Rainbow 100B uses a 24.07342 MHz oscillator for the entire system. Its output pin was dead as a doornail.”
Broken down:
1) the 8088 and Z80 CPUs were tested and verified good
2) the clock generator was nonfunctional
Great reading comprehension skills there, wibble.
Why would I bother reading beyond the had article when it’s such patent nonsense? I mean honestly, the most basic od troubleshooting with the most basic scope on the clock, data or address pin in situ would have told you where to look next. I wouldn’t have learnt anything, hopefully others did.
How is it patent nonsense when it’s the correct take?
Your contention:
““both the Z80 and 8088 CPUs seemed to be fine”… yet they had no clock?
Great journalistic skills there, HaD.”
Indeed, the Z80 and 8080 were fine. The problem was the clock generator, as demonstrated in both the article and the linked material.
Doubling down doesn’t help your case.
“…the 24-ish MHz clock shared between the two processors — and found that it was flatlined.”
Wouldn’t this line obviously indicate that clock generation wasn’t a function of the two processors in this case? If you had bothered to check the link to the project itself, Dr. Reichard identifies a separate 24.07342 MHz oscillator that had failed. Seems more like a lack of reading comprehension and technical competency on your part.
Recently, [Adrian’s Digital Basement] did a video on fixing an Apple II+ clone, and had a similar problem (unreliable clock). With vintage computers I learned long ago to 1st check the volts, then look for the tick tocks, and *then* everything else. It’s good to see people nowadays doing the same.
A bit related… I wonder if crystals and TCXOs fail with time (pun somewhat intended), or are they mostly immune to old age? Might make for a good Hackaday article.
It’s the first time I’ve seen an oscillator fail. The unfortunate thing about the Rainbow’s clock is its frequency is unusual at 24.07342 MHz — and replacements are hard to come by. I did source a handful of them, but it took a lot of digging. The clock generator was quite handy, especially because my oscilloscope only generates a signal up to 10 MHz.
A 24 MHz crystal is less than $1.00 at Digikey; I don’t know if your application can tolerate a 0.3% error or if the circuit could be pulled that much. Custom oscillators are 10 Euros at centuriontech.eu. Of course, neither may be a practical solution for you.
I think the crystal could have broken due to the shipping process. I recently had to replace a crystal on a dropped vintage processor card.
I purchased this Rainbow locally a few years ago and it sat on my shelf until I decided to crack it open. The shipping hypothesis is interesting, but not applicable in this situation.
they tend to drift away with component aging, sometimes as far as that the oscillator circuit wont “lock” anymore. i have a small box of 5 or so here from an old “selection box” which are either way off or simply dead. thats about 1-2% after 40 years. all blanks, TCXO should last longer if you keep the environment stable (iE leave it running)
This makes sense. I’m sure power had not been applied to the board for decades — 4ish!
I actually have a dec rainbow 100 (not sure if it is an A or a B off hand) in my garage. I’d be up for offloading it to someone who wants it for parts or restoration for cheap (read: shipping). I’m in Alabama.
As much as I hate to push back on HaD’s nitpicking (again, a lie…), the PACEMAKER analogy only works if the oscillator is the “heart” of the system, which feels like overselling it / slighting the rest of the system. Dr. Carlson’s procedure unequivocally worked to restore the Rainbow’s heartBEAT (while it’s very debatable whether it’s fair to say it’s waiting for a new heart), so defib feels like precisely the right analogy.