The Kernel SDK allows you to programmatically subscribe to real-time data and assists in sending task events. For manually sending task events in your own language of choice, see Kernel Tasks SDK.
Currently, only Python is supported with more languages on the roadmap.
Features
Subscribe to real-time data
- 3 fNIRS moments across both wavelengths and all channels — individually or all six streams at once, time-aligned
- Noise floor removed, bad channels removed
- EEG voltage and impedance across all channels
- Task events received through the Tasks SDK
- Coupling signal indicator
Send task events
- Experiment, block, and trial structure with automatic counters and start/end pairs
- Inter-trial intervals, rest, cue, stimulus, reaction time, and photodiode sync
Run "happy path" commands
- Initialize, tune, and toggle lasers
- Guided end-to-end workflow, online or fully offline with no data leaving the machine
Query the device
- Get currently available modules
- Get EEG channel names and layout, and Flow source/detector geometry in 2-D and 3-D
Track connection and device state
- USB and system state, as properties or subscriptions
- Auto-reconnect and typed errors
Control a syncbox
- 8 channels of digital I/O, analog input, and comparator triggering
- Digital, comparator, and analog telemetry streams
Python Installation
https://pypi.org/project/kernel_sdk/
Supported Python versions:
- 3.11+
Supported Operating Systems:
- Linux (x86_64 and arm64)
- macOS 12+ (x86_64)
- macOS 13+ (arm64)
- Windows (x86_64)
pip install kernel_sdkDocumentation
- SDK — SdkClient reference: subscriptions, device control, probe geometry, and the online/offline recording workflows.
- Task — TaskClient reference: emitting experiment, block, trial, and stimulus events from your task code.
- Syncbox — Syncbox reference: digital I/O, analog inputs, comparators, and the syncbox telemetry streams.