Interface¶
There are three main areas in this application: (1) a top toolbar with icons and with the functionality of switch the (2) central main frame, and a (3) set of lateral tabs with specific functionalities.
Toolbar¶
Development¶

Visualizations and Stimuli delivery¶


Documentation¶

Home¶

Montage¶
BCI-framework uses the MNE standard montages through a graphical interface to pair the channel name and the OpenBCI electrode location. All this information is automatically available through any interface and can be consulted on execution time from any extension: Stimuli delivery, Data analysis, and Data visualizations.
Connection¶
The board can be configured through this graphical interface, almost all OpenBCI-Cyton options are available here.
IP:
Port: Serial port address, like /dev/ttyUSB0 or COM0
IP: Ip address for WiFi shield, it could be in master or slave mode.
Boardmode:
Default: Sends accelerometer data in aux bytes
Debug: Sends serial output over the external serial port which is helpful for debugging.
Analog: Reads from analog pins A5(D11), A6(D12) and if no wifi shield is present, then A7(D13) as well.
Digital: Reads from analog pins D11, D12 and D17. If no wifi present then also D13 and D18.
Marker: Turns accel off and injects markers into the stream by sending `X where X is any char to add to the first AUX byte.
Test signal
GND: Connect to internal GND (VDD - VSS)
1X SLOW: Connect to test signal 1xAmplitude, slow pulse
1X FAST: Connect to test signal 1xAmplitude, fast pulse
DC: Connect to DC signal
2X SLOW: Connect to test signal 2xAmplitude, slow pulse
2X FAST: Connect to test signal 2xAmplitude, fast pulse
Channel settings¶
Leadoff Impedance¶
PCHAN: Apply a current signal of 31.2 Hz into the P channels.
Electrode impedances¶
In the Montage tab and when the streaming is started, the input impedance can be measured in real time over the same electrode disposition. This feature must not be activated meanwhile an acquisition.
Note
The impedance measurement does not work correctly on the current version of Cyton Library, but there is a pull request that solve this issue.
Is possible to use versions between V3.0.0 and V3.1.2, but you must reset the board every time before measurement and NEVER change the sample frequency.
Records¶
When the streaming is active is posible to record the input signal from the Records tab, even though the records can be configured automatically from the stimuli delivery. The recorded data can be played offline and simulate an input stream or be explored with the `openbci_stream.utils.HDF5Reader
<https://openbci-stream.readthedocs.io/en/latest/notebooks/07-data_storage_handler.html>`__ module.
Annotations¶
Consists of simple Kafka topics that are handled in a special way by different systems. marker
and annotation
are defined on OpenBCI-Stream, BCI-Framework introduced command
to communicate the outputs of Data analysis with external actuators or systems and feedback
to send messagges directly to the stimuli
delivery. Moreover is possible to create custom topics and use it anywhere.
The BCI-Framework interface define in the Annotations tab a system to read and write markers, annotations and commands (the feedbacks are for internal use exclusively):
Markers:
marker
.Send |
Receive |
|
---|---|---|
Data analysis and Visualizations |
X |
@loop_consumer |
Stimuli delivery |
self.send_marker |
X |
Annotations:
EDF
format. Are streamed with the topic annotation
.Send |
|
---|---|
Data analysis and Visualizations |
self.send_annotation |
Stimuli delivery |
self.send_annotation |
Commands:
command
.Send |
Receive |
|
---|---|---|
Data analysis and Visualizations |
self.send_command |
@loop_consumer |
Stimuli delivery |
X |
X |
Feedbacks:
Used to transmit messages from Data analysis to Stimuli delivery.
Send |
Receive |
|
---|---|---|
Data analysis and Visualizations |
self.send_feedback |
X |
Stimuli delivery |
X |
self.listen_feedback |
Properties¶
The properties are the way to access to all common configurations, this include OpenBCI board settings and environment constants. The following scripts can be used in any extension type, Data analysis, Data visualization or Stimuli delivery.
[ ]:
from bci_framework.extensions import properties as prop
Property |
Example |
---|---|
prop.DPI |
141.37929179740024 |
prop.CHANNELS |
{“1”: “Fp1”, “2”: “Fp2”, “3”: “T3”, “4”: “C3”, “5”: “C4”, “6”: “T4”, “7”: “O1”, “8”: “O2”} |
prop.MONTAGE_NAME |
“standard_1020” |
prop.DAISY |
false |
prop.HOST |
“192.168.1.1” |
prop.SAMPLE_RATE |
1000 |
prop.STREAMING_PACKAGE_SIZE |
100 |
prop.BOARDMODE |
“analog” |
This properties can be used, for example, to draw topoplots, name axis ticks or data slicing.