Software Installation - 32 Channels

This page is for detailed instructions on how to install the HackEEG software and get it running on a 32 channel system.

These instructions assume you’ve already done the HackEEG Software Installation for 8 channels and got that working.

Using a Laptop

HackEEG has been tested on macOS, Linux, and Windows 10. Windows 10 support is new, if you have problems, please contact the mailing list.

  1. In the hackeeg-driver-arduino repository, switch to the multiboard branch– this branch has firmware that can work with more than one HackEEG at a time:

    $ git checkout multiboard
    
  2. Using the Arduino IDE, open the sketch hackeeg_driver.ino located in the hackeeg-driver-arduino directory of the repository you cloned.

  3. Use the Arduino IDE to compile the driver and upload it to the Arduino Due board.

  4. In the hackeeg-client-python repository, switch to the multiboard branch– this branch can understand the data format that the multiboard firmware uses:

    $ git checkout multiboard
    
  5. In the OpenBCI_GUI repository, switch to the feature/lsl-input-32-channels branch. This branch can accept LSL input on 32 channels:

    $ git clone https://github.com/adamfeuer/OpenBCI_GUI.git
    $ cd OpenBCI_GUI
    $ git checkout feature/lsl-input-32-channels
    
  6. Using Processing, open the OpenBCI_GUI/OpenBCI_GUI directory and run the sketch. The OpenBCI GUI should launch. Don’t try to connect to an LSL stream yet– the stream needs to be running before trying to connect to it.

  7. For a quick test to see if communication between the client and HackEEG boards work, you can use the command line shell to blink the blue HackEEG board lights. This will indicate whether the HackEEG board stack is communicating with the laptop.

    1. Activate the Python virtual environment:

      $ pipenv shell
      
    2. Start the HackEEG shell, and use the blinkall command to blink all 4 blue HackEEG board LEDs:

      $ hackeeg_shell
      (hackeeg) blinkall
      Ok
      (hackeeg) version
      v0.3.0
      Ok
      (hackeeg) exit
      $
      

Streaming Data

  1. To stream data from internal test signals, printing 2000 samples to the terminal– you will see the HackEEG blue board LED flash briefly before the data starts printing:

    $ hackeeg_stream --channel-test --sps 500 --samples 2000
    
  2. To stream data from internal test signals continuously and send via Lab Streaming Layer (LSL):

    $ hackeeg_stream --channel-test --sps 500 --continuous --lsl
    
  3. To stream data from internal test signals continuously and send via Lab Streaming Layer (LSL) without printing to the terminal:

    $ hackeeg_stream --channel-test --sps 500 --continuous --lsl --quiet
    
  4. To stream data continuously from electrode input on all 32 channels at 500 samples per second (SPS) at 24x gain and send via Lab Streaming Layer (LSL) without printing to the terminal. This will create four LSL streams called EEG0, EEG1, EEG2, and EEG3:

    $ hackeeg_stream --sps 500 --gain 24 --continuous --lsl 4 --quiet
    

OpenBCI

  1. Start the HackEEG LSL stream. On a 4-board system, this will create four LSL streams called EEG0, EEG1, EEG2, and EEG3:

    $ hackeeg_stream --sps 500 --gain 24 --continuous --lsl 4 --quiet
    
  2. To display the stream’s data, select Live (from Lab Streaming Layer) from the System Control Panel dialog. Choose 32 for the channel setting. Click Start Session.

  3. You should see some status messages in the console as OpenBCI GUI finds the streams and connects to them.

  4. Click Start Data Stream