ticktrace
// studio

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.

▸ Examples mode

Filter and dropdown over examples/*.S. Preview the source in-app. Build → Flash with one click. Defaults to SRAM layout for fast iteration.

▸ Custom project mode

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.

▸ Tools row

Picotool path/version, live BOOTSEL board badge, “Install picotool” (clone+cmake+make to ~/.local/bin), and “Reset to BOOTSEL” (picotool reboot -f -u).

▸ Output pane

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).

installbash
# 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.```
rpasm clibash
# 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```
project.toml exampletoml
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.