Electronics > Projects, Designs, and Technical Stuff

openbiosprog-spi, a DIY Open Hardware and Free Software USB-based SPI BIOS chip

(1/2) > >>

Uwe Hermann:
Hi guys,

let me announce a little Open Hardware / Open-Source electronics and PCB design project I have finished recently: openbiosprog-spi, a small USB-based programmer hardware for SPI BIOS chips as found in recent mainboards, network cards, graphics cards, and other stuff.

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). Nope, no Eagle for me as I don't use closed-source software, kthxbye.

The main use-case of the device is to help you recover easily from a failed BIOS upgrade (either due to using an incorrect BIOS image, due to power outages during the flashing process, or whatever). The device only supports SPI chips, as used in recent mainboards (in DIP-8 form factor, or via manual wiring possibly also soldered-in SO-8 variants). It can identify, read, erase, or write the chips.

The device uses the FTDI FT2232H chip as basis for USB as well as for handling the actual SPI protocol in hardware (MPSSE engine of the FT2232H). The PCBs are 44mm x 20mm in size, 2 layer, 8 mil traces, 0603 SMD components on both sides.

I have put up a lot more photos and information such as the bill of materials, the Kicad settings I used for creating the PCBs, the Gerber files and the Excellon drill files etc. on the main projects page:

  http://randomprojects.org/wiki/Openbiosprog-spi

Some more info is also available in my blog post about openbiosprog-spi.

Note that this is my first "real" electronics project, and also my first Kicad project (and I'm quite happy with Kicad btw). So if you spot any stupid mistakes I have made in the schematics or layout, please let me know.

Uwe.

DJPhil:
Very nice!

I love all the documentation, and I'm a big fan of KiCad too. :)

Uwe Hermann:
Hi,


--- Quote from: shafri on September 03, 2010, 01:52:08 pm ---cool!!! may extend to FLASH reader i think. something in my mind to develop. will get back to this.
i suggest you sell it on your web, ebay or something...
or apply for $80 at http://eevblog.com/forum/index.php?topic=1153.0

--- End quote ---

What exactly do you mean with "flash reader"? This one can read NOR flash which speaks the SPI protocol. I also plan to do other hardware which can support LPC or FWH or parallel NOR flash, and possibly yet another hardware which will support NAND flash to some degree. This is not yet finished though, and will also not be based on the FT2232H as it would be horribly slow (SPI is only doable because the FT2232H supports it in hardware, which is not the case for LPC/FWH for instance).

Uwe.

Uwe Hermann:

--- Quote from: shafri on September 03, 2010, 04:41:45 pm ---err. i mean, i'm thinking of a "parallel" Spansion NOR FLASH reader/writer. If you can build one for a resonable price, then i want one :), i've not look into closely to the doc, but i think there's no open source code for this project? just commands from PC?

--- End quote ---

The current openbiosprog-spi only supports SPI chips and I use the flashrom software on the PC to control the device.

Spansion parallel NOR flash is likely in the DIP-32 or PLCC32 package and is not supported by this hardware, but I plan to build other hardware which can support it. However, it might be simpler and faster for you to just use an old mainboard which has this type of chip, and use the "flashrom" software to abuse your mainboard as "programmer". The list of mainboards supported by flashrom is pretty long and new boards are getting added on a regular basis.

And yes, you can hot-swap BIOS chips in desktop mainboards without any issues, I do it all the time (it's not so trivial on laptops due to various issues, though).

Uwe.

mikeselectricstuff:
Was it really necessary to make this so so small that it needed 0603's and double-sided assembly?

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version