Home

Awesome

ice-dongle

USB-C Dongle with ice40 UP5k FPGA

<img src="doc/ice-dongle.png" width="640" />

Abstract

This is a small USB connected FPGA board in a "dongle" form-factor. Note that it's not a true dongle since it doesn't have a USB plug (USB-C plugs are not practical for DIY assembly at the time this was designed) - instead it has a USB-C jack and you can use an inexpensive M-M adapter to achieve dongle-like function.

For I/O it provides an 18-pin FPC connector that conforms to the Eye-SPI standard found on some Adafruit products. This standard includes 3.3V power as well as 16 GPIO for things like SPI or I2C device, most often TFT LCD displays and user interfaces.

The FPGA is directly connected to USB and is pinned-out similarly to the 1bitsquared Icebreaker Bitsy so the NO2FPGA bootloader and user designs for that ecosystem should port over with minimal changes. It includes 8MB of flash and 8MB of PSRAM, as well as an RGB LED and a user button.

Initial programming of the FPGA bitstream takes place through a 1.27mm SMD header footprint on the back of the board. The original intent was to access this temporarily via the Adafruit "Pogo Pin Probe Clip" which should have attached easily over the pads. Unfortunately the pogo pin row spacing is too narrow for the SMT header pads so I ended up soldering on a header and using a normal cable. This may be fixed in future revisions, but for now an actual header + cable is probably more reliable for long-term development.

Status

22-10-15

Boards are back from OSHpark and so far things are working.

<img src="doc/ice-dongle_hw.jpg" width="640" />

22-10-16

USB FS interface is fully functional with the NO2 Bootloader. I've forked it to add a custom BOARD target for ice-dongle but I'll submit a PR to the main project when things settle down a bit. For the time being here's my fork:

NO2 Bootloader

To build, clone that and follow the directions in the README. A few additional notes:

22-10-17

Ordered some helper boards to make interfacing easier:

find out more about them in the Hardware directory.

22-11-20

22-11-21

Corrected silkscreen errors and bumped revision to V0.1a