Skip to content

Quickstart ​

One command, no toolchain ​

Install the CLI and create an API key at siliconrig.dev/keys:

bash
curl -fsSL https://siliconrig.dev/install.sh | sh
export SRIG_API_KEY=key_...

Grab a prebuilt demo image and run it on a real board:

bash
curl -LO https://github.com/raws-labs/srig-examples/releases/latest/download/demo-shell-esp32-s3.bin
srig run demo-shell-esp32-s3.bin --board esp32-s3 --expect "0 failed"

srig run reserves a board, flashes it, watches the serial output for the pattern, ends the session, and exits 0 on a match. That exit code is the whole CI integration: nothing else is needed to gate a pipeline on real hardware.

Swap in stm32-h753, stm32-f446 or rp2350 with the matching image from the same release.

Your own firmware ​

The same command, pointed at your build. Assert on whatever your firmware prints:

bash
srig run build/app.bin --board stm32-h753 --expect "All tests passed"

Firmware can set the exit code itself by printing ##srig-exit:N##, which wins over --expect. See the CLI reference for --fail, --timeout and --retries.

STM32 boards also take an .elf or an Intel .hex directly; the conversion happens server side. The RP2350 takes a .uf2.

In the browser ​

  1. Sign up at siliconrig.dev and start a session on an available board
  2. Type help in the console. Boards run a demo shell when nothing else is loaded, so one is already answering
  3. Flash your firmware with the flash button, and watch the progress stream
  4. Use the terminal exactly as if the board were on your desk

In pytest ​

bash
pip install siliconrig pytest
python
from siliconrig import Board

def test_boots_and_answers():
    with Board("esp32-s3", firmware="build/app.bin") as b:
        b.expect("Ready", timeout=30)
        b.send("status\n")
        assert "OK" in b.read_until("OK", timeout=5)

A worked suite that runs the same assertions on all four board types lives in srig-examples.

Sessions end on their own ​

A session with nothing attached to its serial console ends after 60 seconds and releases the board. Flashing and power cycling restart that countdown, and srig run holds the console open for you, so this only matters when you drive the API by hand.

Next steps ​