What is OqtaDrive?
OqtaDrive emulates a bank of 8 Microdrives for use with a Sinclair ZX Spectrum with Interface 1, or with a Sinclair QL. The goal is to functionally create a faithful reproduction of the original. On the Spectrum/QL side, operating the emulated Microdrives should feel exactly the same as using the real thing. So by definition, it does not try to compete with more “modern day” mass storage solutions for Spectrum and QL.
In addition, OqtaDrive enables you to use the Sinclair Network over the Internet, to communicate with other Spectrums and QLs anywhere in the world. All the commands using the Sinclair Network can be used transparently, just as if the other stations were connected directly to your machine. No modifications to your Spectrum or QL are necessary, and no additional software is required.
OqtaDrive is built around an Arduino that connects via its GPIO ports to the Microdrive interface as well as the Sinclair Network port, and via serial connection to a daemon running on a host machine. This daemon host could be anything, ranging from your PC to a small embedded board such as a RaspberryPi Zero, as long as it can run a supported OS (Linux, MacOS, Windows). The same Arduino can be used with both Spectrum and QL, without any reconfiguration.
The adapter itself does not provide a UI. Instead the daemon exposes a REST API endpoint. This can be used by different tools for controlling the daemon. Currently, there’s a command line tool and a web UI. Just open it in your browser, be it on your PC or your phone, and load your cartridges. Additionally, you can control OqtaDrive also from your Spectrum and QL.
Here a few impressions of the web UI:
What Can I Do With This?
OqtaDrive’s architecture makes it very flexible, so many setups are possible. The simplest one would be just the Arduino that connects your Interface 1 or QL with your PC or Mac, and you manage everything from there. If you’re rather looking for a standalone solution, you could for example run the daemon on a RaspberryPi Zero W, and place this into a Microdrive or 3D printed case. Have a look at the build section for available options.
Feature Overview
- Supports all Microdrive operations on Spectrum with Interface 1 (ROM versions 1 and 2) and on QL, no modifications or additional software required
- Can co-exist with actual hardware Microdrive units, which can be mapped on demand to any slot in the drive chain or turned off
- Supports Sinclair Network over the Internet, for connecting Spectrums and QLs anywhere in the world
- Daemon can run on Linux, MacOS, and Windows
- Control daemon via web UI, command line interface, and also from Spectrum/QL
- Works with MDR, MDV (JSpeccy MDVT formatted for Spectrum, as well as Qlay and Qemulator Mdump V1&2 for QL, gets auto-detected), and MDI formatted cartridge files
- For Spectrum, Z80 and SNA snapshots as well as TAP files can be directly loaded, no additional software required
- For QL, QDOS Zip archives can be directly loaded, provided the content fits on a single cartridge
- Works with CP/M on a Spectrum with LEC Memory Extension
- All supported formats can also be loaded from zip, gzip, and 7z compressed files
- Rename & quick format cartridges
- Search the online ZXDB and directly load from the web
- Store your collection on the daemon host and search, load, and manage from any client
- Connect a rumble motor for authentic sound ;-)
- List virtual drives & contents of cartridges
- View and export files on cartridges, or hex dump them for inspection
- Create & edit cartridges on your PC/Mac
Due to the minimal hardware required, OqtaDrive is also very cost-efficient. In the simplest setup, you only need an Arduino Nano and a few resistors and diodes. Additionally, if you own a Spectrum and a QL, you can use it with both, no need to have dedicated adapters. But above all, there’s the fun involved in building this!