Skip to the content
4 layers35.6 × 77.5 mmCombined PCB, the printed circuit board in 3D

This project aims to design and develop a wearable EEG headset with an integrated data acquisition system. Using OpenBCI Ultracortex Mark IV as a template, the headset is designed to map the electrodes according to the…

Size
35.6 × 77.5 mm
Copper layers
4
Thickness
1.6 mm
Parts
43
Nets
95
Pads
274
Tracks, vias
479, 34
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
3 Oct 2024
Updated
22 Apr 2025

Overview

Combined PCB is an open-source printed circuit board by Keith-Khadar, from the Keith-Khadar/Gh05t repository on GitHub. It is a 4-layer board of 35.6 × 77.5 mm with 43 parts on 95 nets, routed with 479 tracks and 34 vias.

It is built around the TPD4E1B06DRLR-TP and ADS1299IPAG. Its parts include 19 capacitors, 7 ICs, 7 connectors, 4 resistors and 1 inductor.

Main components

2

README

README.md

drawing

Project Overview

This project aims to design and develop a wearable EEG headset with an integrated data acquisition system. Using OpenBCI Ultracortex Mark IV as a template, the headset is designed to map the electrodes according to the 10-20 system. We expand on this design by integrating our own 3D printed or button-snap electrodes for enhanced modularity. Additionally, we investigate various EEG data acquistion hardware options, varying in cost, precision, and usability, to enhance accessibility and modularity in EEG systems - ranging from off-the-shelf hardware to custom-designed PCBs and circuit designs. The hardware will communicate with a computer for analysis by a machine learning (ML) model to detect gestures or possible speech, with the possibility of integration into Virtual-Reality (VR) applications. Lastly, the system will feature a custom GUI, enabling users to visualize EEG data in real-time from the various custom hardware configurations we explore.

We provide various levels to users depending on cost, precision, and usability:

FeatureHigh Performance Development Board1Balanced Performance Board2Low Cost EEG Filtering Circuit3
Number of Channels8*8*8
Resolution24-bit24-bit12-bit
Typical Sampling Rate250 Hz250 Hz<33 Hz
ADC ChipADS1299-IPAGADS1299-IPAGInternal RPi Pico ADC
BoardEEG Development Board with ESP32-S3Custom PCBCustom breadboard/featherboard circuit
MicrocontrollerXIAO ESP32-C6DFRobot Firebeetle ESP32 32DRaspberry Pi Pico W
ConnectivityUSB-C/Bluetooth/WiFiMicro-USB/Bluetooth/WiFiMicro-USB/WiFi
Power SourceBattery/USBBattery/USBBattery/USB
Battery Life8 hours-<1 hour
GUI SupportOpenBCI GUICustom GUICustom GUI
Form FactorButton Snap Electrodes w/ OpenBCI Headset3D printed Claw Electrodes w/ OpenBCI Headset3D printed Claw Electrodes w/ Custom Headband
Communication ProtocolsSPI, ESPNOW, UARTSPI, BLEUDP WebSocket
Price~$375~$100~$50

* The ADS1299 has the capabilities to daisy chain, therefore expanding the channel number from 8 to 16 but it is not fully implemented on the custom PCB. Refer to the ADS1299 PCB folder for additional information.

