Shrike-lite

Overview

Shrike-lite [1] is a low-cost, open-source microcontroller + FPGA development board combining an RP2040 [2] MCU and a 1120 LUT FPGA. It features a PMOD connector, breadboard-compatible layout, integrated FPGA–MCU IO interface, QSPI flash, dual user LEDs, and USB Type-C for power/programming. Ideal for learners, hobbyists, and hardware/software co-design prototyping.

Hardware

  • Microcontroller RP2040 [2], with a max frequency of 133 MHz

  • Dual ARM Cortex M0+ cores

  • 264 kByte SRAM

  • 4 Mbyte QSPI flash

  • GPIO

  • ADC

  • I2C

  • SPI

  • UART

  • USB Type-C connector

  • Dual user LEDs

  • Debug Connector

  • Reset and boot buttons

  • 1120 LUT SLG47910 Low-Power FPGA

  • Blue LED

Supported Features

The shrike_lite board supports the hardware features listed below.

on-chip / on-board
Feature integrated in the SoC / present on the board.
2 / 2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.

shrike_lite/rp2040 target

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-M0+ CPU2

arm,cortex-m0+

ADC

on-chip

Raspberry Pi Pico ADC1

raspberrypi,pico-adc

Clock control

on-chip

Raspberry Pi Pico clock controller node1

raspberrypi,pico-clock-controller

on-chip

The representation of Raspberry Pi Pico’s clock112

raspberrypi,pico-clock

on-chip

The representation of Raspberry Pi Pico’s PLL2

raspberrypi,pico-pll

on-chip

The representation of Raspberry Pi Pico ring oscillator1

raspberrypi,pico-rosc

on-chip

The representation of Raspberry Pi Pico external oscillator1

raspberrypi,pico-xosc

Counter

on-chip

Raspberry Pi Pico timer1

raspberrypi,pico-timer

DMA

on-chip

Raspberry Pi Pico DMA1

raspberrypi,pico-dma

Flash controller

on-chip

Raspberry Pi Pico flash controller1

raspberrypi,pico-flash-controller

GPIO & Headers

on-chip

Raspberry Pi Pico GPIO1

raspberrypi,pico-gpio

on-chip

Raspberry Pi Pico GPIO Port1

raspberrypi,pico-gpio-port

I2C

on-chip

Raspberry Pi Pico I2C11

raspberrypi,pico-i2c

Interrupt controller

on-chip

ARMv6-M NVIC (Nested Vectored Interrupt Controller) controller1

arm,v6m-nvic

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

Miscellaneous

on-chip

Raspberry Pi Pico PIO2

raspberrypi,pico-pio

MTD

on-chip

Flash node1

soc-nv-flash

on-board

Fixed partitions of a flash (or other non-volatile storage) memory1

fixed-partitions

Pin control

on-chip

Raspberry Pi Pico Pin Controller1

raspberrypi,pico-pinctrl

PWM

on-chip

Raspberry Pi Pico PWM1

raspberrypi,pico-pwm

Regulator

on-chip

Raspberry Pi Pico core supply regurator1

raspberrypi,core-supply-regulator

Reset controller

on-chip

Raspberry Pi Pico Reset Controller1

raspberrypi,pico-reset

RTC

on-chip

Raspberry Pi Pico RTC1

raspberrypi,pico-rtc

Sensors

on-chip

Raspberry Pi Pico family temperature sensor node1

raspberrypi,pico-temp

Serial controller

on-chip

Raspberry Pi Pico UART11

raspberrypi,pico-uart

SPI

on-chip

Raspberry Pi Pico SPI2

raspberrypi,pico-spi

SRAM

on-chip

Generic on-chip SRAM1

mmio-sram

Timer

on-chip

ARMv6-M System Tick1

arm,armv6m-systick

USB

on-chip

Raspberry Pi Pico USB Device Controller1

raspberrypi,pico-usbd

Watchdog

on-chip

Raspberry Pi Pico Watchdog1

raspberrypi,pico-watchdog

Programming

The shrike_lite board is supported by the following runners:

The shrike_lite board supports the runners and associated west commands listed below.

flash debug debugserver attach rtt
openocd ✅ (default)
uf2 ✅ (default)

There are multiple ways to program and debug the Shrike-lite [1] board. All methods are standard to the way of programming and debugging for the Raspberry Pi Pico [4].

The supported format for pico series (UF2) is located at build/zephyr/zephyr.uf2 file.

To build the application using USB Type-C connector, you can use the following command:

# From the root of the zephyr repository
west build -b shrike_lite samples/basic/blinky

To build the application using Raspberry Pi Debug Probe [3], you can use the following command:

# From the root of the zephyr repository
west build -b shrike_lite samples/basic/blinky -- -DRPI_PICO_DEBUG_ADAPTER=cmsis-dap

Flashing the board

To flash the board, you can use the following methods:

  • USB Type-C connector (default)

Press and hold the boot button while plugging in the USB Type-C connector to enter the bootloader mode and show the mass storage volume named “RP1-RP2” in the file manager.

You can either:

Drag and drop the build/zephyr/zephyr.uf2 file to the mass storage volume to program the board. You can also use the following command to program the board:

# From the root of the zephyr repository
west build -b shrike_lite samples/basic/blinky
west flash --runner uf2

Or use the following command to program the board to try another runner:

# From the root of the zephyr repository
west build -b shrike_lite samples/basic/blinky
west flash --openocd /usr/local/bin/openocd

Debugging the board

To debug the board,

Press and hold the boot button while the Raspberry Pi Debug Probe [3] is connected to enter the debug mode and show the mass storage volume named “RP1-RP2” in the file manager.

# From the root of the zephyr repository
west build -b shrike_lite samples/basic/blinky
west debug --openocd /usr/local/bin/openocd