Skip to the content
PCBKitNew board
2 layers34.6 × 28.3 mmZero r2 mini, the printed circuit board in 3D

Zero r2 mini

mean00/swindle22

A custom version of the blackMagic probe with rust in it

Size
34.6 × 28.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
16
Nets
28
Pads
70
Tracks, vias
43, 9
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
4 Mar 2022
Updated
25 Oct 2026

Overview

Zero r2 mini is an open-source printed circuit board by mean00, from the mean00/swindle repository on GitHub. It is a 2-layer board of 34.6 × 28.3 mm with 16 parts on 28 nets, routed with 43 tracks and 9 vias.

It is built around the RP2040-ZERO and DMG2302U. Its parts include 3 resistors, 2 connectors, 1 capacitor, 1 IC and 1 transistor. It belongs with the sensors and measurement and interfaces and adapters boards and the RP2040 boards of this library.

Main components

2

README

README.md
Swindle Debug Probe

🔧 SWINDLE — ARM / RISC-V Debug Probe

Turn any cheap dev board into a full-featured debug probe.

TL;DR — Got an RP2040 board lying around? You've got a debug probe.
Swindle is a multi-platform debug probe for embedded devices, supporting SWD (ARM Cortex-M) and RVSWD (RISC-V CH32V2xx/CH32V3xx). It's powered by the incredible Black Magic Probe engine with a custom Rust-based GDB interface.

✨ Features

CategoryDetails
🧠 EngineBuilt on top of the proven Black Magic Probe firmware engine
🦀 GDB InterfaceWritten in Rust — modern, safe, and maintainable
🔌 ProtocolsSWD (ARM) + RVSWD (RISC-V) — no JTAG
🎯 BreakpointsInfinite breakpoints in RAM (ARM/RV32) + soft flash breakpoints for targets without HW breakpoints (some WCH chips)
📡 RTOS SupportFreeRTOS awareness and SEGGER RTT out of the box — no configuration needed
💾 DFU UpdateFirmware updates over USB DFU — no programmer required
📺 RTT ChannelDedicated USB Tx only RTT channel (RP2xxx & CH32V3xx)
🌐 NetworkingExperimental networked version based on CH32V307 or RP2040+W5500 (DHCP + port 2000/20001)
🔋 Low CostRP2040-Zero boards are dirt cheap!
🔧 Voltage TranslationOptional custom PCB with voltage level translators

🧩 Supported Hardware

Probe Hosts (runs Swindle)

You need ≥256 KB flash and ≥48 KB RAM.

PlatformStatusNotes
RP2040 (e.g. RP2040-Zero)✅ StableThe most affordable option
RP2350 (e.g. RP2350-Zero)🧪 Experimental
GD32F303CCT6 (48/64-pin)✅ Stable
CH32V30xxx✅ StableRISC-V based host
Custom PCB🧩 OptionalWith voltage translators, mosfet on reset, ws2812

Debug Targets

ArchitectureProtocolDevice Families
ARM Cortex-MSWDRP2040, RP2350, STM32, GD32, and many ARM Cortex-M with SWD
RISC-VRVSWDWCH CH32V2xx, CH32V3xx

🚀 Getting Started

1. Flash the firmware

Pick the pre-built firmware for your board or build from source.

Flashing via DFU (RP2040): Hold BOOTSEL, plug in USB, then copy the .uf2 file.

2. Connect to your target

text
Probe SWDIO  →  Target SWDIO
Probe SWCLK  →  Target SWCLK
Probe GND    →  Target GND
Probe NRST   →  Target NRST   (optional, recommended)
Probe TX     →  Target Uart TX    (optional)

'see wiki for exact pinout'

3. Start debugging

bash
# Connect with GDB
gdb-multiarch -ex "target extended-remote /dev/ttyACM0" -ex "mon swdp_scan" -ex "attach 1" your_firmware.elf

Or use any GDB frontend (VS Code, CLion, etc.) — just point it to the serial port.


🔨 Building

This project uses CMake with presets for each target platform.

There is a devpod/docker build environment included.

Prerequisites

  • CMake ≥ 3.21
  • ARM GCC toolchain (arm-none-eabi-gcc) or LLVM/Clang
  • RISC-V toolchain (for CH32V targets)
  • Rust toolchain (for the GDB interface)

Configure & Build

