How to join sensor data from an OpenBCI board with EEG data with an OpenBCI board with ECG data?

Last Updated on January 2, 2023 by pg@petergamma.org

We have reviewed here the different options to connect OpenBCI to other platforms:

Neurocity with EEG over WIFI places a mini PC as close as possible to the EEG device. But how shall we proceed, if we additionally need a 3 lead ECG for heart rate?

Do we need a fast WIFI stream for heart rate data? Bitalino which is specialized in single lead ECG devices with 3 electrodes uses Bluetooth or BLE transmission for this purpose. The OpenBCI Bluetooth dongle connects to the OpenBCI GUI. But what shall we do , if we want to combine sensor data from several OpenBCI boards, for instance one located on our head and one on our chest for ECG?

We do not know whether this is supported by the OpenBCI GUI. Another solution is to use OpenBCI WIFI shield RestAPI interface to connect to another platform. If we connect the OpenBCI WIFI shield over the RestAPI to Home Assistant or InfluxDB, we can combine as many OpenBCI modules as we want.

The OpenBCI GUI has support for up to 18 channels, the modification of Adam Feuer has support for 32 channels with LSL input. If we connect OpenBCI WIFI shield over the RestAPI to InfluxDB, we can read out sensor data out from there with Python. OpenBCI GUI has many options to visualize and analyse sensor data. But do we not have the same options with Python?

Harrison Kinsley has a Python example for OpenBCI. But this example does not connect to the OpenBCI WIFI shield. It connect over the OpenBCI Bluetooth dongle. Therefore, we cannot modify it for the applications we discussed here.

Following the example of Neurosity, we can place our mini PCI (or our PinePhone?) as close as possible to the EEG module on our head. We can connect the OpenBCI board with ECG data placed on our chest also over WIFI to our mini PC on our head. Bitalino uses Bluetooth transmission for ECG. We suppose that ECG data streamed over WIFI to a mini PC on our head are well synchronized with our data from our EEG module, and no LSL or MQTT is needed for this purpose.

The setup is not easy, but we think it is possible. An easier setup is a setup with 16 channel OpenBCI modules and ECG wires which are led to the head.