Peripherals

Currently, our decoding interface supports 6 Peripherals, which can be connected and disconnected from the Peripherals Frame in the bottom left corner of the GUI. Simply press the Reconnect Button, and select the Peripheral device(s) you wish to connect to. You can also deselect already-connected Peripherals to disconnect from them. We describe each Peripheral in more detail below, but here is a brief description:

  • OpenBCI_WiFi: This is the OpenBCI Wifi Board used to record EMG/EEG signals.

  • OLD_OpenBCI: This is the deprecated software interface to the OpenBCI WiFi Board.

  • Glove: This is the wearable glove connected via USB.

  • Mujoco: This connects the Mujoco Physics Simulator as an Control Device.

  • Robot: This connects to a robotic hand over Serial USB.

  • Utah: This connects to University of Utah’s Matlab & Labview -based Decoding Software. This is an new and advanced feature.

OpenBCI_WiFi

This is the OpenBCI Cyton+Daisy+WiFi Board used to record EMG/EEG signals. Make sure the OpenBCI Board is powered on and connected to your computer over WiFi, before attempting to connect. Debugging details related to the connection process are printed in the python terminal.

IMPORTANT: The WiFi Shield is still buggy, and may sometimes not connect correctly or will sometimes drop packets. Try turning the board on and off, and also restarting the Decoding Interface to fix this.

OLD_OpenBCI

This is the deprecated software interface to the OpenBCI WiFi Board. More configuration is currently allowed, but the api has more bugs than the current BrainFlow API.

Glove

This is the wearable glove connected via USB. To set this up, first connect one our our gloves to an arduino and then program the arduino with peripherals/read_sensor_data.ino (make sure to edit the pin configuration if necessary). Calibrate the glove if necessary (how to do this?). Then connect the arduino to the PC via usb and make sure the ‘glove_port’ setting is correct. Currently this setting can only be changed in json settings files. Lastly, connect the Glove via the GUI and select Intact from the Subject Dropdown in the Settings Frame in the bottom left of the GUI.

Mujoco

This connects the Mujoco Physics Simulator as an Control Device. To connect, first start Mujoco on the same machine as the Backend. The free Windows executable of Mujoco is included in this repo at peripherals/mujoco/program/mjhaptix.exe. Just run that and the MuJoCo software will start up and open to a blank simulation window. Next, in Mujoco, load either the MPL_Ghost.xml or MPL_Ghost_Left.xml model files located in the peripherals/mujoco/model/MPL/ directory. Lastly, connect to Mujoco from the GUI, and select Mujoco in the Control Dropdown located in the Settings Frame in the bottom left of the GUI.

Robot

This connects to a robotic hand over Serial USB. Typically the robotic hand is controlled by an arduino-like microcontroller over USB. Currently, our software writes the position of each DOFs to the robotic hand over Serial USB as a zero padded string from 000 to 180. The positions of all DOFs are just concatenated, and then end with a newline. You may need to edit the robot_port setting to properly discover the hand.

Utah

This connects to University of Utah’s Matlab & Labview -based Decoding Software. Using this is complicated and still buggy, so please contact the developers if you wish to use this feature.