Connect FTDI SPI with ICE40 FPGA

For bitstream configuration and SPI interface to PC

5 min readMay 29, 2023

The open source toolchain for ICE40 FPGA works exceptionally well. For example, APIO (link) combines synthesis, simulation and programmer into one easy-to-use CLI, which makes ICE40 FPGAs fun to play with, in strong contrast to bulky, snail-slow Xilinx FPGA toolchains.

1. FTDI SPI Bitstream to Flash Chip

Because of the free ICE40 open source toolchain, many low-price development board has spun up around ICE40 FPGAs. Most of them use FTDI FT232H in SPI mode to write bitstream to a Flash chip, which then in turn configures the ICE40 FPGA.

For example, in Upduino 3.1 schematic

FT232H has its SPI signals going into the Flash chip to send ICE40 bitstream. The bitstream is then read into ICE40 via its SPI lines (see schematic snippets below) for configuration upon FPGA power up.

In this case, the Flash chip serves as a SPI slave, whereas both FTDI and ICE40 serve as SPI masters.

2. FTDI SPI to ICE40 for configuration




memento of electronics and fun exploration for my future self