# 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.