Skip to content

machdyne/kolibri

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Signal RP2040 FPGA
RP_GPIO0 UART0 TX UART RX
RP_GPIO1 UART0 RX UART TX
RP_GPIO2 UART0 CTS UART RTS
RP_GPIO3 UART0 RTS UART CTS
RP_GPIO4 SPI0 RX SPI TX
RP_GPIO5 SPI0 CS SPI CS
RP_GPIO6 SPI0 SCK SPI SCK
RP_GPIO7 SPI0 TX SPI RX

Note: SPI isn't currently used.

SOC

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