Derek Fountain's Stringy-Floppy-Free Sinclair ZX Microdrive Is Powered by Three Raspberry Pi Picos

An unreliable but much-loved piece of 1980s data storage technology lives on in this open-hardware solid-state alternative.

Gareth Halfacree
9 months ago β€’ Retro Tech / 3D Printing / HW101

Software developer and vintage computing enthusiast Derek Fountain has built a modern alternative to the "stringy-floppy" Sinclair ZX Microdrive β€” replacing a classic piece of 1980s technology with not one but three Raspberry Pi Pico microcontroller boards.

"In 1985 I used all my saved up money to buy a ZX Microdrive. I loved it. I was only kid in my school who could load a game in under 10 seconds. Ever since then the Microdrive has been, for me, the mass storage solution for the Spectrum," Fountain explains. "Sadly, the Microdrive tech is dying. We have a number of hardware-based Microdrive emulators, but they all emulate the tape drive itself and hence require an Interface One. The Interface One is becoming rare and expensive. Most people don't have one."

The Sinclair ZX Microdrive is back, only this one might be a little more reliable than the "stringy-floppy" original. (πŸ“Ή: Derek Fountain)

The Sinclair ZX Microdrive was an unusual piece of technology, even by the standards of 1983 when it launched. Connecting to the rear of the ZX Spectrum family of home computers, the drive read cartridges which held one continuous loop of around 200 inches of tape β€” holding 85kB of data. Faster than cassette tapes and cheaper than floppy disks, the "stringy-floppy" technology proved unreliable β€” and as the years have gone by, working cartridges have become increasingly rare.

To bring back the feel of the classic ZX Microdrive experience, but without the unreliability, Fountain has designed an add-on which loads Microdrive images from an SD Card β€” selected using controls on the top, with an OLED display for feedback β€” and presents them to the connected ZX Spectrum just as the original would have. Inside the housing: not one or two but three Raspberry Pi Pico microcontroller boards, giving the hardware six Arm Cortex-M0+ cores running at 133MHz each β€” talking to a single Zilog Z80 core running at a more sedate 3.5MHz.

"[The first] Pico is the one which handles the Interface 1 ROM emulation," Fountain explains. "Pico 1 uses its second core to play another important role. Pico 1 is the only one of the 3 Picos to have clear sight of the Z80's address bus. The second Pico, Pico 2, also known as the IO Pico, is the one that does the hard work. This Pico's primary role is to react to Z80 IO instructions β€” i.e. IN and OUT β€” when they are directed at IO ports which are relevant to the Interface 1.

"[The third] Pico's first responsibility is to send and receive data to and from the IO Pico," Fountain continues. "The principal data package is the MDR file image, but there are other status and control packages which need to be sent back and forth as well. The first core of the UI Pico runs the user interface. The other core of this UI Pico manages a work queue."

A full project write-up is available on Fountain's blog, while firmware source code, hardware design files, and a 3D-printable case design are published to GitHub under the reciprocal GNU General Public License 2.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles