Oct 012016

I have decided to participate in Retrochallenge 2016/10, which is pretty much an excuse to spend the month of October working on a retrocomputing project. Ok, let’s be serious: That doesn’t really make October much different than the preceding or following months for a lot of us retrocomputing enthusiasts. But this month, it’s official!

I’m taking on an ambitious project which will almost certainly remain unfinished at the end of the month: Converting a DEC RL02 into a ginormous USB hard drive, so I can use it for imaging and writing RL02 packs!

DEC RL02 Hard Drive

DEC RL02 Hard Drive

This is not the first such project in the world; prior art includes this 2015 project by Christopher Parish.

The RL02 was used with many DEC PDP-11 and VAX computer systems. It is a rack-mountable hard disk drive with a single, removable, 14" platter, and a capacity of 10 megabytes. The platter is formatted with 512 cylinders, and 40 sectors per track. Each sector holds 128 16-bit words of data, and the media is hard-sectored via notches machined into the disk pack’s hub.

Up to four RL02 drives could be connected in daisy-chain fashion to a single controller card, using long cables and a resistive terminator at the end of the chain. Each individual drive contains servo logic and related low-level functions, while the common controller card contains the logic necessary to read and write data sectors.

This project will be a new controller card which mounts inside a single RL02 drive in place of its original drive interface bus connector, and provides a USB mass storage interface to the drive.

Now, why would anybody do something so silly? Well, my goal is to use this modified drive for two purposes:

  1. Image existing RL02 packs in my collection for archival and backup purposes.
  2. Write new images onto RL02 packs in order to install new operating systems and software on my vintage computers.

It is my stated goal to work on this project during October, 2016 for Retrochallenge 2016/10, but I do not realistically expect to complete this project within a month. I will be quite satisfied if I manage to design and build the first version of the controller board, leaving the much larger task of developing the firmware and FPGA code for later.

I plan to implement my new controller in a Xilinx Spartan-6 FPGA, and implement the USB interface with an STM32F4 series microcontroller. I’ll design the board(s) in KiCAD, synthesize the FPGA code with Xilinx ISE, and develop the firmware with STM32CubeMX and System Workbench for STM32.

Even though it’s a bit risky, I’m going to push out the board design before I’ve fully defined the controller architecture, so I can continue development while I’m waiting for the circuit board to be fabricated. I’m thinking of including an LCD character display if I can think of a good way to mount it nondestructively and reversibly to the drive housing.

I’ve spent some time thinking about the overall hardware architecture. Now my next task is to clear enough space in my very cluttered Secret Laboratory to set up one of my spare RL02 drives (which may or may not work!) next to my bench. Maybe I should vacuum up some of the dust and dog fur, too. Then I can start taking measurements for the mechanical constraints.

Oh, yeah, there’s another complication: I’ll probably need to study the signals on a working RL02. The only known-working one I have is part of my VAX-11/730 system… and my VAX is down at the moment after suffering a mouse attack. Grrr! The mouse chewed up some wiring in the TU58 tape drive, which is critical for booting the system. I hope that nothing else is damaged in there. I’ll need to tear down the system for cleaning and repair… and that means cleaning up the tiny, cluttered room it’s in enough to roll the rack out for access.

Well, I have my work cut out. We’ll see how far I make it on this project before I get distracted by another squirrel. I’ll share design files on GitHub:


 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>