From Random Projects
Jump to: navigation, search

openbiosprog-nand is a fully Open Hardware and Free Software USB-based programmer / dumper for NAND flash chips.

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). The firmware is GPL, version 3 or later. The PC software is GPL, version 2 or later.

See openbiosprog-spi for a (finished) programmer hardware for SPI (NOR) flash chips.
See openbiosprog for a (planned, unfinished) programmer hardware for other type of BIOS chips, e.g. LPC, FWH, or parallel (NOR) flash chips.

This projects is work-in-progress and not yet finished!


The schematics, PCB layouts, and other material is available from gitorious:

$ git clone git://


This is intended to be a USB-based device which can program, erase, and read/dump NAND flash chips.

  • The design is based on the ST STM32 microcontroller (ARM Cortex-M3), which does USB and also the NAND protocol via its FSMC component.
    • Alternatively, instead of using the FSMC it's also possible to use bitbanging to talk to the NAND flash chip.
    • Specifically, it's planned to use the STM32F103VC (or STM32F103VD or STM32F103VE, which are the same except for more flash/SRAM).
  • The board comes with a TSOP-48 socket where the NAND flash chip to be read/written/erased can be inserted.
  • The firmware is written using libopencm3 (GPL, version 3 or later).
  • The user-space host (PC) tool to control the device is written using libusb-1.0 (LGPL, version 2.1 or later), and is licensed under the GPL, version 2 or later.
  • The board uses 2 layers, and all parts are SMD. Resistors and capacitors are 0603.
  • 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.


  • Only chips in TSOP-48 package are supported, as the board has a TSOP-48 socket where you can insert your NAND flash chip.
    • This means other packages are not directly supported, and that you have to desolder the NAND flash chip before using it with openbiosprog-nand.
  • Only 3.3V NAND flash chips are supported (usually VCC min/max is 2.7V — 3.6V).
    • 3.0V NAND flash chips should also work (usually VCC min/max is specified as 2.7V — 3.6V as well for these chips).
    • 1.8V NAND chips are NOT supported in the 0.1 hardware revision (usually VCC min/max is 1.7V — 1.9V)!
    • Support for chips requiring other VCC voltages might be added in later hardware revisions.


  • A voltage regulator translates the 5V from USB to 3.3V, e.g. the TLV1117.
  • A JTAG connector for flashing the SMT32 is planned (but also DFU support probably).
  • Maybe serial will be available via pads (or even a connector), though this is optional.
  • There will be a socket for the NAND flash chip so it can be easily placed into the device without the need for soldering.

STM32 pins:






Bill of materials


Qty Device Footprint Value Refdes Mouser CSD Comments
1 ST STM32F103VCT6 LQFP-100 IC? 10.14€ ... Datasheet.
1 NAND flash socket TSOP48 IC? 11.20€ ... ...
1 3.3V LDO SOT-223 3.3V U? 0.528€ 1.25€ (223-1705) TLV1117-33 info. TLV1117-33 datasheet. LM1117IMP-3.3 datasheet.
1 Mini-USB B
custom U? 1.59€, 0.44€ (15761) 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.338€ 0.15€ (14-4S12,000MHZ) SMD part, +/- 30 ppm, 4.8mm x 11.5mm x 4.2mm (W x L x H). Sometimes the footprint/package is called HC49/US, HC49/U, HC49S, or HC49-S4. If in doubt, check the datasheet and make sure the land pattern / footprint matches. Mouser's ABLS-12.000MHZ-B4-T has 18pF load capacitance, CSD part no. 14-4S12,000MHZ has 30pF. Ideally you should use the matching capacitors, but the 27pF ones should be fine in most cases.
1 LED 0603 D? Power LED. Choose any color you like. Play with the value of R? to make the LED more/less brighter.
2 Ceramic capacitor 0603 27pF C?, C? 0.07€ (115-06N027)

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 75€, 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 3.59€ usually, you get free shipping on orders above 100€. No customs fees involved if you're in Germany, of course.