The Pico ZX Printer replaces the ZX Printer or TS2040 printer. It's an emulator board that plugs into the expansion bus. It captures printouts and stores them for download, viewing, and printing from a web app. It works with the Sinclair ZX81 and ZX Spectrum, as well as their Timex Sinclair counterparts the TS1000 and TS2068.
In association with TimexSinclair.com and in collaboration with the TS-Team.
The Pico ZX Printer captures printouts from your Sinclair/Timex computer and stores them internally. These printouts can then be viewed, downloaded, and printed from your PC using a web app. The printouts can also be copied to an SD card for long term storage or transfer.
As well as the basic function of capturing printouts from your Sinclair/Timex computer, it also supports direct printing without any host PC. A printer can be connected to the Pico ZX Printer with a serial or parallel cable. Or it can print over the network to a network enabled printer. This makes it completley standalone and a direct replacement for a ZX Printer or TS2040 printer.
- View printouts in a web browser
- Print to a printer on your PC from the web browser
- Print to a serial or parallel printer with support for:
- Epson compatible dot matrix printer
- Thermal receipt printer
- Print to a network printer with support for:
- Epson inkjet printer
- Download printouts as image files in PNG, JPEG, or BMP format
- Converts printouts to text
- Converts printouts of program listings (LLIST) to ZMakebas
- Can be connected over USB, or without cables, over a WIFI network
- Store and manage printouts on an SD card
- Self-host the web app on the Pico ZX Printer, or your PC
The Pico ZX Printer is made up of two parts, the web app, and the backend that runs on the Pico ZX Printer board.
- Turn off your Sinclair/Timex computer
- Connect the Pico ZX Printer to the expansion bus at the back
- Connect a USB cable between the Pico ZX Printer and your PC
- Open the Pico ZX Printer web app from a Chrome, Edge, or Opera web browser
- Click on the USB cable at the top right
- Select the
Board CDCorBoard in FS modeport for the Pico and clickConnect. If the USB port doesn't appear it may be that MicroPython isn't installed. See how to install MicroPython in the note below. - Click on the USB cable at the top right again
- Click the
Installbutton - On the install dialog click the
Startbutton - Turn on your Sinclair/Timex computer
Note
The initial install will take some time. The next time you install it will be much faster as it only copies files that have changed.
Tip
Once installed you can manage the Pico ZX Printer from the Pico ZX Printer web app.
NOTE: The backend runs on MicroPython. This should already be installed, but if you are building from scratch, or have replaced the Raspberry Pi Pico, you may have to reinstall. This is a one-time thing. Expand this section for details.
First download the appropriate MicroPython file depending on your version of the Raspberry Pi Pico. Here's links to supported MicroPython UF2 files:
The latest MicroPython files can be found on the downloads page:
Then on the Raspberry Pi Pico:
- Push and hold the BOOTSEL button on the Pi Pico while connecting a USB cable to your PC
- Release the button once your Pi Pico appears as a Mass Storage Device called RPI-RP2
- Copy the UF2 file onto the RPI-RP2 volume
Unlike other ZX printer alternatives back in the day, the Pico ZX Printer doesn't replace the internal ROM of the Sinclair/Timex computer. Instead it uses the existing printer functionality built-in to the Sinclair/Timex computer by emulating the protocol of the ZX Printer.
The code that runs on the ZX Printer is written in MicroPython. Most of the hardware interfacing uses the Pi Pico's Programmable I/O (PIO). This combined with Direct Memory Access (DMA) takes the real-time load off the Python code. The Python code runs multiple tasks, like the print capture, web server, and serial server, using asyncio coroutines.
- Only modern browsers are supported. It's only been properly tested on Chrome
- Only designed to work on the desktop. Small screen devices have not been tested
- Only Chrome, Edge, or Opera web browsers currently support USB
- Github hosting only allows connection over USB
- Self hosting on the Pico ZX Printer only allows connection over the network
- Self hosting on your PC allows connection over both USB and network
- The COPY command on the unexpanded ZX81 and TS1000 doesn't work. If the Sinclair/Timex has more than 3.5KB of memory it works fine