Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Hardware

What RS-Key runs on, and the build knobs you need for a board other than the reference one. The full knob reference is in build.md; this page is the short version.

Supported boards

Any RP2350 board with a USB connector should work. Development and on-device testing happen on the Waveshare RP2350-One, where the WS2812 status LED on GPIO16 works out of the box. Boards without an addressable LED run fine — the indicator is optional and the firmware just runs dark.

The RP2350’s dual Cortex-M33, 520 KB SRAM, hardware TRNG, OTP fuses, and glitch detectors do the work. There is no secure element and no debugger requirement: the firmware flashes over USB BOOTSEL, so a bare board and a USB cable are enough.

Defaults and the knobs to change them

The default build targets a 4 MB flash chip with the LED on GPIO16 and assumes a standard 12 MHz crystal. For a different board, two compile-time knobs usually cover it:

KnobDefaultWhen to change it
FLASH_SIZE4MA board with a different QSPI flash chip (e.g. 8M). build.rs regenerates memory.x from it. Must be ≥ ~2 MB and ≤ 16 MB.
LED_PIN16A board that uses GPIO16 for something else, or wires its addressable LED elsewhere (RP2350A: GPIO 0..=29).
# example: an 8 MB board with its LED on GPIO25
env FLASH_SIZE=8M LED_PIN=25 cargo build --release -p firmware

So most RP2350A boards work with at most a one-line change. Everything else (USB descriptors, applets, flash layout) is board-independent.

Enclosures

A bare board works fine, but a printed case makes it pocketable. Two community designs fit the boards above:

Both are licensed CC BY-SA 4.0: print, sell, and remix them freely, as long as you credit the authors and keep any derivative under the same license. They are third-party designs, linked for convenience — not part of this project.

What the hardware does not give you

The OTP fuses and secure boot (production.md) are real hardening, but the RP2350 is a general-purpose microcontroller, not a certified secure element. Physical attacks — decapping, microprobing, fault injection beyond the on-chip glitch detectors, power/EM side channels — are out of scope. See the threat model and limitations.