Completed Work/In Progress for Milestone Production Release

  • Working Balanced Performance Pipeline (ADS1299 Breakout PCB): Eye blinks were detected successfully in the FFT and Time Series plots but was unable to receive consistent and robust results after each trial.
    • Work in progress of doing trial and error to reproduce results.
  • Housing Design for Balanced Performance Board (Breakout PCB): A CAD design of a housing unit for the ADS1299 Breakout PCB was completed.
  • Receiver code optimization for the High Performance board: The receiver code was optimized for better efficiency on the high-performance board by restructuring logic, minimizing redundant operations, and improving resource utilization.
  • Optimizing Real Time Reading on the GUI: Since eye blinks were successfully shown in the time series, the SDED, with the calibration of the delta and alpha variables, was able to successfully label with minimal latency the sample positions where the blinking occurred.
  • EEG Game Application: In order to expand the application of using the EEG data and detecting events like eye blinking, a VR and simple blinking game was created. A WebSocket host was created in the GUI and successfully broadcasts the SDED labels to any client to act as a controller for a game.
  • Signal Preprocessing : The EEG signal preprocessing pipeline is fully implemented, ensuring artifact removal, filtering, and independent component extraction before further processing. FastICA, InfoMax, NLMS and VSS-APA are implemented to extract information components from raw EEG signals in real-time.
  • Event Detection/Prediction Model: The EEG-based event detection pipeline and machine learning models have been developed to analyze real-time brain activity and infer motor function. NLMS, Batch-Wiener Filter and VSS-APA have been implemeted for predictions - Statistical Deviation Event Detection Model and Information Theoretic Learning Point Process Detection Models have been implemented for more sophisticed event flagging.

Project Architecture

High Performance Development Board1

Hardware Architecture & Wiring
ComponentsCommunication Protocols
High Performance Board- OpenBCI 3D Headset Design
- Depth-adjustable spring loaded 3D printed assembly with metal snap electrodes provides good signal strength for EEG signals
- EEG ESP Development Board with ESP32-S3
- XIAO ESP32-C6
- Protective case for the development board
- SPI communication between ADS1299 chip and ESP32-S3
- ESP-NOW WiFi data transmission between Development Board and ESP32-C6
- UART serialized data transmission through USB-C connection between ESP32-C6 and computer receiver
  • Software
    • Once the ESP32-C6 captures the incoming EEG data from the ESP32-S3, the UART data is captured through a python script and written to a file. The captured EEG data in this file can be viewed using OpenBCI GUI. The EEG data in this file will be feed to the machine learning model to draw inferences after analysis of the data.
    • A python script is employed to label and timestamp the 8-channel EEG blinking data. This script facilitates the real-time processing and organization of the data, ensuring that each blink event is accurately marked with its corresponding timestamp for subsequent analysis.
    • An end-to-end high-performance EEG pipeline leverages an ESP32 EEG board and ESP32-C6 to wirelessly transmit 8-channel, ultra-low-noise data at 250 samples/sec via ESP-NOW, enabling real-time processing in Python and visualization through OpenBCI GUI or a custom interface.

    data collection stages fft plot

Balanced Performance Board2

Hardware Architecture & Wiring
ComponentsCommunication
drawing drawing drawing- OpenBCI 3D Headset Design
- 3D Printed Claw Electrodes
- Custom ADS1299 PCB
- DFRobot Firebeetle ESP32 32D
- SPI communication between the ADS1299 PCB and Firebeetle ESP32
- BLE data transmission between the Firebeetle ESP32 and computer receiver
  • Software
    • Once the Firebeetle ESP32 is supplied power, the BLE server is turned on and ready to transmit data to any device that connects to the server. The GH05T GUI is used to connect to the BLE server and read incoming real-time data.

Low Cost Filtering Circuit3

Hardware Architecture & Wiring
ComponentsCommunication Protocols
drawing- Custom Filtering and Component Circuit on breadboard/featherboard
- Raspberry Pi Pico W
- TCP WebSocket data transmission between Raspberry Pi Pico W and computer receiver
  • Software
    • Once the Raspberry Pi Pico W is supplied power,UDP WebSocket is opened and transmits data to any device that connects to the server. The GH05T GUI is used to connect to the WebSocket server and read incoming real-time data.

GH05T Graphic User Interface4

Function and Feature Architecture
Visuals/GUI
GUI FlowGUI Flow PyQt & Matplotlib: Widget and EEG Data Visualization

