A month building the rc2014
Sometime in January, I received a gift of an rc2014 Zed Pro. It's a retro-styled computer kit based around the z80 processor. I've been thinking of getting one for a long while, but the initial cost of the base kit kept me from committing.
I did, however, spent a lot of time examining my motivations as to why I wanted one, and what I hoped to get out of it.
- It was a challenge, as it is a very complex kit to assemble
- It would provide a learning platform for experiences where one would get far closer to the hardware than typical modern programming.
- It'd provide an excuse to use my rather disused oscilloscope.
- Really, it just looked like fun.
Funny enough, you might notice one thing that isn't in my list of motivations: nostalgia. While I was introduced to computers practically since my first memories (unusual for en elder Millennial), I felt like I missed the entire era in which the z80 was popular. My first computer was a terribly outdated but still functional TI-994A, which was fallowed up with an equally aged Apple ][+, before I actually got a 8-bit PC. I stayed on that for a long while until I inherited the family's Mac Plus when it was also way past its heyday. While I sometimes would love an afternoon of playing with any of those old systems, I have little desire to keep one for myself.
There was one z80 system; a borrowed Timex Sinclair. It was by far the most frustrating system of them all to use which it's awful keyboard and function-key based programming. It never really got much attention in our house. Nowhere was the ZX Spectrum, as this was the 1980s in Minnesota. I didn't encounter one until 2017 when I was asked to do a restoration and RGB mod one one.
In the end, learning was what I was after. I wanted to chase down that nebulous interface where a bunch of electrical signals becomes a computer.
For some reason, I also took this project as an opportunity to do some livestreaming of the build. I had been thinking about trying my hand at it, after enjoying streams from several on YouTube doing vintage computer restorations. The problem, of course, was cameras.
I had been convinced that I needed a "real" DSLR to effectively do streaming. Or, I would need to somehow use my smartphone as a USB web camera. While that feature is in newer versions of the Android operating system, my current phone is too old and will not be receiving that update. I also have...complicated...feelings about getting yet another Pixel phone. I couldn't afford a real camera, and previous experiments using a web camera as my "bench cam" were blurry and out of focus. I later discovered that this was because Linux being Linux, used the lowest resolution on the camera by default. After finding guvcview, I was able to set the resolution and fix the focal point.
Some key learning lessons I got from my attempts at streaming:
- Try to keep the streams an hour longer and focused on one thing. Longer gets exhausting.
- Saturday is better then Sunday if a weekend afternoon is all you have. Sunday can be a rest day then.
- My laptop isn't really capable of handling all the video streams and struggles a lot.
- I didn't enjoy it nearly as much as I do blogging, but it can be a fun extra.
I used the first of several streams just to see if the images were better. And they were! A few people even stopped by to watch. Ultimately, I was rather disappointed with the filmmaking of the stream on the whole. Despite my love of terrible films, I actually do love films and greatly appreciate good filmmaking. The bench cam was just too damn far away from the action. I could try zooming in with the web camera, but I would then need to constantly readjust the focus. If only I had one of those PCB microscopes...
Cheap USB microscopes are essentially web cameras with some more specialized optics for close up photography. While you can get some really good ones, I found one for $40 which supported Linux out of the box. Good enough! For the second stream, I used the microscope exclusively. I had a lot better view of the action, but also found it frustrating when I couldn't get a good look when something went out of frame.
The third stream I used multiple cameras for the first time. This felt so much better in the end. While watching, I could switch between the close up and the overview. I used a similar layout for the fourth stream, where I built the new Why Em-ulator board. I even sent a link to my Dad, who confusingly, thought the bench cam in the lower right corner was...unrelated to the video at all. Almost like it was an ad. Maybe someday I should make both the bench cam and the microscope the same size...
The last stream didn't use the microscope at all. I bought out an HDMI capture card and a pi400 to use as a serial terminal to first power on the system. While I still had the bench cam, most of the stream was a terminal application on the pi400.
The rc2014 is, to put it simply, a heck of a lot of fun to build. Each module provides some unique soldering challenges. If you know your way around an electronics soldering iron, you'll likely find this kit a joy. If you're new to soldering very -- and I mean very -- small pads and components, you might want to wait.
Since the pads and traces are very small on the rc2014, they can't take a lot of repeated heat from the iron. Repeated soldering and desoldering can damage the pads or even lift them off of the PCB entirely. A mistake like that on the rc2014 can be extraordinarily frustrating and may permanently damage the ability for the machine to operate.
Instead, I'd recommend making the rc2014 an aspirational project. This is the goal you're aiming for, and like an athlete, you need to put in the training to make it to the big competition. As such, I greatly recommend building your skill level with seval smaller kits. There are even "soldering practice" kits which can help you build skills. Yes, some of these kits may be silly or even useless, but there are many which can be handy pieces of equipment in your electronics shop.
While the kit is a challenge, it's also not one which requires any specialty equipment. Most of the components are through-hole technology (THT) with the exception of the Wifi expansion board which has several surface-mount technology (SMT) parts. I ended up using the Pinecil for the entire project, rather than my more expensive Hakko, as a soldering iron. The Pinecil is small and nimble enough to be able to get around the rc2014 boards with ease, and I only rarely missed the greater power of a mains-powered iron. Beyond that, a fine needle nose pliers or even ESD safe tweezers is about the only other tool you need. Sure, a multimeter and even an oscilloscope help, but they aren't required.
There are some frustrations, however. There's no step-by-step instructions to build the machine or any of the expansion boards. Thankfully, most are fairly obvious and come with components clearly labeled on the solder mask. Still, I missed having a step by step somewhere for me to feel the assurance of, "Yes, that tiny capacitor really does go there," or "you need to either use a pin header here with a jumper, or bridge the connections with wire here". Honestly, I spent a lot of my frustrated moments imagining writing a build and troubleshooting guide like Mims' Engineer Notebook series, but for the rc2014. I miss writing tech learning guides sometimes.
Another thing to expect with this kit is...for things to simply not work the first time. The z80 heyday is well enough into the past for us to forget just how unreliable and temperamental computers of the era were. This is magnified by the fact the rc2014 is a DIY, kit computer. This isn't an zx81, this is closer to a Heathkit...without the manual. Expecting things to not work the first time isn't just pessimism, it puts you in the mindset to approach each failure as a learning opportunity.
I spent most of the last week trying to troubleshoot why the Compact Flash (CF) card module on my rc2014 didn't work. Eventually, I tested the card itself and found it should be in working order. After carefully examining the module under a magnifying glass, I found the source of the problem: I missed soldering one. Single. Pin. That single pin was all it took! It's a simple mistake, but had I approached this as a personal failure, I wouldn't have learned other key ways I could test the module for functionality.
I had similar issues with the Digital I/O board, which turned out to be I had missed some jumpers in the rapturous flow of soldering parts to boards. After fixing my omissions, I was able to make a "larson scanner" application in BASIC as have so many others.
A piece of advice I'd love to give is, "Don't buy all the modules at once".
It's an understandable temptation as who wouldn't want to have all the capability and ports right from the start. The problem is, this means you may take longer to build the base kit and arrive at a working machine. I felt relatively confident in my skills to get this working. In the end, however, I still felt I had rushed through the entire process. Even this blog post felt rushed by comparison; I would have rather made a dedicated post for each component complete with troubleshooting procedures and unit testing.
Instead, get the base kit, and then get that working. Enjoy the basics which come with it, perhaps try to play a game of Zork or two. Later, you may wish to get the Digital I/O board, and the rp2040 VGA terminal to make the system more compelling and self-standing. Above all, take you time, enjoy the process as much as the result.
The rc2014 is a heck of a lot of fun. It's a challenging kit to build, a learning opportunity to troubleshoot, and a joy to use. While the base kit can be a bit pricey, it's no more than many other highly technical hobbies. Also, it won't explode when you power it on like vintage electronics! While it can be frustrating without step by step instructions, there's many online including the project creator who can help you out if you get stuck. After the first board, it really does get easier to build.
I feel extraordinarily glad to have built one of these machines. I look forward to using it more to learn about low level computing on hardware I built myself.