This open hardware project aims users to produce a low-cost flasher for the SST39SF0x0 type of ROM chips. The flasher revolves around the cheap Raspberry PICO device.
Besides general read/write/erase functionality for the SST39SF0x0 type of ROM chips, the software and tools delivered with the PICO-SST39SF0x0 Programmer tend to cater to a number of projects involving the venerable P2000T and P2000M, both early Philips home computers of the 1980s. See the list below for the projects that use the PICO-SST39SF0x0 Programmer flasher.
- P2000T Cartridges: A set of homebrew cartridges designed for the P2000T. These cartridges all use SST39SF0x0 type of ROM chips.
- P2000T Tape Monitor: A SLOT2 datacartridge for loading programs into the P2000T.
Nevertheless, this is a general purpose product and you are able to flash and kind of data onto the ROM chips.
The fully assembled device will look as seen in the image below. A ZIF-style
socket is used to insert the SST39SF0x0 chip. A reset button button is exposed
which will reset the device. The green and red LEDs will be on during read and
write operations, respectively. At the top-right part of the device, an access
hole is made to insert a long thin wire to press on the bootsel
button of the
Raspberry Pi PICO. When this button is pressed down and a USB cable is inserted,
the PICO will expose a file system allowing the user to upload the firmware
to the device.
Inside the enclosure is a single PCB that hosts the PICO, the ZIF cartridge and a number of chips. Since the GPIO pins on the PICO are 3.3V, extensive use of level shifters is made to hook up the PICO to the SST39SF0x0 chip, whose pins operate at the 5V logic level. To set the address on the SST39SF0x0 chip, three 74HC573 chips are being used (U2-U4). A diode (D1) acts as the reverse polarity protection in the event the user would place the chip in the wrong direction.
PCB frontside | PCB backside |
---|---|
To interface with the device, a GUI is written using the Qt framework. The GUI scans for all USB devices connected to the computer with a hardware signature matching the Raspberry Pi PICO. Upon a match, it tries to access the device. Interfacing with the device occurs via a serial communication (COM) port. By means of a number of simple 8-byte command words, instructions can be sent to the device and the corresponding response can be received. One is not restricted to using the GUI to interface with the device. An example set of Python scripts is provided to provide an alternative way to communicate with the PICO programmer.
A number of useful tutorials to work with the PICO programmer are provided below.
- Flashing the device / updating firmware
- Using the programmer to create copies of P2000T cartridges
- Using the PICO programmer in combination with the P2000T ZIF-cartridge
- Case: Set of .stl files to print a handy case for your flash device.
- Firmware: Firmware for your PICO to interface with the GUI.
- GUI: Qt-based GUI to interface with your PICO.
- PCB: Kicad files to produce the PICO flash device and the PLCC32 adapter board.
- Scripts: Number of Python scripts the correct working of your PICO device.
Download the latest version of the binaries via the links below.
- All software is shared under the GPL v3 license.
- All hardware (e.g. KiCAD files and .stl files) are shared under the CC-BY-SA 4.0 license.