iceflashprog
Assembly
The iceflashprog hardware is based on the stm32f0-usbd-devboard with a flat cable connecting it to the FPGA board's UEXT header. The firmware fits the smallest microcontroller supported by the devboard (16 KB flash, 6 KB RAM), so any STM32F042K variant works.
iceflashprog, front view
iceflashprog, back view
Parts list
| Part | Quantity | Description |
|---|---|---|
| stm32f0-usbd-devboard | 1 | Base controller board |
| 10-wire flat cable | 1 | Connects devboard to the FPGA board's UEXT header |
| M2 self-tapping screws | 8 | For the 3D-printed case (4 for devboard mounting, 4 for case assembly) |
Wiring
A 10-wire flat cable connects the development board to the UEXT header on the FPGA board. The cable can be soldered directly to the devboard pads, or standard header pins with DuPont cables can be used instead.
| Cable wire | stm32f0-usbd-devboard pin | FPGA / UEXT pin |
|---|---|---|
| 1 | 3.3V | 3.3V / Floating |
| 2 | GND | GND |
| 3 | A9 | RxD (unused) |
| 4 | A10 | TxD (unused) |
| 5 | B1 | CDONE |
| 6 | B0 | CRST |
| 7 | A6 | SDI |
| 8 | A7 | SDO |
| 9 | A5 | SCK |
| 10 | A4 | SS_B |
Warning
The solder jumper connected to Pin 1 of the UEXT header, which is open by default, should not be closed. The stm32f0-usbd-devboard is powered by its USB port.
LED behavior
When the device is powered on (or reset by the USB host or the internal watchdog), the LED stays on until the device is successfully enumerated by the USB host. After enumeration, the LED turns on whenever there is SPI data being transferred to the flash memory.
3D-printed case
A simple OpenSCAD case model is included in the project repository. The base and cover STL files are ready to print and the case is compatible with M2 self-tapping screws.
iceflashprog in its 3D-printed case
Firmware
After assembling the hardware, flash the firmware to the microcontroller. See Firmware for build instructions and flashing methods.