Skip to the content
PCBKitNew board
2 layers54.5 × 31.2 mmHzbugger, the printed circuit board in 3D

Hzbugger, a Black Magic Probe compatible SWD/debugger tool

Size
54.5 × 31.2 mm
Copper layers
2
Thickness
1.6 mm
Parts
62
Nets
66
Pads
192
Tracks, vias
511, 222
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
1 Jan 2026
Updated
20 Sep 2026

Overview

Hzbugger is an open-source printed circuit board by llatva, from the llatva/hzbugger repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 2-layer board of 54.5 × 31.2 mm with 62 parts on 66 nets, routed with 511 tracks and 222 vias.

It is built around the STM32F103C8T6, AMS1117-3.3 and SRV05-4, with the SS14 among its other parts. Its parts include 23 resistors, 15 capacitors, 8 diodes, 4 ICs and 3 connectors. It belongs with the interfaces and adapters and sensors and measurement boards and the STM32 boards of this library.

Main components

4

README

README.md

hzbugger

Hzbugger is an STM32F103C8T6-based Black Magic Probe compatible debugger by Lasse OH3HZB.

Bottom side silkscreen created using AI tools (intended for black PCB as in pictures below).

Basic functionality works out-of-box with BMP bluepill image. Extra LEDs and AUX header requires fw customization. See BlackMagic Probe adaptation guide for firmware-porting and usage details.

Schematic

hzbugger-revA-schematic.pdf

Getting started: Using Hzbugger to flash firmware

Connect the probe

The device should enumerate as /dev/ttyACM0 and /dev/ttyACM1 (on Linux).

Build the firmware

Build the application so that the output includes an ELF file containing debug information. For example:

text
build/my_application.elf

The ELF file is used both for programming the target and for debugging. Start GDB from the shell:

text
arm-none-eabi-gdb build/my_application.elf

Flash the firmware

Then run the following commands inside GDB:

text
target extended-remote /dev/ttyACM1
monitor erase_mass
load
monitor reset

Getting started: Using Hzbugger as debugger with Visual Studio Code (vscode)

Required software

  • Visual Studio Code
  • ARM GNU Toolchain
  • arm-none-eabi-gdb
  • The Cortex-Debug VS Code extension

The firmware should be built with debug information enabled, for example:

text
-g

For development builds, it is also useful to disable compiler optimization:

text
-O0

This makes source-level debugging easier.

Create the VS Code configuration

Create the following file in your project:

text
.vscode/launch.json

Add debug configuration:

text
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug with Black Magic Probe",
            "type": "cortex-debug",
            "request": "launch",
            "servertype": "bmp",
            "executable": "${workspaceFolder}/build/my_application.elf",
            "device": "YOUR_MCU",
            "cwd": "${workspaceFolder}",
            "runToEntryPoint": "main"
        }
    ]
}

Replace YOUR_MCU with the name of your target MCU.

Also update the executable path if your ELF file is located somewhere else.

Start debugging

Connect Hzbugger and start the debugger in VS Code using F5 button. VS Code will use GDB to connect to the Hzbugger and start a debug session. You can then use the normal VS Code debugging features:

  • Set breakpoints
  • Step over — F10
  • Step into — F11
  • Step out — Shift+F11
  • Continue — F5
  • Inspect variables
  • Inspect the call stack
  • Use the Watch window
  • Inspect registers and memory

Useful Commands

  • Check the ARM GDB installation: arm-none-eabi-gdb --version
  • Find the Hzbugger device: ls /dev/ttyACM
  • Start GDB manually: arm-none-eabi-gdb build/my_application.elf
  • Connect to the probe: target extended-remote /dev/ttyACM1
  • Erase flash: monitor erase_mass
  • Flash the firmware: load
  • Reset the target: monitor reset

(Hzbugger acts as a GDB server itself so you do not need to start a separate (e.g. OpenOCD) GDB server)

References

LICENSE

CERN-OHL-S (strongly reciprocal), see LICENSE.txt for details.

Parts