Signal Processing and Machine Learning5

  • EEG Signal Pre-processing:

    • Format:
      • Input: Raw 4 channel electrode data
      • Output: K-Independent Signals (Components)
    • Processing Options:
      • FastICA , NLMS: Fast Inference
      • InfoMax or VSS-APA: Versatility & Robustness
  • EEG Signal Machine Learning:

    • Format:
      • Input: K-Independent Signals (Components)
      • Output: User Defined Target Output
    • Target:
      • User Defined Target Desired Output, i.e. eye activity or motion.
    • Model:
      • Structure: Artifical Neural Network (Regressor)
      • Pre-Training: PCA-Pretraining for optimal features
      • Training: Network Tuning based on Target Data

Known Bugs

  • The Balanced Performance Board ADS1299 completely stopped working after trying to fit the casing to the hardware. This was an unexpected issue that is not able to be understood. Possible issues that could have occurred for the chip to completely stop working is somehow the chip received a surge of power that could have damaged it.

Difficulties/Challenges

  • 3D Printing Fail: Weak legs on 3D electrodes
    • The initial model found and used for the electrodes has spindly legs. In combination with two snaps of the filament during printing, the legs were incredibly weak and many snapped during removal from the print bed.
    • Fix: Load filament onto spool to eliminate snapping during print. Custom design electrodes with filleted legs to enhance their strength. Increase the number of walls when slicing model for printing.
    • Above fix solved combined with printing on a higher quality printer and in a different orientation fixed the issues.
  • Snap Plating: Purchased snaps are covered in non-conductive coating
    • Prevented soldering, but can be scrapped off with a knife.
    • Reduces signal integritty of electrodes.
    • Fix: Looking into alternative unplated snap connectors.
    • Above fix solves the issue in initial testing. Will continue to monitor as further testing is conducted.
  • Inaccurate EEG Data: Data recorded during initial testing is inaccurate.
    • The poor quality electrodes(see snap plating challenge & 3d printing fail) as well as the ADC optimized for Electromyography (EMG) data recording instead of the use case of Electroencephalography (EEG), resulted in poor quality data.
    • Fix: Custom designed PCB breakout board for the ADS1299 which is designed for EEG data acquisition.
  • GUI Real Time Data: Optimizing the timing between data conversion from the ADS1299 to the GUI has introduced latency.
    • Fix: Utilizing threading and precise timing between frame updating and loading.
  • ADS1299 Electrode Setup: Setting up the registers for specific BIAS, SRB1/2, and Electrode connections proved difficult with our system. This was causing reading alpha waves to be difficult.
    • Fix: Using the SRB1, connected to the earlobe/mastoid, routed to all the negative parts of the electrode channels for reference. Using the BIAS, also connected to the earlobe/mastoid, routed to the postive electrode channels for signal derivation.

License

Contact

Acknowledgements

We would like to extend our gratitude to OpenBCI for having open source repositories with headset designs, ADS1299 libraries, and user interface code. These repositories played a significant role in the success of the project!

Footnotes

  1. Refer to High_Performance\README.md for more information on the setup and specifics for the system. ↩ ↩2

  2. Refer to Balanced_Performance\README.md for more information on the setup and specifics for the system. ↩ ↩2

  3. Refer to Low_Cost\README.md for more information on the setup and specifics for the system. ↩ ↩2

  4. Refer to Gh05t GUI\README.md for more information on the setup and specifics on the GUI. ↩

  5. Refer to Machine_Learning\README.md for more information on the setup and specifics. ↩

Parts

