BCI Core-8

class gpype.backend.sources.bci_core8.BCICore8[source]

Bases: AmplifierSource

g.tec BCI Core-8 amplifier source for wireless EEG acquisition.

Interface to g.tec BCI Core-8 wireless EEG amplifier using BLE. Supports 8-channel acquisition at 250 Hz.

PORT_BUF_LEVEL = 'buffer_level'

Optional buffer level monitoring output port name

SCANNING_TIMEOUT_S = 10

Bluetooth scanning timeout in seconds

SAMPLING_RATE = 250

Fixed sampling rate for BCI Core-8 amplifier in Hz

MAX_NUM_CHANNELS = 8

Maximum number of supported EEG channels

DEFAULT_BUFFER_DELAY_MS = 40

Default internal buffer delay in milliseconds

TARGET_FILL_RATIO = 0.5

Target buffer fill ratio for stable operation

FILL_RATIO_ALPHA = 0.9995

Smoothing factor for buffer fill ratio calculation

FILL_RATIO_CORRECTION_INTERVAL_S = 1.0

Correction interval for buffer timing in seconds

NUM_UNDERRUNS_ALLOWED = 10

Maximum allowed consecutive buffer underruns

DEVICE_DELAY_MS = 18

Hardware delay compensation in milliseconds

class Configuration[source]

Bases: Configuration

Configuration class for BCI Core-8 specific parameters.

class Keys[source]

Bases: Keys

Configuration keys for BCI Core-8 settings.

OUTPUT_BUFFER_LEVEL = 'output_buffer_level'
BUFFER_DELAY_MS = 'buffer_delay_ms'
__init__(serial=None, channel_count=None, frame_size=None, buffer_delay_ms=None, output_buffer_level=None, **kwargs)[source]

Initialize BCI Core-8 amplifier source.

Parameters:
  • serial (Optional[str]) – Serial number of target device. Uses first discovered if None.

  • channel_count (Optional[int]) – Number of EEG channels (1-8). Defaults to 8.

  • frame_size (Optional[int]) – Samples per processing frame.

  • buffer_delay_ms (Optional[int]) – Internal buffer delay in milliseconds.

  • output_buffer_level (Optional[bool]) – Enable buffer level monitoring output.

  • **kwargs – Additional arguments for parent AmplifierSource.

start()[source]

Start BCI Core-8 amplifier and begin data acquisition.

Initializes buffers, starts background thread, establishes BLE connection, and begins real-time data streaming.

Raises:
Return type:

None

setup(data, port_context_in)[source]

Setup output port contexts for BCI Core-8 data streams.

Parameters:
  • data (dict[str, ndarray]) – Input data arrays (empty for source nodes).

  • port_context_in (dict[str, dict]) – Input port contexts (empty for source nodes).

Return type:

dict[str, dict]

Returns:

Dictionary of output port contexts with 250 Hz sampling rate.

stop()[source]

Stop BCI Core-8 amplifier and clean up resources.

Stops data acquisition, terminates background thread, and disconnects from amplifier hardware.

step(data)[source]

Retrieve processed data frames from the amplifier.

Returns data frames when decimation step is active. Handles buffer underruns by providing zero-filled frames to maintain continuity.

Parameters:

data (dict[str, ndarray]) – Input data dictionary (unused for source nodes).

Return type:

dict[str, ndarray]

Returns:

Dictionary containing EEG data and optionally buffer level data, or None if not a decimation step.