RushSPI
RushSPI is a fully Open Hardware and Free Software USB-based programmer for SPI chips, e.g. those used as BIOS chip in recent mainboards.
The user-space source code is part of flashrom (GPL, version 2), the schematics and PCB layouts are licensed under the CC-BY-SA 3.0 license and were created using the open-source Kicad EDA suite (GPL, version 2).
This work is based on openbiosprog-spi project. Thanks to Uwe Hermann for making it possible.
This is work-in-progress project. If you have any ideas of making this project better - send me an email at schlej[at]live.de
Contents
Downloads
The schematics, PCB layouts, and other material is available from GitHub
The flashrom source code is available from:
$ svn co svn://flashrom.org/flashrom/trunk flashrom
Design
This is intended to be a simple, fast SPI chip programmer with USB interface.
- It uses the FTDI FT232H chip as basis for USB as well as for handling the actual SPI protocol in hardware (MPSSE engine of the FT232H). This chip is new single channel version of FT2232H, it is cheaper and has internal 5V to 3.3V converter.
- All GPIO-pins of FT232H are connected to pin header, so the programmer can be used as FT232H breakout board.
- Attaching the SPI chip:
- There's a DIP-8 socket on the device so you can easily insert the SPI chip you want to read/erase/program.
- Optionally, if you don't want to use DIP-8 socket, you can use pin header to connect the chip you want.
- The programmer can be powered from USB or from external 3.3V to 5V power source, which is needed by ISP.
- The hardware is designed using the open-source Kicad EDA suite (GPL, version 2), and is released under the CC-BY-SA 3.0 license.
- The software on the host side is flashrom (GPL, version 2).
- The PCB board dimensions are 40mm x 30mm with elements only on top side.
Usage
Identify the SPI chip: flashrom -p ft2232_spi:type=232H
Read chip contents: flashrom -p ft2232_spi:type=232H -r dump.rom
Write chip contents: flashrom -p ft2232_spi:type=232H -w bios.rom
See the respective flashrom page (or consult the flashrom manpage) for details.
Schematics and PCB layout images
Bill of materials
Qty | Device | Footprint | Value | Refdes | Mouser | CSD | Comments |
---|---|---|---|---|---|---|---|
1 | FTDI FT232HL | LQFP-48 | — | IC1 | 3.87€ | — | USB 2.0 Hi-Speed (480Mb/s) to UART/FIFO IC. Datasheet |
1 | DIP-8 socket | DIP-8, 300 | — | P2 | 0.231€ | 0.10€ | Socket for SPI chip. 2.54mm pitch, 10.03mm x 10.16mm, row distance 7.62mm |
1 | Mini-USB B connector |
custom | — | CON1 | 1.57€ | 0,26€ | Female Mini-USB connector, Type B, 10mm x 3,95mm x 9,2mm. Mouser: Molex part no. 0548190572, Drawing. The CSD one has a slightly different footprint, but made the Kicad footprint generic enough to work for both |
1 | Crystal | HC49-US | 12MHz | X1 | 0.27€ | 0,1856€ | Non-SMD one |
1 | Ceramic capacitor | 0603 | 10nF | C6 | 0,05€ | 0,0035€ | Any voltage above 6.3V is fine |
2 | Ceramic capacitor | 0603 | 27pF | C2, C4 | 0,05€ | 0,0048€ | Any voltage above 6.3V is fine |
6 | Ceramic capacitor | 0603 | 100nF | C1, C3, C5, C9, C10, C11 |
0.05€ | 0.002€) | Any voltage above 6.3V is fine |
2 | Ceramic capacitor | 0603 | 10uF | C7, C8 | 0,074€ | — | Any voltage above 6.3V is fine |
1 | Resistor | 0603 | 1k | R3 | 0.025€ | 0.0008€ | — |
2 | Resistor | 0603 | 4k7 | R4, R5 | 0.05€ | 0.0023€ | — |
1 | Resistor | 0603 | 10k | R1 | 0.017€ | 0.0012€ | — |
1 | Resistor | 0603 | 12k | R2 | 0.041€ | 0.0023€ | Should be 1% precision ideally |
1 | Chip ferrite bead | 0603 | 600Ω, 500mA | L1 | 0.314€ | — | — |
2 | ESD suppressors | 0603 | — | FB1, FB2 | 0.256€ | — | Optional but recommended |
1 | LED | 0603 | — | D1 | 0.067€ | 0.0618€ | Power LED. Choose any color you like. Play with the value of R3 to make the LED more/less brighter |
2 | Jumper | 2x1 | — | JP1, JP2 | 0.124€ | 0.004€ | — |
1 | 2x14 pin header | 2x12 | — | P1 | 1.32€ | — | You must remove pins 3 and 4 from it on assembly. |
1 | 2x1 pin header | 2x1 | — | JP2 | 0.19€ | — | I have bought this 2x20 header from CSD and made 2x14 and 2x1 from it using a sharp knife |
Note 1: All prices are for 1 piece. If you buy more, it gets a lot cheaper usually.
Note 2: Prices from Mouser do not include German VAT ("Umsatzsteuer"). Mouser offers free shipping for orders above 65€, otherwise it's 20€ shipping. Mouser handles customs fees for you, which means less hassle.
Note 3: CSD prices do include German VAT already. Shipping is 4.85€ usually, you get free shipping on orders above 60€. No customs fees involved if you're in Germany, of course.
PCB manufacturing
I have ordered 11 boards from PCB-POOL, as Uwe did in openbiosprog-spi. Read there about Kicad data export and PCB-POOL ordering process.
Assembly
Nothing special, just soldering. I have used solder paste and SMD rework station to solder SMD parts and FT232. Photos of assembled boards will be added later, when I manage to take good ones.
Upcoming v0.2
I'm thinking of adding level shifter and LDO converter to make the programmer compatible with 1.8V and 5V SPI chips. Additional ZIF SOIC8 socket is also an option, as well as JTAG header.