The SVI-3x8 PicoExpander is a Raspberry Pico 2 W based expansion device for Spectravideo 318 and 328 computers.
The device emulates (when plugged into the SVI-3x8 expansion port):
- 96 kB of additional RAM (BK22, BK31, BK32) to SVI-328, to be used for example with BASIC SWITCH command or CP/M
- 144 kB more RAM to SVI-318, converting it to a SVI-328 and allowing games designed for SVI-328 to be run on a 318
- Disk emulation (.dsk) so you can load and save disk images via Wi-Fi
- Cassette drive emulation (.cas) with auto-running, allowing you to finally send and run .CAS images via Wi-Fi
- Support for 64 kB ROM game cartridges, without using the game cartridge slot and finally fixing the 64 kB ROM support in SVI-328 MKII devices
- Save states to save computer state and load it at later time, making it possible to save your progress in a game and continue later
- Remote launch allowing you to pick up a game image from PC/Mac and launch it from the SVI via Wi-Fi
- Hard disk emulation with server-based network backing, allowing CP/M hard disk images to be served over Wi-Fi
Limitations of the current software (1.4.3):
- Supports only one disk drive, two-disk drive support coming up
This repository will later include the full software and the hardware design later as open source. Now you can access the 1.4 PCB version in pcb directory.
If you can't build one yourself, you can order an assembled version from here. Current shipping estimate in 1-4 weeks depending on the order volumes.
Important note:
This is ”bleeding edge” hardware, so it might not last 40 years as the SVI did. The Pico pins are used with level shifters and within the limits of the voltage thresholds, but the actual Pico CPU is running overclocked at 300 MHz (normally 150 MHz). This might cause the Pico to wear out sooner than Raspberry has designed it to. However, the Pico can be replaced on the board if needed.
Also, note that device is a prototype and therefore has very limited warranty: you can test it when it arrives and if you're not satisfied, we'll figure out if we ship a new one or you get your money back or something else. But everything else is at your own risk. If the device stops working after 3-12 months, you'll need to fix it yourself or get a new one.
When you've built the PCB you can flash the .UF2 file provided in the release directory. For the assembled devices, the Pico has already been flashed with the latest firmware.
- Disconnect PicoExpander from SVI
- Hold the BOOTSEL button on the Pico W while connecting it to your computer via USB
- The Pico will appear as a USB mass storage device
- Copy the
.uf2firmware file from therelease/directory to the Pico USB drive. Wait until Pico disconnects (displays Disk Not Ejected Properly in macOS) and the green LED light turns on to signal that the firmware booted correctly. - Finally, remove the USB cable.
The file server requires Node.js to run. This project includes an .nvmrc file specifying Node.js v22.20.0.
macOS (using nvm):
Install nvm if you don't have it, then:
# Install and use the correct Node.js version
nvm install
nvm useWindows: Download and install from nodejs.org
Place the PicoExpander into the expansion port of the SVI-318 or SVI-328. Boot SVI up.
You can return to the main menu in two ways:
- Press the RESET button on the PicoExpander briefly
- Press CTRL + SHIFT + LEFT GRAPH + RIGHT GRAPH simultaneously on the keyboard
If you need to reset the SVI, press the RESET button for at least 3 seconds.
Start the server with a directory containing your disk images, ROMs, and cassette files:
node js/server.js ./imagesThe server will:
- Scan the directory for supported files (.rom, .dsk, .cas, .sta)
- Connect to the PicoExpander over Wi-Fi
- Serve files to the SVI-328 on demand
Press H in the server to see available commands.
For detailed documentation, see the doc/ directory:
| Document | Description |
|---|---|
| server.md | File server usage and interactive commands |
| send_command.md | Command-line tool for scripting and automation |
| hard-disk-emulation.md | Hard disk emulation setup and usage |
| boot-sequence.md | Technical details of the PicoExpander boot process |
| io-ports.md | I/O port reference for developers |
| save-state-format.md | Save state file format specification |
| development.md | Building the ROM and development setup |
| pcb/README.md | PCB design files, schematics overview, and parts list |
See the latest changes in v1.4.3 release notes.
Detailed licensing information is documented within the included LICENSE file.

