- 1 Introduction
- 2 CorTec BIC Architecture
- 3 Walkthrough: Experimental Steps
- 4 Parameters:CorTec BIC Implant
- 4.1 Source Parameters
- 4.2 Filtering Parameters
- 4.3 See also
CorTec BIC is an application interface (API) in BCI2000 that facilitates with the CorTec hardware device, which is implanted in animals (primarily, pigs) for research and medical purposes. The API enables programmatic access to BIC implants.
CorTec BIC Architecture
Walkthrough: Experimental Steps
The following steps are the primary steps to perform the necessary experiment for medical and research purposes.
Initial Access and Device Discovery
There are several functions in the header file bciapi.h that provide central access to the application interface which helps in creating an implant factory and obtaining some information and details regarding the connected external units and implant devices (device discovery).
Implant Object Creation
This steps involves creation of implant object. During this step, it is assumed that only one external unit is connected and one implant is connected to this external unit. Then this implant object is used to query the temperature and the humidity within the implant's hermetic capsule.
Obtaining Measurement Data
In this step, an Implant listener object is created and registered to an Implant object. Then the measurement is started and one channel is written to standard output.
Please note that the current implementation writes a value to stdout approximately every millisecond (i.e., with the sampling frequency) will cause performance issues on slow machines. For productive use, the measurement data can be passed to another thread for further processing or written to a binary file, instead of being written to stdout.
In this step, electrical stimulation is performed via an implant by first creating a stimulation command that stimulates with a frequency of ~18.5Hz.
Parameters:CorTec BIC Implant
Following is the Parameter Configuration for BIC Implant application interface in BCI2000.
The total number of digitized and stored channels.
Samples per channel per digitized block. Together with the sampling rate, this parameter determines how often per second data are collected, processed, and feedback is updated. For example, at 500 Hz sampling and a SampleBlockSize of 20, the system (e.g., source signal display, signal processing, and stimulus presentation) will be updated 25 times per second.
The sample rate of the system. All data is either acquired at 250Hz In case you are experiencing problems by higher sampling rates (e.g., data loss, jerky display, etc.), increase the SampleBlockSize so that you are updating the system less frequently (usually, updating the system 20-30 times per second is sufficient for most applications), and increase Visualize->VisualizeSourceDecimation. This parameter will decrease the number of samples per second that are actually drawn in the Source display.
Offset for each channel.
Gain for each channel.
Names of each channel.
Flag to enable/disable stimulation.
Matrix to store parameters defined as follows: StimulatonId, StimulationType (voltage/current),DurationDuration1, amplitude1,DurationDuration2, amplitude2 ...
Matrix to define a trigger for stimulation. Convention: StimulatonId, trigger equation,repeats, anode electrodes, kathode electrodes
Expression to start CorTec Stimulation.
Expression to abort CorTec Stimulation.
Flag to enable/disable CorTecFilter.
Integer to connect stimulation parameters.