The Zerocat Chipflasher

Let’s create trustworthy hardware on our own! The free-design Propeller microchip empowers us to do so. For example, we build up a clean toolchain for reflashing other devices. We delete proprietary firmware of laptops and write coreboot or libreboot free firmware replacements into BIOS-chips. Currently, we are liberating the ThinkPad X200/X200s and ThinkPad X220 Laptops using our Zerocat Chipflasher, thus avoiding the commonly used Beagle Bone Black or Raspberry Pi.

Fully documented, freely licensed

You may browse the sources in advance, for we have generated our documentation for you with doxygen. The chipflasher's git repository is available as well. We invite you to clone it to your local drive like so:

$ git clone git://zerocat.org/zerocat/projects/chipflasher

Read the README.md in chipflasher/doc/ to get started.

In general, we use a free license like this:

If you need another free license, please get in contact.

Easy to use

The Zerocat Chipflasher is meant as a Do-It-Yourself project (DIY). It is easy to use and easy to build. Some advanced practice in soldering will be necessary when you want to access a WSON packed BIOS chip. For SMD packed chips, you may use a test clip.
Zerocat Chipflasher, flashing a Gigabyte GA-G41M-ES2L desktop board

Systemboards that have their BIOS-Chip packed in a WSON package need careful soldering with a thin tipped iron.
access to a WSON package

Typical Setup

The chipflasher’s USB port is used for power only, thus the typical setup is with a host that has an RS232 serial port available for data communication. We recommend a ThinkPad X60 with Libreboot-BIOS and docking station for that.

+------------+                +-------------+           +·············+
| Host, i.e. |                | Zerocat     |           +---------+   :
|  ZC-X60 +  |<--RS232 data-->| Chipflasher |---+3.3V-->| SPI     |   :
|   Docking  |                |             |<---SPI--->|  Chip   |   :
|            |----+-+5V-USB-->| firmware:   |           +---------+   :
| software:  |   /            |  'kick'     |           :             :
| 'connect'  |--+             +-------------+           : Systemboard :
|            |                                          : without     :
+----------- +                                          : Battery     :
                                                        : nor Power   :
                                                        +·············+

Easy to build

The chipflasher's circuit intends to be as simple as possible and it should be easy to set up. However, some practice in soldering may be necessary. Don't forget to use a socket for the P8X32A, you may want to use it for your homebrew projects as well.
chipflasher schematics

For your convenience, cable wirings are listed in an extra file, as well as pin layouts of typical target BIOS chips. These are important, for you absolutely must not get confused with power and ground lines!
chipflasher cables and typical SPI chip pinouts

There is a PCB layout file available as well, which has been created with PCB, the Printed Circuit Board Layout Editor. See this graphical snapshot to get the idea of the current status:
Chipflasher PCB Layout, untested

A first PCB Prototype

The version that ships with the tag pcb-prototype on the master branch has been milled into copper recently in order to prove suitability. However, using that file for production purposes is not yet recommended. Several fixes were necessary.
Chipflasher PCB Layout Prototype

Labels, pinouts and board version are directly written into the copper, thus no descripte sticker is on the top panel. As you can see on the photo, the superfluous copper was not erased by the CNC-mill, but has been connected to GND afterwards (see front edge, close to the RS232 connector). To solder parts onto the top layer was extremely difficult and tricky, and this needs to be fixed in order to make this layout interesting for workshops or production. Note that the fully populated board has been sealed with clear varnish.
Chipflasher PCB Prototype