Almost one year ago I found an old Macintosh Classic, produced in the 1990’s in a basement. I bought it from the guy who used to own it and he told me, that he doesn’t know whether it is working or not and that it was standing there for about 20 years, so it was in a pretty bad shape. After it arrived at my apartment, I immediately plugged it in and switched it on. After the screen came on, it was pretty disappointing: It just displayed a checkerboard, which seems to be a pretty common issue with these models. This problem is caused by a variety of issues.
Some of them are:
Electrolyte capacitors, that were originally fitted, can leak out and cause short circuits on the logic board. Cleaning the circuit board with acetone (or if you don’t have any with clean water and soap. But be aware that this leads to extreme corrosion, so only try it if nothing else worked ) can help. But it didn’t in my case. Also recapping didn’t solve the problem.
Another common solution ist to remove and re-fit the RAM extension card. Didn’t help either.
This problem can also be caused by faulty ROM or RAM chips. Both must be replaced and cannot be repaired at home.
In my case the on board battery, which was still the original one from the early 90’s, leaked out on the circuit board, causing it’s copper components to dissolve. It also burned a huge hole into the logic board’s top layer and some of the underlying layers.
I tried to repair it by re-wiring the connections manually but I soon realized that this won’t be very easy and would take a very long time.
So i threw the ol’ Macintosh into a corner and forgot about it for like ten months. Some weeks ago I thought about bringing the old Macintosh back to life. But I did not want to buy a new logic board. I wanted to build a modern computer into the old case. I googled some projects, which tried to do the same thing, but they were not good enough for me. Most projects simply removed the old monochrome (black/white) CRT display, that was in the original Macintosh. But I absolutely wanted to keep that, because this is, what gives this little machine it’s soul and the characteristic flair that comes with using an old machine. So I was sitting there with absolutely no idea how to use the CRT and I had to come up with an idea.
First I looked up some technical documents that (luckily) existed for the Macintosh. These documents were made for technicians to repair faulty hardware and for hardware manufacturers. It had a section in it about the video unit and about CRT timings. I’ve never seen something like this before, so this was absolutely new for me. But it was pretty easy to understand, because it’s basically following the rules of VGA. So what I had to do, was to build my own VGA hardware to talk to the Macintosh Classic CRT.
I had a couple of Raspberry Pis laying around, so I decided to try to interface the CRT with one of them. I failed very hard in trying to do so, but at least I learned something about hardware PWM on the Raspberry Pi. You can read more about it here. The problem with the PI was: It was not real-time. You simply could not tell, when the next instruction in a program gets executed. It might be in 10µs, but it also might be in 300µs:
But video signals have very strict timings, which are not that fast on an old display, but still too fast for a not realtime OS running a program, like linux. It might be possible with the PI’s video hardware, but I haven’t tried yet. I might do so, later.
So I threw away the idea of using the PI for this project. I bought a BeagleBone Black instead, which has the capability of doing stuff in real-time (Real-time means, that we can predict how long an instruction will take to be executed). You can read about the PRU in this article, or here.
In the following articles of this series I’ll explain how I built this project and I’ll also upload all the code, images and documents you need to rebuild the project on your own! Feel free to contact me, if you need additional resources!
Table of contents