Jump to content

Contributions:CereStim

From BCI2000 Wiki
Revision as of 19:43, 21 July 2021 by Abelsten (talk | contribs)

Versioning

Blackrock CereStim 96

Author

Alexander Belsten (belsten@neurotechcenter.org)

Version History

  • 2021/07/21: Initial private release for internal testing.

Source Code Revisions

  • Initial development: 6337
  • Known to compile under: 6337
  • Broken since: --

Functional Description

This output extension integrates the Blackrock CereStim 96 intracranial stimulator with BCI2000. This integration enables automated stimulation of up to 96 electrodes with 15 different stimulation waveforms.

Integration into BCI2000

Enable the extension in your CMake configuration, enable EXTENSIONS_CERESTIM=On in the Extensions folder of the CMake GUI and then generate the BCI2000 Visual Studio solution in CMake. Next, open the solution with Visual Studio and rebuild the BCI2000FrameworkAppModule, and then rebuild any user application module you want to use the extension with. Once the extension is built into the user application, you can enable it by appending --EnableCereStim=1 to the user application module start executable command in your batch file.

Parameters

The CereStim is configured in the "CereStim" tab. The configurable parameters are:

AppliedVoltage

The CereStim drives current, so the applied voltage fluctuates according to the impedance between the current source (electrode) and drain. This dropdown parameter sets the maximum applied voltage (there will be no notification that this maximum has been met).

AppliedCurrent

This parameter sets the maximum applied current in microamps. Unlike the applied voltage, which fluctuates and therefore may or may not hit the maximum, this parameter serves the purpose of being a safety check for your uploaded stimulation configurations. Thus, to be 100% sure you are not stimulating above a desired current value, you can set this parameter to that maximum. If set to auto, the default will be the maximum current the CereStim can stimulate with.

AppliedPhaseCharge

This parameter sets the maximum applied phase charge, where charge=amplitude*width. Amplitude is the current amplitude in microamps, and width is phase duration in microseconds. If set to auto, this parameter will default to the maximum value.

AppliedFrequency

This parameter sets the maximum frequency that stimulation pulses can have in Hz. If set to auto, this value defaults to the maximum.

StimulationConfigurations

This parameter is where stimulation pulses are defined. You can define up to 15 different stimulations pulses. The pulse shapes are defined according to Fig. 1.For each configuration, if the Cathode first row is 1, then the positive magnitude pulse comes first. If this row is 0, then the negative pulse comes first. The current sink for each pulse is the patient ground, which is the green safety connector on the back of the CereStim. However, suppose you wish to stimulate between two different electrodes within the brain. In that case, you can make two configurations that have the same pulse shape parameters but have reversed Cathode first parameters. Current can still potentially flow to the patient ground, but if the impedance between the two electrodes is significantly less than the impedance between the electrodes and patient ground, then the majority of the current will flow between the two electrodes. Information on how to define these two electrodes can be found in StimulationTriggers parameter. Note that valid frequencies depend on the phase and interphase duration of the pulse.

StimulationTriggers

This parameter defines when electrodes are stimulated, with what configuration they are stimulated with, and what electrodes are stimulated. The Expression row defines when electrodes are stimulated by specifying a BCI2000 expression. When this expression evaluates true, the electrodes will be stimulated with the pulse shape defined in the Configuration ID row. Note that two columns can have the same Expression, which allows for concurrent stimulation between different electrode locations. The Configuration ID defines the applied pulse shape and corresponds to the column number in the StimulationConfiguration parameter. Lastly, the Electrode(s) row specifies which electrodes will be stimulation. It is an embedded list in which you can specify multiple channels (from 1-96).

Note: You can only stimulate up to 15 electrodes concurrently. Concurrent stimulation groups, as defined by their equivalent Expression expression, must also have disjoint electrode lists.

DeviceInfo

This parameter is auto-populated with information about the hardware and firmware versions of the CereStim stimulator that is connected. This information will be viewable during offline analysis by opening the resulting .dat file.

States

CereStimStimulation

This binary state is equal to 1 when stimulation is being applied.

See also