Every ZX81 Expansion Card You Ever Wanted, All At Once

The Sinclair ZX81 was a masterpiece of Sir Clive’s desire to get the most out of the least hardware, being about as minimalist as it was possible to get and still be a home computer in 1981. As such it has a keyboard, a Z80, TC and cassette interfaces, 1K of memory, and that was it. There were any number of add-ons for it, but if you were a 1980s kid the chances are you couldn’t afford them. So 45 years later here’s [adam.klotblixt] with OpenSpand — every ZX81 expansion you could think of, all in one!

For a start there’s a RAM expansion. Not the paltry 16K of old, this is user-configurable and has the whole 64K address space minus the ROM to play with. Then there’s SD card storage, hijacking Sinclair BASIC’s LOAD and SAVE commands. It’s got high-res graphics, emulated sound chips, a joystick port, serial ports, a choice of ROMs, and a composite video output. Perhaps the only thing it doesn’t have from back in the day is a printer interface, but we’re sure the serial port could be pressed into service somehow.

It does this all as you might expect these days, with an RP2350 emulating the real parts. The microcontroller disables the onboard RAM and ROM and emulates those too, such is the disparity in power between it and a Z80. We would have done anything for this expansion, back in the day.

The ’81 features here quite often, most recently in a look at Sinclair’s own RAM expansion.

25 thoughts on “Every ZX81 Expansion Card You Ever Wanted, All At Once”

  1. My first computer was the ZX81. The Openspand is just what we wished our ZX81 could do. I found out about its predecessor, the ZXSpand, and it was closed sourced and built on aging technology. When the developer made handfuls of ZXSPands they were usually gone by the time I found out. Kudos to Adam to modernizing, simplifying, and making it opensource so it can be available and easily made by anyone who wants one.

  2. The biggest drawback of the old ZX81 16KB RAM pack was that its crude connection mechanism meant it could move very easily, interrupting the edge-connector and causing a system crash.
    I presume that in the spirit of bringing things up to date with 21st century tech, this new expansion implements GPS, machine learning, and 3D time-of-flight sensors to detect in a very modern and hi-tech way when it’s moving relative to the host ZX81, and then crash in a perfectly emulated manner?

    Joking aside, this is a cool project. 8-year-old me would have given his brother’s right arm for something like this!

    1. “The biggest drawback of the old ZX81 16KB RAM pack was that its crude connection mechanism meant it could move very easily, interrupting the edge-connector and causing a system crash.”

      They could include some sort of MEMS based INS (say 6DOF with gyros and accelerometers), and cause a crash when any movement above a rather low threshold is detected.

      1. Absolutely! That’s the lines I’m thinking of. Or perhaps a mercury tilt-switch 🙂
        Of course, back in the primitive 80s, we just used a blob of blu-tak. How quaint. How crude.

          1. I feel like if it had been me, I’d’ve gotten so mad at it jostling loose at a bad moment that I would have glued it in place.

  3. Not to be dumber than usual, but you still gotta load from cassette? LOL.
    I don’t see the memory battery backed up. Tried to look at schematic but website blocked me for not using cookies.

    1. I suspect it’s presenting the SD card as an emulated tape device, thus allowing the existing LOAD “” and SAVE “” commands to work. No-one in their right mind would want to use Sinclair’s actual tape storage mechanism. Even back in the 80s I thought it was slow, but recently I had cause to load a .TZX (compressed tape image) into my Spectrum Next (“The Wild Bunch”, a Western-themed adventure, FWIW). The Pi Zero accelerator board decompressed it to a waveform, then it loaded at authentic tape speeds. My goodness. “Slow” and “tedious” don’t begin to describe it.
      10 minutes plus, just to load in less than 48KB of data.
      Here’s a random youtuber’s screengrab of the process, for those of you who think I’m being too harsh.
      Bear in mind that this video is just loading the loading-screen, a small fraction of the process for loading an entire game…
      https://youtu.be/MtBoRp_cSxQ?si=5t1CyfSFu6fUZBjw

    2. As far as I know it’s relatively common to use (u)SD cards for storage on those retrocomputers. “Compact”flash is also used, but those have lot of thin wires and are mechanically fragile.

      Recently I saw a video about a z80 retro computer (also here on hackaday.io) which uses the Z80 itself to bitbang the protocol for an uSD card, and apparently it was already a bit faster then the old cassette interfaces.

      1. Compact flash is essentially an IDE drive (same pinout & commands), so it’s easy to implement especially on a PC.

        If your hardware never used IDE drives than you might as well go to SD. Easier to buy these days as well.

  4. The zx81 was also my first computer. The monitor was an old camping black/white tv.
    16kb expansion was way out of financial reach those day’s. So I made a 1kb memory expansion on the motherboard . Result in 3x more memory. Even I build a weatherstation with Windspeed and direction. On the expansion Port but the 81 did monteur longer than a week before crashing.. Around me almost nobody had a computer those days.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.