/nand_programmer

NANDO - NAND Open programmer

Primary LanguageCGNU General Public License v3.0GPL-3.0

NANDO (NANDopen) programmer

General

NANDO is open source NAND programmer based on STM32 processor. It supports parallel NAND and SPI flash programming.

PCB boards:

Application:

Features

  • USB interface
  • PC client software for Linux & Windows.
  • TSOP-48 socket adapter for NAND chip (compatible with TL866 adapter)
  • TSOP-48 solder adapter for NAND chip
  • 8 bit parallel NAND interface
  • SPI interface
  • 3.3V NAND power supply
  • NAND read,write and erase support
  • NAND read of chip ID support
  • NAND read of bad blocks
  • NAND bad block skip option
  • NAND include spare area option
  • Open KiCad PCB & Schematic
  • Open source code
  • Read & Write LEDs indication
  • Write speed: 512KBytes/s
  • Read speed: 640KBytes/s
  • Erase speed: 256MBytes/s
  • Extendable chip database
  • Chip autodetection
  • Firmware update

Supported chips

Parallel NAND:

K9F2G08U0C, HY27US08121B, TC58NVG2S3E, F59L2G81A, MX30LF2G18AC and others.

See full list of supported chips qt/nando_parallel_chip_db.csv

SPI flash

AT45DB021D, MX25L8006E, W25Q16JV and others.

See full list of supported chips qt/nando_spi_chip_db.csv

Release binaries

You can download host application deb package for Ubuntu/Windows installer, firmware binary for STM32, schematic and gerber files from here:

https://drive.google.com/drive/folders/1d5hP6MKbkEBGQe_xIRl4-A5LPt_-9QIN

License

In general the sorce code, PCB and schematic are under GPLv3 license but with limitations of:

firmware/libs/spl/CMSIS/License.doc

firmware/libs/spl/STM32_USB-FS-Device_Driver/ - http://www.st.com/software_license_agreement_liberty_v2

firmware/usb_cdc - http://www.st.com/software_license_agreement_liberty_v2

Build

Requirements

Linux based OS

Build firmware

  1. Download compiler and documents from Google Drive:

Burn firmware via SWD (ST-Link)

  • sudo apt-get install libusb-1.0-0-dev
  • cd ~/dev/
  • git clone https://github.com/texane/stlink.git
  • cd stlink/
  • mkdir -p build && cd build
  • cmake -DCMAKE_BUILD_TYPE=Release ..
  • sudo make install
  • sudo cp ../etc/udev/rules.d/* /etc/udev/rules.d/
  • sudo udevadm control --reload-rules
  • sudo udevadm trigger
  • connect ST-Link to board
  • cd ~/dev/nand_programmer/nand_programmer/firmware
  • st-flash write ./obj/prog.bin 0x8000000

Build host application

Linux

  • sudo apt-get install libboost-all-dev
  • Install Qt5.x
  • Open ~/dev/nand_programmer/nand_programmer/qt/qt.pro with QtCreator.
  • Go to Projects->Build->Build Steps->Add Build Step->Make. Add "install" to "Make arguments".
  • Build->Run qmake
  • Build->Build All
  • Build->Run

Windows

  • Install boost library from GoogleDriver archive under C:/boost/ or compile.
  • Install Qt5.x
  • Open ~/dev/nand_programmer/nand_programmer/qt/qt.pro with QtCreator.
  • Go to Projects->Build->Build Steps->Add Build Step->Make. Add "install" to "Make arguments".
  • Build->Run qmake
  • Build->Build All
  • Build->Run

Schematic and PCB

  • Install KiCad 5.0.1
  • Open ~/dev/nand_programmer/nand_programmer/kicad/nand_programmator.pro

Adding new chip

  • Go to Settings->Chip database
  • Press "+" button and fill out parameters from datasheet.

WiKi

Check WiKi page for more information.