bash
# Configure for your target
cmake --preset rp2040          # RP2040-Zero
cmake --preset rp2350          # RP2350-Zero
cmake --preset gd32f303_48     # GD32F303 48-pin
cmake --preset gd32f303_64     # GD32F303 64-pin
cmake --preset ch32v307        # CH32V307 (networked)

# Build
cmake --build --preset rp2040

Note: Some presets have variants with inverted NRST (*_inv), with WS2812 RGB led. See CMakePresets.json for the full list.

PresetDescription
rp2040RP2040-Zero (USB)
rp2040_invRP2040-Zero with inverted NRST
rp2350RP2350-Zero (USB, experimental)
gd32f303_48GD32F303 48-pin (USB)
gd32f303_64GD32F303 64-pin (USB)
gd32f303_48_inv_ws2812GD32F303 48-pin (USB) +WS2812 +inv RST
gd32f303_64_inv_ws2812GD32F303 64-pin (USB) +WS2812 +inv RST
ch32v307CH32V30x (USB)
ch32v307_inv_ws2812CH32V30x (USB) +ws2812 + inv RST
ch32v307_netCH32V307 (Ethernet, experimental)
rp2040_zero_w5500rp2040+w5500 (Ethernet, experimental)

📘 Documentation

Full documentation is available on the Swindle Wiki — covering:

  • 🔧 Hardware setup and wiring guides
  • 🖥️ GDB integration and troubleshooting
  • ⚙️ Advanced configuration
  • 🧪 RTOS-aware debugging
  • 🌐 Networked probe setup

🏗️ Project Architecture

text
swindle/                    # Debug probe wrapper
├── rs/                     # Rust GDB interface (rs_swindle / rsbmp)
│   ├── rs_swindle/         # Core GDB logic
│   └── rs_swindle_wrapper/ # C → Rust bridge
└── swindle/                # C++ Black Magic Probe engine + wrapper

esprit/                     # C++ / Rust SDK framework (HAL + RTOS + MCU drivers)

assets/                     # Images and media
cmake/                      # Project-level CMake utilities

🖼️ Gallery

Small probe, big targetRP2040 + CH32V
RP2040-Zero debugging RP2040RP2040 debugging CH32V
:------------------------::--------------:


🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.


📄 License

This project is built on the Black Magic Probe engine, licensed under GPL-3.0.

Parts

16
QtyValueFootprintReferences
21kResistor_SMD:R_0603_1608MetricR1, R3
1100nResistor_SMD:R_0603_1608MetricC10
1330Resistor_SMD:R_0603_1608MetricR2
1DMG2302UPackage_TO_SOT_SMD:SOT-23Q1
1Debug portConnector_PinHeader_1.27mm:PinHeader_1x05_P1.27mm_VerticalJ3
1Debug portConnector_JST:JST_XH_B5B-XH-A_1x05_P2.50mm_VerticalJ5
1G***kibuzzard-67D71CE3kibuzzard-67D71CE3
1G***kibuzzard-67D71D53kibuzzard-67D71D53
1G***kibuzzard-67D71D3Akibuzzard-67D71D3A
1G***kibuzzard-67D71D2Akibuzzard-67D71D2A
1G***kibuzzard-6AAE3AD3kibuzzard-6AAE3AD3
1RP2040-ZeroRP2040 Carrier:RP2040 ZeroU1

The 13 most common of 16 parts.

Questions

How big is the Zero r2 mini PCB?

It measures 34.6 × 28.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Zero r2 mini use?

16 parts, built around the RP2040-ZERO and DMG2302U. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Zero r2 mini KiCad files?

From the mean00/swindle repository on GitHub, at the commit this page was made from: the board is kicad/rp2040_zero/rev2_mini/zero_r2_mini.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Zero r2 mini design in my own project?

Its repository states no licence, so its author keeps all rights: ask mean00 before reusing the design.

More from mean00/swindle

