Niceprog: new programmer for ICE40HX8K-EVB

Started by olin, April 11, 2026, 07:53:24 PM

Previous topic - Next topic

olin

I just wanted to let you know I made a new programmer for the ICE40HX8K-EVB board and possibly for other ICE40 FPGAs. It is called Niceprog and it is based on ESP32-S2 or ESP32-S3 MCU. I made it because I wanted to program my ICE40HX8K-EVB board by a cheap MCU I had in my spare part drawer, but the Iceprog Arduino source code available on Olimex product page did not work for me.
The project is opensource and can be found here: https://github.com/ole00/niceprog

Here are the features of Niceprog:
    * communicates via USB CDC serial line
    * uses RLE compression for faster upload of bitstreams
    * uses CRC checks for data transfers
    * supports up to 4 multi boot partitions for ICE40 FPGAs (cold boot). Olimex dev board has support for the feature - there are 2 buttons for the bitstream selection
    * auto creates multi boot partition table for ICE40 FPGAs
    * automatic erase of written flash blocks (no need to erase the chip before writing)
    * read, write, verify, identify flash chip commands
    * execute ICE40 FPGA stream without writing it to flash
    * supports external pass-through UART so that Niceprog serves as an USB-to-UART interface.
    *automatic switching between external pass-through UART and flash operations.
    * PCB for convenient programming of Olimex ICE40HX8K-EVB board

Performance:
    * writes and verifies simple IC40HX8k streams (~132 kbytes) in less than 3 seconds.
    * executes a simple IC40HX8k stream (~132 kbytes) in about a second.

I hope you find it useful.

LubOlimex

Nice, thank you for this project and sharing it!
Technical support and documentation manager at Olimex