by Starcat

8-32 channel TI ADS1299 Arduino shield for EEG, EMG, and EKG bio-signals acquisition

View all updates Dec 16, 2019

HackEEG and OpenBCI

HackEEG and OpenBCI

HackEEG is designed to read your brainwaves (EEG). So how do you do that?

person with HackEEG and OpenBCI running on a laptop

One way is by streaming data from HackEEG using Lab Streaming Layer to OpenBCI GUI for visualization.

Lab Streaming Layer

Lab Streaming Layer (LSL) is a way to exchange real-time EEG data between instruments and software. Here’s what its Github page says about it:

The lab streaming layer (LSL) is a system for the unified collection of measurement time series in research experiments that handles both the networking, time-synchronization, (near-) real-time access as well as optionally the centralized collection, viewing and disk recording of the data.

In other words, LSL is way to get data from HackEEG to lots of different EEG applications in real-time so it can analyzed, displayed, or recorded. LSL also allows you to send non-EEG data too. It’s an amazing set of software– it allows plug-and-play connection of disparate equipment and software with very little hassle. And it’s all open source!


OpenBCI GUI is a very cool program for visualizing EEG data. It’s mainly used for visualizing data from OpenBCI’s own hardware– the Cyton and Ganglion EEG ADC boards.

The software is open source, and available on OpenBCI’s Github account. It normally can’t connect to a HackEEG board, but Starcat has modified the OpenBCI GUI to take Lab Streaming Layer input. With this, you can send 8 or 16 channels of HackEEG data to OpenBCI. This is the software you see in the demo video. Here’s Starcat’s fork of OpenBCI GUI. (We hope to get these changes merged into OpenBCI’s project.)

Putting It Together

Detailed instructions are over on the hackeeg-python-client documentation page. Here’s an overview of getting it all going. The HackEEG software is command-line only right now– in an update later this month, I’ll post a Python Qt-based GUI for doing the same thing.

  1. Install the HackEEG software
  2. Install Processing
  3. Install the Starcat fork of OpenBCI
  4. Run the hackeeg_stream command: ./hackeeg_stream --sps 500 --continuous --lsl --quiet
  5. Start Processing
  6. Open OpenBCI_GUI and run it
  7. Select Live (from Lab Streaming Layer) – 8 channels from the Input Selector (seen below).
  8. Click Start Session
  9. Click Start Data Stream
  10. Select the Band Power Widget in the lower right pane (if that's what you want to see)

OpenBCI_GUI Input Selector with LSL selected

OpenBCI_GUI Input Selector with LSL selected

If you don’t want to use OpenBCI, you can connect your own visualization or data analysis software via LSL, or access the data directly from Python.

$24,870 raised

of $8,455 goal

294% Funded! Order Below

Product Choices


HackEEG 8-Channel Basic Kit

Includes one HackEEG, a ribbon cable, and an electrode connector.


HackEEG 8-channel Starter Kit

Includes one HackEEG board, a ribbon cable, and a connector board with ten DIN 42-802 touch-proof electrode connectors (eight inputs, one reference, one ground).


HackEEG 8-channel Deluxe Kit

Includes one HackEEG, a ribbon cable, an electrode connector, Arduino Due, ten silver chloride EEG electrodes, two ounces of Ten20 conductive paste, and four ounces of NuPrep prep gel.


HackEEG 32-channel Deluxe Kit

Includes 4 x HackEEG, 4 x ribbon cable, 4 x electrode connector, 1 x Arduino Due, 40 x silver chloride EEG electrode, 4 x two ounces Ten20 conductive paste, 4 x four ounces NuPrep prep gel.



Electronics R&D company specializing in open source hardware and high performance biosignals acquisition equipment; creator of the HackEEG shield successfully launched on Crowd Supply in 2020

Adam Feuer


PCB Fabrication & Assembly

Plastics One Technologies

Components Manufacturing

See Also

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects: