CrashLab is Symbol Crash’s custom Raspberry Pi OS Desktop (64-bit) image for our monthly hardware-hacking workshop—and for anyone who wants the same bench stack without spending a weekend installing OpenOCD, SDR tools, ChipWhisperer, flash programmers, and a pile of udev rules.
Boot it, plug in a probe, and open the CrashLab Guide. Decision trees walk you from “unknown board on the bench” through serial, JTAG/SWD, flash dumps, RF, side-channel, and more, with buttons that launch the right tools on the Pi.
Download: huggingface.co/buckets/awgh/crashlab
What you get
CrashLab is built on official Raspberry Pi OS Desktop (arm64) with workshop packages and docs preinstalled:
- Debug: OpenOCD, GDB (
gdb-multiarch), pyOCD, probe-rs, ST-Link tools - Serial / logic: picocom, PulseView / sigrok, Saleae Logic 2
- Flash / programmers: flashrom, minipro (TL866 / XGecu), esptool, stm32flash, PlatformIO (preseeded platforms)
- SDR / RF: GNU Radio, Gqrx, SoapySDR, RTL-SDR, HackRF, USRP/UHD helpers, rtl_433, inspectrum
- Side-channel: ChipWhisperer Lite + Nano (Python/Jupyter env ready)
- FPGA lite: yosys, nextpnr-ice40, openFPGALoader (iCEBreaker-style boards)
- RE helpers: binwalk, rizin, squashfs / JFFS2 / UBI unpack tools
- Mesh / bus: Meshtastic CLI, CAN (can-utils), MQTT / net helpers
- On-image docs: interactive CrashLab Guide, labs under
~/CrashLab/labs/, offline ISA manuals (ARM, x86, RISC-V, ESP32, AVR, OpenOCD, STM32)
USB udev rules cover the usual workshop kit (FTDI, ST-Link, CMSIS-DAP, J-Link, Saleae, TL866, NewAE, SDR sticks, Pico, Espressif, CANable, and more).
crashlab://.Supported Raspberry Pi hardware
CrashLab is an arm64 image. Use a 64-bit-capable board with a microSD (8 GB+; 16–32 GB is comfortable for workshop use):
| Board | Notes |
|---|---|
| Raspberry Pi 5 | Preferred for desktop + Saleae / CW |
| Raspberry Pi 4 | Solid all-around workshop host |
| Raspberry Pi 3 / 3+ | Works; keep expectations modest for heavy GUI tools |
| Raspberry Pi Zero 2 W | Compact host; prefer lighter workflows |
| Compute Module (arm64) | Supported where you already run Pi OS Desktop |
Default login:
| Hostname | crashlab |
| User | crashlab |
| Password | crashlab |
Change the password if the Pi leaves the workshop bench.
SSH is enabled; desktop autologin is on for LightDM/labwc workshop convenience.
Workshop targets and gear
Practice targets (on-image labs)
| Target | What you practice |
|---|---|
| BluePill (STM32F103) | SWD with Adafruit FT232H, UART beacon, pin-timing / physical-security style labs, optional probe firmware, RDP Level 1 dump path |
| Diebold AccuVote-TSx (PXA255) | FT232H JTAG stack: wiring, dump, two-pass reflash, eBoot GDB, CompactFlash side quest |
Common adapters and instruments (udev + helpers ready)
| Category | Examples |
|---|---|
| Debug adapters | ST-Link V2/V3, Adafruit FT232H (MPSSE JTAG/SWD), CMSIS-DAP, J-Link |
| Logic analyzers | Saleae Logic, PulseView / sigrok |
| Chip programmers | TL866II+, XGecu T48 / T56 (minipro) |
| SDR | RTL-SDR, HackRF One, USRP B200/B210-class |
| Side-channel | ChipWhisperer Lite and Nano |
| Pin discovery | JTAGulator |
| Wi-Fi / mesh / CAN | Alfa USB Wi-Fi (monitor mode), Meshtastic USB nodes, CANable / candleLight |
| FPGA | iCE40 boards (e.g. iCEBreaker) |
| Board reading | USB UVC microscopes (crashlab-microscope) |
On the image, run crashlab-matrix or open What is plugged in? in the Guide for live USB status and suggested next steps.
Download CrashLab
Browse the public Hugging Face Storage Bucket:
https://huggingface.co/buckets/awgh/crashlab
Grab these two files (the bucket overwrites them on each publish so “latest” is always the same names):
CrashLab-arm64.img.xz— compressed disk imageCrashLab-arm64.sha256— checksums
Option A — browser
Use the Hub UI, or the direct resolve URL:
https://huggingface.co/buckets/awgh/crashlab/resolve/CrashLab-arm64.img.xz
Also download CrashLab-arm64.sha256 from the same bucket page.
Option B — Hugging Face CLI
hf buckets cp hf://buckets/awgh/crashlab/CrashLab-arm64.img.xz ./CrashLab-arm64.img.xz
hf buckets cp hf://buckets/awgh/crashlab/CrashLab-arm64.sha256 ./CrashLab-arm64.sha256
sha256sum -c CrashLab-arm64.sha256
(On macOS you can use shasum -a 256 -c CrashLab-arm64.sha256 if sha256sum is unavailable.)
Write the image to a microSD card
Easiest: Raspberry Pi Imager
- Install Raspberry Pi Imager.
- Choose Use custom / custom image and select
CrashLab-arm64.img.xz(Imager can handle.xz). - Select your microSD (double-check the drive — this erases the card).
- Write, eject, insert into the Pi, power on.
You do not need to apply Imager’s OS customization for the workshop defaults; the image already has user, hostname, and SSH configured. Change the password after first boot if needed.
Command line (dd)
Identify the SD device carefully (lsblk on Linux, diskutil list on macOS). Then:
# Linux example — replace /dev/sdX with your card (not a partition like sdX1)
xzcat CrashLab-arm64.img.xz | sudo dd of=/dev/sdX bs=4M status=progress conv=fsync
On macOS, unmount the volume first (diskutil unmountDisk /dev/diskN) and write to the raw device (/dev/rdiskN) if you prefer dd over Imager.
First boot and getting started
- Connect HDMI, keyboard/mouse (or SSH once you know the LAN IP).
- Log in as
crashlab/crashlab(or wait for desktop autologin). - From the Desktop or application menu, open CrashLab Guide, or run:
crashlab-guide - Follow the basic flow on a new board: board reading → bench kit (GND / VTREF) → logic capture → serial console. Then branch into debug, flash, RF, ChipWhisperer, or a named target (BluePill / AccuVote).
- Optional helpers:
| Command | Purpose |
|---|---|
crashlab-matrix | Hardware matrix + live USB status |
crashlab-tilix-workshop | Four-pane serial / OpenOCD / GDB / docs |
crashlab-sdr | SDR stack shortcuts |
crashlab-programmers | TL866 / minipro helper |
Docs and labs live under ~/CrashLab/. Offline reference PDFs are in ~/CrashLab/references/.
Links
- Download bucket: huggingface.co/buckets/awgh/crashlab
- Symbol Crash: symbolcrash.com
Bring a Pi, a BluePill or AccuVote practice unit, and a FT232H or ST-Link—and you are on the bench in minutes instead of an evening of package hunting. See you at the next workshop.
