PLASMA Playbook¶
PLASMA — Platform for LSL-based Acquisition of Sensor Metrics and Analytics — runs a multi-device study session from one browser window: initialise every sensor, stream every channel over Lab Streaming Layer, and record the whole room to a single XDF file.
This site is the operator's handbook: how to install PLASMA, configure it,
pair MSense wristbands, run a session, read the memo panel, and recover when
something goes wrong. It does not cover the MSense BLE wire protocol — see the
files under plasma/devices/msense/docs/ in the repository for that.
-
Install & first launch From source or a prebuilt binary; what PLASMA writes to disk.
-
Configure PLASMA The device catalog, network addresses, demo mode, restart / shut down.
-
Pair MSense wristbands Scan, add, enable, and the IMU-stream column.
-
Run a session IDs, initialise, start, journaler markers, stop — and where the data lands.
-
Signal-quality checks The contact check before you trust a recording.
-
MSense tools (YAMS) Orientation, flash erase, download, extract, clock-sync, viewer.
-
The memo engine How the panel colour-codes every device and stream — and what the colours mean.
-
Abnormal handling A symptom → cause → action runbook for the faults you'll actually hit.
The arc of a session¶
-
1 · Configure In Configuration, enable the devices this study uses and fill in their addresses. Click Apply, then Refresh list on the dashboard.
-
2 · Initialise In Session Dashboard, enter the subject and session IDs, select the devices for this run, and click Initialize. Each device connects and announces its LSL streams.
-
3 · Record Press Start. The built-in recorder writes every session stream to one XDF file; the memo panel shows, live, that each device is producing data. Press Stop when the session ends.
-
4 · Review Check the memo for any device that ended amber or red, then open the XDF in your analysis tool. MSense onboard data is pulled and extracted to CSV from the YAMS tab.
Devices¶
Each sensor ships as a plugin and streams over LSL, so every channel lands in the recording time-stamped against the same session clock. Enable only the ones a study needs.
| Device | Modality | Extra |
|---|---|---|
| MSense Wristbands | BLE motion (ENMO / IMU) + ECG/PPG signal quality | msense — multi-unit, own tab |
| qb2 LiDAR | Depth / spatial sensing | qb2 |
| Pupil Labs IMU | Head motion (Realtime API) | pupil |
| Pupil Labs Eye Events | Blinks & fixations | pupil |
| ShimmerGSR | Galvanic skin response | shimmer |
| OBS Recorder | Video capture (via obs-websocket) | obs |
| Bitalino | Biosignals (ECG, EEG, EMG, EDA) | opt-in — needs PyBluez |
Adding your own
A sensor is a PlasmaDevice subclass plus one entry in
plasma/plugins.py — core code never imports a concrete device. See
developing a sensor plugin;
plasma/devices/msense/ is the full-featured reference.
Headless operation¶
A running PLASMA also exposes a small typed API and a plasma-ctl CLI for
scripted or unattended rigs — see Headless control & API.