Skip to content

Simulator and scripts

--loopback

--loopback runs the same editor protocol against an in-process simulator. Framing, CRC, and commands match a real device. Transport and device state are simulated.

Use it for:

  • Examples you can paste without a board
  • Continuous integration
  • Multi-step experiments in one process (repl or --script)

Limits:

  • Per-process state. Each s32 --loopback … invocation starts fresh (three demo projects named Project 1–3).
  • Fixture schema. Device types are a short stand-in. Capture live tables with --usb and schema --emit-schema-json.
  • Onboard storage is modeled; raw microSD project read/write may be reported as unavailable depending on firmware.

--script

Every line is command args…. # starts a comment. The run exits non-zero if a line fails. Destructive commands do not prompt.

bash
s32 --loopback --script session.script
s32 --usb --script session.script

On a plugged-in S32, quit the web editor first (USB is exclusive), then run s32 --usb --script. See Connect for confirmations and --yes.

Example session.script:

text
hello
list
macro get 0 0
macro set 4 1 mode=cc msb=74 channel=3
potname set 4 Cutoff

REPL

text
s32 --loopback
s32> hello
s32> list
s32> macro get 0 0
s32> quit

On a TTY with no command, s32 opens a REPL after connecting. s32 repl does the same. USB stays open for the whole session.

Layout JSON

bash
s32 layout --emit-layout-json s32-layout.json

Writes the on-disk .s32p layout this CLI was built against. No board and no simulator session are required.