Hardware: EXG Synapse, DOIT-ESP32-DEVKIT-V1, Jumper Wires

Software: Arduino IDE


  1. PCB Configuration: EXG Synapse has configuration options in terms of gain and bandpass filter bandwidth. The user can modify these values depending on the use case. Here is an image showing the resistor pad R9(for gain) and capacitor pad C2(for filter bandwidth).

  2. Connection with ESP32 EXG Synapse requires only three wires to connect to any MCU. 3V3 connects to the 3V3 pin on the ESP32 and GND to GND pin on the ESP32. The Output of EXG Synapse can be connected to any ADC pin of ESP32 and configured as an analog input to read the data.

  1. Installing the Library: We have developed a library intended for integration into your code, facilitating the acquisition of EXG signals. Install the required library available on our Github repository.

  1. Flashing Code on ESP32: To flash the required code on ESP32, you need to install Arduino IDE and setup for flashing to an ESP32. You can follow this guide if you don’t find your board listed in Arduino. Once your board is added to Arduino, you can go to our GitHub repository, here you will find all the necessary files for acquiring the data using EXG Synapse. Navigate to the folder of your choice (serial or BLE), and download the required .ino (EEG, ECG, EMG, EOG). Now compile and upload the code on your board.

    Please follow the screenshots given below.

Board Selection:

COM Port Selection:

  1. Skin Preparation: Before placing the electrode, skin surface must be cleaned with an alcohol based wet wipe and then Nuprep Gel can be used to enhance the signal quality as it reduces the skin impedance. You can follow this guide on how to use Nuprep Gel while preparing for data acquisition.

  2. Data Visualization: Serial: The Lab Streaming Layer (LSL) is a system designed for real-time data streaming and recording. We have provided a python script located in the GitHub repository used to read the data from serial and create an LSL stream. The stream created by the script can be easily visualized using a LSL-compatible software such as BrainVision LSL Viewer. It can be downloaded for free using this link. BLE: If flashed with the code provided under software\Arduino\ble, ESP32 will stream data continously over BLE. You can create a client-side interface to read this data and use it for further applications.

Last updated