12
  • 2 layers49.8 × 33.3 mmSwindle ch32 revJ, the printed circuit board in 3D

    Swindle ch32 revJ

    mean00/swindle

    A custom version of the blackMagic probe with rust in it

    65 parts22
  • 2 layers49.2 × 31.7 mmGd32f303 revG, the printed circuit board in 3D

    Gd32f303 revG

    mean00/swindle

    A custom version of the blackMagic probe with rust in it

    61 parts22
  • 2 layers38.3 × 34 mmSwindle ch32 revJ mini, the printed circuit board in 3D

    Swindle ch32 revJ mini

    mean00/swindle

    A custom version of the blackMagic probe with rust in it

    57 parts22
  • 2 layers39.3 × 30.1 mmGd32f303 revG mini, the printed circuit board in 3D

    Gd32f303 revG mini

    mean00/swindle

    A custom version of the blackMagic probe with rust in it

    56 parts22
  • 2 layers39.6 × 35.3 mmSwindle ch32 revJshort, the printed circuit board in 3D

    Swindle ch32 revJshort

    mean00/swindle

    A custom version of the blackMagic probe with rust in it

    54 parts22
  • 2 layers51 × 33.3 mmLnBMP ch32 revF 5pins, the printed circuit board in 3D

    LnBMP ch32 revF 5pins

    mean00/swindle

    A custom version of the blackMagic probe with rust in it

    53 parts22
  • 2 layers37.3 × 63.9 mmZero r2 mini w5500, the printed circuit board in 3D

    Zero r2 mini w5500

    mean00/swindle

    A custom version of the blackMagic probe with rust in it

    53 parts22
  • 2 layers51 × 33.3 mmLnBMP ch32revE, the printed circuit board in 3D

    LnBMP ch32revE

    mean00/swindle

    A custom version of the blackMagic probe with rust in it

    52 parts22
  • 2 layers52.6 × 33 mmLnBMP stm32, the printed circuit board in 3D

    LnBMP stm32

    mean00/swindle

    A custom version of the blackMagic probe with rust in it

    50 parts22
  • 2 layers51 × 33.3 mmLnBMP ch32revC, the printed circuit board in 3D

    LnBMP ch32revC

    mean00/swindle

    A custom version of the blackMagic probe with rust in it

    42 parts22
  • 2 layers52.6 × 33 mmLnBMP stm32, the printed circuit board in 3D

    LnBMP stm32

    mean00/swindle

    A custom version of the blackMagic probe with rust in it

    33 parts22
  • 2 layers41.8 × 30.2 mmZero r1, the printed circuit board in 3D

    Zero r1

    mean00/swindle

    A custom version of the blackMagic probe with rust in it

    31 parts22

Similar boards

  • 2 layers69 × 72 mmMMv3, the printed circuit board in 3D

    MMv3

    MrCroesus/MMv3

    MMv3 is the 3rd generation robot platform used to teach the IEEE Micromouse DeCal at UC Berkeley. It was designed with usability, manufacturability, size, and cost in mind.

    47 parts16Apache-2.0
  • 4 layers40 × 19 mmRom2k40, the printed circuit board in 3D

    Rom2k40

    mengstr/Rom2k40

    EPROM emulator based on RP2040

    28 parts12
  • 4 layers45.7 × 90.3 mmIo v2-Board, the printed circuit board in 3D

    Io v2-Board

    Maeswoon/UNHSEDS

    great people building dream rockets

    81 parts11
  • 2 layers101.6 × 31.8 mmPico 12vrgb controller, the printed circuit board in 3D

    Pico 12vrgb controller

    bluekeyes/pico-12vrgb-hid-controller

    4-pin RGB controller using the Pi Pico and USB HID

    20 parts9MIT
  • 2 layers54.1 × 48.6 mmE Fidget V3, the printed circuit board in 3D

    E Fidget V3

    miameows/E-Fidget

    Hi there! There's a lot of moving parts with this project right now, so why don't you check out my latest blog post for more info?

    29 parts6MIT
  • 2 layers75.1 × 100 mmZamkonator, the printed circuit board in 3D

    Zamkonator

    alufers/Zamkonator

    RFID access-control board with PoE and Wiegand

    182 parts5
  • 2 layers240 × 100 mmKha bgt extend, the printed circuit board in 3D

    Kha bgt extend

    kiu/kha

    Overengineered Modular RS-485 Multi-Master 19" Subrack Home Automation / Control

    69 parts5
  • 2 layers22 × 44.1 mmSao candle, the printed circuit board in 3D

    Sao candle

    exclamationMarek/skeuomorphicer-candle-sao

    A more skeuomorphic, electronic candle, that you turn on using a flame and turn off by blowing on it. A SAO version of my standalone skeuomorphicer candle.

    12 parts4