nander-rs
๐ฆ Modern SPI NAND/NOR Flash programmer written in Rust
A complete rewrite of SNANDer in Rust, designed for maximum portability and reliability.
โจ Features
- ๐ Pure Rust USB - No
libusbDLL required - ๐ฅ๏ธ Cross-platform - Windows, Linux, macOS
- ๐ฆ Single binary - No runtime dependencies
- ๐ก๏ธ Memory safe - Rust's ownership system
- ๐จ GUI & CLI - Graphical and command-line interfaces
- โก High Speed - Support for 60MHz SPI (CH347)
- ๐ค Batch Mode - Automate workflows with simple scripts
๐ฆ Installation
๐ Quick Start
# Test programmer connection
# Run automated batch operation (Erase -> Write -> Verify)
# Detect flash chip
# Read flash
# Launch GUI

๐ Documentation
| English | ไธญๆ |
|---|---|
| Quick Start | ๅฟซ้ๅ ฅ้จ |
| CLI Reference | ๅฝไปค่กๅ่ |
| Troubleshooting | ๆ ้ๆ้ค |
๐ Full Documentation / ๅฎๆดๆๆกฃ
๐ Supported Hardware
Programmers
- CH341A - USB SPI programmer (Standard)
- CH347 - High-speed USB SPI programmer (up to 60MHz)
Flash Types
- SPI NAND - With OOB and bad block management
- SPI NOR - Standard JEDEC SPI NOR
- I2C EEPROM - 24Cxx series
- SPI EEPROM - 25xxx series
- Microwire EEPROM - 93Cxx series
โ ๏ธ Windows Users
If you see a driver error, you need to install WinUSB driver using Zadig.
See: Windows Driver Fix
๐ License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT License (LICENSE-MIT)
Note: This is a clean-room implementation. While inspired by SNANDer's functionality, nander-rs contains no GPL-licensed code.
๐ Acknowledgments
- SNANDer by McMCC - Original C implementation
- The Rust embedded community