Skip to content

Chip Database Fields

Henrik Olsson edited this page Aug 31, 2026 · 3 revisions

Firestarter EPROM Programmer


Chip Database Fields

Firestarter ships a chip database describing every part it knows how to drive — 746 chips across 59 manufacturers. This is what each field in an entry means.

You can override any of it locally: put your own entries in ~/.firestarter/database.json and they take precedence over the shipped data.


An entry

Each chip is filed under its manufacturer and has four parts: its part number, its pinout, what it is electrically, and how to program it.

part_number      M27C512
pinout           DIP28_27512
support_status   supported
electrical       ...
programming      ...

part_number

The part number as printed on the package. This is the name you pass on the command line.

pinout

Which physical layout the chip uses — which pin carries which signal. Every layout is listed in Pin Maps.

support_status

What the project actually claims about this chip. Three values occur:

Value Meaning
supported Firestarter drives this part
adapter-required The chip needs a physical adapter before it fits the socket — see Pin Maps
protocol-not-implemented The chip is in the database but its programming algorithm is not implemented

A chip listed as supported means the project believes it works. It does not mean anyone has run one — see Testing Chips.


electrical

Field Meaning
pin_count 24, 28 or 32
size_bytes Capacity in bytes
type The broad family — EPROM, EEPROM, Flash, SRAM
vcc_mv Supply voltage, in millivolts
vdd_mv Logic supply voltage, in millivolts
vpp_mv Programming voltage, in millivolts. Zero for parts that program at 5 V

vpp_mv is the value the VPP regulator is asked for. Set the trimpot on the shield to this voltage before programming a part that needs one — the board cannot set it for you, and it cannot tell you afterwards what it actually delivered to the socket.


programming

Field Meaning
algorithm The protocol ID — how the chip is driven. See Programming Protocols
pulse_duration_us Programming pulse width, in microseconds
chip_id_check Whether the chip can report a manufacturer and device ID
chip_id_value The ID it should report, when it can
page_size Write page size, where the part writes a page at a time. Present on 20 chips

chip_id_check is worth understanding: when it is true, Firestarter can read the chip's own identification and tell you whether the part in the socket is the part you named. When it is false, no such check is possible — the chip has nothing to report — so a wrong part in the socket will simply be driven as whatever you asked for.

Decoded but unused

protect_off_before, protect_on_after and infoic_page_size_raw are carried through from the upstream chip data and stored, but nothing in Firestarter reads them. They are recorded here so nobody re-derives them later assuming they take effect.

Clone this wiki locally