Home

Awesome

Kolibri FPGA Dongle

Kolibri is a USB FPGA dongle designed by Lone Dynamics Corporation.

Kolibri FPGA Dongle

This repo contains schematics, example firmware, gateware and documentation.

Find more information on the Kolibri product page.

Blinky

Building the blinky example requires Yosys, nextpnr-ice40 and IceStorm.

Assuming they are installed, you can simply type make to build the gateware, which will be written to output/blinky.bin. You can then connect the device to your computer and use the latest version of ldprog to write the gateware to the device.

Programming

The RP2040 firmware, FPGA SRAM and flash can be programmed over the USB connector.

Configure the FPGA SRAM:

$ ldprog -Ks blinky.bin

Program the flash:

$ ldprog -Kf blinky.bin

Firmware

Kolibri ships with RP2040 firmware based on the Müsli firmware which allows it to communicate with ldprog. The firmware also provides a USB CDC bridge to a UART on the FPGA (default: 115200 8N1).

The firmware is responsible for initializing the system, configuring and outputting the system clock, and either configuring the FPGA or telling the FPGA to configure itself from flash.

The system clock (CLK_RP) is 48MHz by default.

The firmware can be updated by holding down the BOOT button, connecting the device to your computer, and then dragging and dropping a new UF2 file to the device filesystem.

The firmware can be built from source or you can use the latest kolibri.uf2 binary from the firmware directory.

Default RP2040 to FPGA IO mapping

SignalRP2040FPGA
RP_GPIO0UART0 TXUART RX
RP_GPIO1UART0 RXUART TX
RP_GPIO2UART0 CTSUART RTS
RP_GPIO3UART0 RTSUART CTS
RP_GPIO4SPI0 RXSPI TX
RP_GPIO5SPI0 CSSPI CS
RP_GPIO6SPI0 SCKSPI SCK
RP_GPIO7SPI0 TXSPI RX

Note: SPI isn't currently used.

SOC

Zucker is an experimental RISC-V SOC that supports Kolibri.