43
QtyValueFootprintReferences
51000 pFW3A45C102K4T2A:CAPCAV_W3A45C102KAT2A-8C1, C2, C3, C4, C5
51uFCapacitor_SMD:C_0805_2012MetricC6, C12, C13, C16, C17
52.2KResistor_SMD:R_Array_Concave_4x0603RN1, RN2, RN3, RN4, RN5
5TPD4E1B06DRLRDRL6:DRL6_TEXU1, U2, U3, U4, U5
310uFCapacitor_SMD:C_0805_2012MetricC8, C18, C19
2.1uFCapacitor_SMD:C_0805_2012MetricC7, C15
20.1uFCapacitor_SMD:C_0805_2012MetricC9, C14
21MResistor_SMD:R_0805_2012MetricR1, R2
2Conn_01x01_PinTestPoint:TestPoint_Pad_D2.5mmJ4, J5
2Conn_01x08_PinConnector_JST:JST_XH_S8B-XH-A_1x08_P2.50mm_HorizontalJ1, J3
2Conn_01x18_PinConnector_PinSocket_2.54mm:PinSocket_1x18_P2.54mm_VerticalJ6, J7
1100uFCapacitor_SMD:C_0805_2012MetricC10
11nFCapacitor_SMD:C_0805_2012MetricC11
1309Resistor_SMD:R_0805_2012MetricR3
14.7uHInductor_SMD:L_0805_2012MetricL1
1976Resistor_SMD:R_0805_2012MetricR4
1ADS1299IPAGADS1299:QFP50P1200X1200X120-64NU6
1Conn_01x02_PinConnector_JST:JST_XH_S2B-XH-A_1x02_P2.50mm_HorizontalJ2
1MCP1640BT-I/CHYMCP1640:SOT-23-6_MC_MCHU7

More from Keith-Khadar/Gh05t

1
  • 2 layers57.2 × 70 mmADS1299 Breakout Board, the printed circuit board in 3D

    ADS1299 Breakout Board

    Keith-Khadar/Gh05t

    This project aims to design and develop a wearable EEG headset with an integrated data acquisition system. Using OpenBCI Ultracortex Mark IV as a template, the headset is designed to map the electrodes according to the…

    41 parts9

Similar boards

  • 4 layersNeurodaq shield, the printed circuit board in 3D

    Neurodaq shield

    carlos-lorenzo/neurodaq-hardware

    Hardware files for neurodaq

    54 parts6MIT
  • 4 layers84.4 × 39.9 mmSignal acquisition board, the printed circuit board in 3D

    Signal acquisition board

    solderneer/nexus-silent-speech

    A novel approach to enhancing silent speech recognition systems with a multiplexed star electrode array, developed for my final year dissertation at University College London (UCL).

    124 parts
  • 6 layers35 × 23 mmEeg, the printed circuit board in 3D

    Eeg

    bradkim06/gas_nordic

    gas sensing iot device(nrf52832)

    80 partsApache-2.0
  • 4 layersVolksEEG, the printed circuit board in 3D

    VolksEEG

    VolksEEG/VolksEEG

    Open Source EEG project

    148 parts77GPL-3.0
  • 4 layers64 × 64 mmConvey, the printed circuit board in 3D

    Convey

    kennito2035/convey

    CONVEY: open 8-channel patient-isolated EEG/sEMG/ECG acquisition board (ADS1299, KiCad 10)

    146 parts4CERN-OHL-S-2.0
  • 4 layers71.8 × 40.5 mmBioamplifier, the printed circuit board in 3D

    Bioamplifier

    RauLLorenzon/DIY_EEG

    8 Channel EEG board, based on the ADS1299

    95 parts4
  • 2 layers39.9 × 50.5 mmEeg, the printed circuit board in 3D

    Eeg

    gianisalive/lucid_candy

    eeg

    77 parts2
  • 4 layers88 × 80 mmNeuronic, the printed circuit board in 3D

    Neuronic

    kamenzh/neuronics-eeg

    A budget-focused EEG brain–computer interface project exploring a custom 8-channel acquisition PCB, ESP32 wireless streaming, and PC-based signal processing and CNN classification for brain-controlled interfaces.

    95 parts2MIT

Questions

How big is the Combined PCB PCB?

It measures 35.6 × 77.5 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Combined PCB use?

43 parts, built around the TPD4E1B06DRLR-TP and ADS1299IPAG. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Combined PCB KiCad files?

From the Keith-Khadar/Gh05t repository on GitHub, at the commit this page was made from: the board is archived/Combined_PCB/Combined_PCB.kicad_pcb and its schematic Balanced_Performance/ADS1299_Breakout_Board/ADS1299_Breakout_Board.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Combined PCB design in my own project?

Its repository states no licence, so its author keeps all rights: ask Keith-Khadar before reusing the design.