BCI Core-8

class gpype.backend.sources.bci_core8.BCICore8(serial=None, channel_count=None, frame_size=None, buffer_delay_ms=None, output_buffer_level=None, **kwargs)[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.

Parameters:
  • serial (Optional[str])

  • channel_count (Optional[int])

  • frame_size (Optional[int])

  • buffer_delay_ms (Optional[int])

  • output_buffer_level (Optional[bool])

PORT_BUF_LEVEL = 'buffer_level'
SCANNING_TIMEOUT_S = 10
SAMPLING_RATE = 250
MAX_NUM_CHANNELS = 8
DEFAULT_BUFFER_DELAY_MS = 40
TARGET_FILL_RATIO = 0.5
FILL_RATIO_ALPHA = 0.9995
FILL_RATIO_CORRECTION_INTERVAL_S = 1.0
NUM_UNDERRUNS_ALLOWED = 10
DEVICE_DELAY_MS = 18
class Configuration(sampling_rate, **kwargs)[source]

Bases: Configuration

Configuration class for BCI Core-8 specific parameters.

Parameters:

sampling_rate (float)

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.