62
QtyValueFootprintReferences
10100nCapacitor_SMD:C_0603_1608MetricC2, C3, C5, C7, C9, C10, C14, C15, C16, C17
1022RResistor_SMD:R_0402_1005MetricR1, R2, R9, R10, R14, R15, R16, R17, R22, R23
61k5Resistor_SMD:R_0402_1005MetricR3, R13, R18, R19, R20, R21
310kResistor_SMD:R_0402_1005MetricR7, R8, R12
3LED1LED_SMD:LED_0603_1608MetricD3, D5, D7
210uCapacitor_SMD:C_0805_2012MetricC4, C6
222RResistor_SMD:R_0603_1608MetricR4, R5
222pCapacitor_SMD:C_0603_1608MetricC11, C12
2MountingHoleMountingHole:MountingHole_2.1mmH1, H3
1100uCapacitor_Tantalum_SMD:CP_EIA-3528-21_Kemet-B_Pad1.50x2.35mm_HandSolderC8
11AFuse:Fuse_1206_3216Metric_Pad1.42x1.75mm_HandSolderF1
11k5Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR6
11k5Resistor_SMD:R_0402_1005Metric_Pad0.72x0.64mm_HandSolderR11
18MCrystal:Crystal_SMD_5032-2Pin_5.0x3.2mmY1
1ACT_LEDLED_SMD:LED_0603_1608MetricD8
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U3
1BOOT0_SWhzbugger:SW-SMD_4P-L5.1-W5.1-P3.70-LS6.5-TL_H1.5SW2
1ERR_LEDLED_SMD:LED_0603_1608MetricD6
1GPIOConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ6
1HX AM 90Dhzbugger:USB-A-TH_HANXIA_HXAM90DU4
1IDChzbugger:SMD-pcbend-IDC-Header_2x05_P2.54mmJ2
1LED2LED_SMD:LED_0603_1608MetricD4
1LOGOLOGOG***
1PWR_LEDLED_SMD:LED_0805_2012MetricD1
1RESET_SWhzbugger:SW-SMD_4P-L5.1-W5.1-P3.70-LS6.5-TL_H1.5SW1
1SELF_SWDConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1
1SRV05-4Package_TO_SOT_SMD:SOT-23-6U2
1SS14Diode_SMD:D_SMAD2
1STM32F103C8T6Package_QFP:LQFP-48_7x7mm_P0.5mmU1
1TPA14TestPoint:TestPoint_Pad_D1.0mmTP1
1TPG1TestPoint:TestPoint_Pad_D1.0mmTP2

Questions

How big is the Hzbugger PCB?

It measures 54.5 × 31.2 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Hzbugger use?

62 parts, built around the STM32F103C8T6, AMS1117-3.3, SRV05-4 and SS14. 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 Hzbugger KiCad files?

From the llatva/hzbugger repository on GitHub, at the commit this page was made from: the board is hzbugger.kicad_pcb and its schematic hzbugger.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Hzbugger design in my own project?

Its repository publishes it under the CERN-OHL-S-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 4 layers102 × 49 mmCURSO PCB DRONE, the printed circuit board in 3D

    CURSO PCB DRONE

    ArduProject/PCB_DRONE_C8

    En este repositorio encontrareis los archivos de fabricación y las listas de montaje del PCB con STM32F103C8 que hemos visto en el curso.

    153 parts1MIT
  • 4 layers50 × 50 mmSTMF103C8T6 Dev Board, the printed circuit board in 3D

    STMF103C8T6 Dev Board

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    52 parts915
  • 2 layers71.3 × 25.4 mmUSB DALI, the printed circuit board in 3D

    USB DALI

    even-notodd/USB-DALI

    USB-DALI interface converter

    43 parts4
  • 2 layers154.7 × 113 mmDeskMixer, the printed circuit board in 3D

    DeskMixer

    RaduAndre/DeskMixer

    DeskMixer is a software that allows control of application volumes with real sliders, and action mapping on buttons using arduino like platforms. The project was inspired originally by deej.

    113 parts3
  • 2 layers121.5 × 92.5 mm50W 24-5V Buck OMER 260720V1, the printed circuit board in 3D

    50W 24-5V Buck OMER 260720V1

    yukselturkomer/50w-buck-converter-stm32

    Bu proje, STM32 mikrodenetleyici kullanılarak geliştirilmiş 50W kapasiteli bir Buck (Düşürücü) Konvertör sistemini ve bu sistemin kontrolünü sağlayan Nextion HMI (İnsan-Makine Arayüzü) tasarımını içermektedir.

    89 parts
  • 2 layers250 × 96 mmDRO Final, the printed circuit board in 3D

    DRO Final

    kc099/kicad

    134 parts
  • 4 layers340.8 × 104.6 mmNiphar, the printed circuit board in 3D

    Niphar

    mornepousse/Niphargus

    Niphargus — a slim, indestructible wireless split keyboard. ESP32 + nRF24, wired fallback, and an emergency kit hidden behind the USB port. The successor to the Rouge-Gorge.

    287 parts4MIT
  • 4 layers50 × 50 mmArtnet neopixel, the printed circuit board in 3D

    Artnet neopixel

    kenyoshizoe/artnet-neopixel

    stm32 based Neopixel controller via artnet

    93 parts