ticktrace Studio
A Go sibling that wraps the SDK with a TOML catalog and two front-ends — a CLI and a Gio desktop GUI. It builds the same images the Makefile does (byte-identical, golden-tested) but adds feature pickers, in-app picotool flashing, board detection, and example browsing.
Filter and dropdown over examples/*.S. Preview the source in-app. Build → Flash with one click. Defaults to SRAM layout for fast iteration.
Name + source-path input + per-driver feature checkboxes. Defaults to flash layout for persistence. Save and reload the entire UI state to a .rpasm.toml.
Picotool path/version, live BOOTSEL board badge, “Install picotool” (clone+cmake+make to ~/.local/bin), and “Reset to BOOTSEL” (picotool reboot -f -u).
Three tabs: Output (raw build log), Problems (parsed file:line errors clickable to source), and Memory (FLASH+SRAM region usage with per-section breakdown from arm-none-eabi-size -A).
# From the repository root
cd studio
go build -o build/rpasm ./cmd/rpasm
go build -o build/rpasm-studio ./cmd/rpasm-studio
# Optional: install picotool from inside the GUI,
# or fetch it from raspberrypi/picotool yourself.```
# Validate a project file: resolve modules + sources, don't build
rpasm validate project.toml
# Build .elf / .bin / .uf2 + a memory-map report
rpasm build project.toml
# Flash: picotool load first, drive-copy fallback
rpasm flash project.toml
# Check the toolchain
rpasm doctor```
name = "my_demo"
layout = "flash" # or "sram"
sources = ["app.S"]
[features]
gpio = true
uart = true
timer = true
scheduler = false
sha256 = false```
// architecture
Five layers, one binary.
Studio is intentionally a thin shell over the same toolchain the Makefile drives: the build engine, the example catalog, the UF2 packer, and the flash helpers all live in studio/internal/.... The CLI and GUI are peer front-ends that talk to those packages. See the full build guide ↗ for the layer-by-layer writeup, or appendix E of the book for the user-facing tour.