Author Topic: openbiosprog-spi, a DIY Open Hardware and Free Software USB-based SPI BIOS chip  (Read 3336 times)

0 Members and 1 Guest are viewing this topic.

Offline Uwe Hermann

  • Contributor
  • Posts: 19
  • Country: 00
    • Personal website/blog
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.
sigrok developer (open-source, portable software for logic analyzers, oscilloscopes, DMMs, and other test & measurement gear)

Offline DJPhil

  • Frequent Contributor
  • **
  • Posts: 512
Very nice!

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

Offline Uwe Hermann

  • Contributor
  • Posts: 19
  • Country: 00
    • Personal website/blog
Hi,

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


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.
sigrok developer (open-source, portable software for logic analyzers, oscilloscopes, DMMs, and other test & measurement gear)

Offline Uwe Hermann

  • Contributor
  • Posts: 19
  • Country: 00
    • Personal website/blog
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?


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.
sigrok developer (open-source, portable software for logic analyzers, oscilloscopes, DMMs, and other test & measurement gear)

Offline mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 5546
  • Country: gb
    • Mike's Electric Stuff
Was it really necessary to make this so so small that it needed 0603's and double-sided assembly?

Mike's Electric Stuff: High voltage, vintage electronics, electrical curiosities
Day Job: UFOs, LEDs etc.
Versatronics & other low-end pick & place forum

Offline Uwe Hermann

  • Contributor
  • Posts: 19
  • Country: 00
    • Personal website/blog
Was it really necessary to make this so so small that it needed 0603's and double-sided assembly?

Well, "necessary"? No. But desirable, of course. Bigger PCBs means higher cost, and I just generally like smaller devices. Are you asking because you think 0603 is hard to solder by hand? Well, it's not. And the 64-pin LQFP is also not hard to solder. And I'm saying this as someone who is really a beginner at soldering. Soldering small SMD parts sounds more scary than it actually is, really. Watch one or two Youtube videos on SMD soldering, experiment on 1-2 random dead PCBs and you should be fine.

Uwe.
« Last Edit: September 04, 2010, 11:33:31 AM by Uwe Hermann »
sigrok developer (open-source, portable software for logic analyzers, oscilloscopes, DMMs, and other test & measurement gear)

Offline mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 5546
  • Country: gb
    • Mike's Electric Stuff
Was it really necessary to make this so so small that it needed 0603's and double-sided assembly?

Well, "necessary"? No. But desirable, of course. Bigger PCBs means higher cost, and I just generally like smaller devices. Are you asking because you think 0603 is hard to solder by hand? Well, it's not. And the 64-pin LQFP is also not hard to solder. And I'm saying this as someone who is really a beginner at soldering. Soldering small SMD parts sounds more scary that it actually is, really. Watch one or two Youtube videos on SMD soldering, experiment on 1-2 random dead PCBs and you should be fine.

Uwe.

I appreciate that, and I can happily hand-solder 0402's, but there are a lot of people out there who can't. For a project targetted at the DIY/Open Source community, ease of assembly is more of a consideration than for a commercial product assembled on a pick/place machiine.
There is a significant jump in requiired soldering competence between 0603 and 0805 - bear in mind people have varying degrees of manual dextrity, eyesight and patience. 
Double-sided is less of an issue for hand assembly, although it's always easier to work one a PCB with a flat underside, but in a commercial situation, the  additional assembly cost of double sided assembly can often outweigh the PCB size advantage.

Mike's Electric Stuff: High voltage, vintage electronics, electrical curiosities
Day Job: UFOs, LEDs etc.
Versatronics & other low-end pick & place forum


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf