Real-Time BCI Setup
This page owns hardware and acquisition setup: how EEG gets from an amplifier into embedding or feature chunks that Nimbus can consume. For SDK streaming APIs, see Streaming Inference Configuration, Python Streaming Inference, and Julia Streaming Inference.Real-Time Pipeline
Acquisition Options
Setup Checklist
- Confirm amplifier sampling rate and channel order.
- Synchronize event markers with EEG samples.
- Apply artifact handling and feature extraction in the same way as calibration.
- Emit chunks with stable shape:
(n_features, chunk_size). - Use the same normalization parameters from training.
- Measure latency around preprocessing and SDK inference separately.
- Add rejection thresholds for low-confidence or high-entropy decisions.
LSL Pattern
Use LSL when you need synchronized EEG and marker streams.BrainFlow Pattern
Use BrainFlow when you want one API across supported EEG boards.Latency Budget
Production Guardrails
- Warm up model and preprocessing code before the session starts.
- Use fixed-size buffers to avoid unbounded memory growth.
- Reset streaming sessions between trials.
- Log per-stage latency, confidence, entropy, and rejection decisions.
- Keep calibration preprocessing and online preprocessing identical.
Next Read
Streaming Inference Configuration
Choose chunk sizes and aggregation methods.
Python Streaming Inference
Use
StreamingSession in Python.Julia Streaming Inference
Use
init_streaming, process_chunk, and finalize_trial in Julia.Preprocessing Requirements
Prepare feature-space inputs correctly.