Skip to content

ifilot/pico-sst39sf0x0-programmer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PICO-SST39SF0x0 Programmer

GitHub tag (latest SemVer) build License: GPL v3 License: CC BY-SA 4.0

OSHW

Purpose

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.

Device

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.

Image of the PICO Flasher 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
PCB frontside PCB backside

GUI

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.

PICO programmer GUI

Documentation and tutorials

A number of useful tutorials to work with the PICO programmer are provided below.

Schematics

PCB schematics

Download schematics as PDF

Contents

  • 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.

Obtaining pre-built binaries

Download the latest version of the binaries via the links below.

License