Build the GB-Link firmware locally for development or custom board targets.

Prerequisites

  • Zephyr SDK
  • Python 3 with west package manager
  • CMake and a C/C++ toolchain
  • Git

The firmware is built against Zephyr 3.7.99. Newer versions should also be compatible.

Clone and initialize

git clone https://github.com/GB-Link/GBLink-Firmware.git
cd GBLink-Firmware
west init -l .
west update

Build

west build -b <board_name>

Supported boards

The firmware ships overlays for these Zephyr board targets:

Board targetHardwareNotes
rpi_picoGB-Link USB V2, GB-Link USB V1 (Etsy), Pico PCB, Pico Zero PCB, Raspberry Pi PicoDefault target — official releases and CI builds use this board. All RP2040 GB-Link adapters share the same pinout; see Hardware & Wiring.
nucleo_f070rbSTM32 Nucleo-F070RBLegacy Celio development board (STM32F070). Useful for porting work; not used for production GB-Link hardware.

Examples:

# GB-Link USB V2, V1, DIY Pico boards, or Raspberry Pi Pico
west build -b rpi_pico

# STM32 Nucleo (legacy / development)
west build -b nucleo_f070rb

For a custom MCU or pinout, add a new overlay under boards/ and pass your board name to west build. See Porting to Other MCUs.

Flash

UF2 (drag and drop)

# Build produces gblink.uf2
# Hold BOOTSEL, connect USB, drag .uf2 to RPI-RP2 drive

Web flash

Use launcher.gblink.io to flash the built UF2 over WebUSB.

Configuration

Key files:

FilePurpose
prj.confZephyr Kconfig options
KconfigApplication-specific config
west.ymlWest manifest and dependencies
CMakeLists.txtBuild targets and sources

Host tests

Host-side tests live in tests/host/:

# Run host tests (see tests/host/ for specifics)

Linux permissions

For WebUSB development on Linux:

./scripts/setup-permissions.sh

CI

GitHub Actions workflows in .github/workflows/ handle automated builds and releases.

Releases

Pre-built gblink.uf2 files are available on the releases page.