Skip to content
NeuPivotPublic

About

Open-source single-channel EEG: hardware, firmware & host software / 全栈开源单通道脑电:硬件、固件与上位机

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NeuEEG

NeuEEG - Fully Open-Source Single-Channel EEG

License: MIT License: CERN OHL P License: CC BY 4.0 MCU AFE Python


中文说明点这里

About Us

We are NeuPivot (新枢脑控), a team building open brain-computer interface hardware. We believe neurotechnology should be hackable by anyone, so we open-source the entire stack: PCB schematics and Gerbers, firmware, signal processing, and host software.

NeuEEG is our first open-source project: a complete single-channel EEG acquisition stack — analog front-end, STM32 firmware with on-chip DSP, BLE/USB connectivity, and a host viewer with live waveform, spectrum, and focus/relaxation metrics.

Measured shorted-input noise: 0.057 µVrms / 0.41 µVpp (gain 12, 250 SPS, raw ADC + 50 Hz notch). Every test condition is documented and reproducible — see docs/measurements and the design blog.

The whole device can be built from JLCPCB-fabricated PCBs and off-the-shelf parts. Flash the provided hex, run the Python viewer, and you are looking at microvolt-level brain signals.


Documentation

  • Design blog (EN) — the module, the dev board, and one shorted-input noise measurement
  • Protocol — UART packet format (250 Hz waveform packets + 1 Hz metrics packets)
  • Measurements — raw data, metrics and reproduction notes for the noise numbers

Community

QQ Group QR Code
QQ Group

About This Repository

This repository contains the complete NeuEEG stack in one place. Pick the area that matches your contribution:

Module Contents
hardware/ 3 PCBs — capture module, carrier board, all-in-one dev board (schematic PDF + JLCPCB Gerber ZIP)
firmware/ Keil MDK project: STM32F103 + ADX920 driver, Q31 IIR filters, 256-pt RFFT, focus/relax metrics
software/ Python host viewer (BLE/serial, live waveform & spectrum, CSV recording) + DSP tools
docs/ Protocol spec, design blog (EN/中文), noise measurement data

NeuEEG development board NeuEEG capture module
Development board Capture module
Host viewer
Host viewer — live waveform, spectrum, focus/relax

Resource Guide

Signal path

Electrode → ADX920 HPF 0.5 Hz → 24-bit ADC @ 250 SPS, gain 12
  → Q31 IIR: HPF 0.5 Hz + LPF 100 Hz + 49.5–50.5 Hz notch
  → UART small packet @ ~250 Hz  (filtered waveform)
  → 256-pt Hamming RFFT, hop 250 → large packet @ ~1 Hz  (focus / relax / lead-off)

Measured noise

Setup RMS Peak-peak
This board (raw ADC + 50 Hz notch) 0.057 µVrms 0.41 µVpp
This board (host path 1–65 Hz + notch) 0.045 µVrms 0.30 µVpp
ADX920 typical (datasheet, gain 12) 0.7 µVrms 5.4 µVpp

Bandwidths differ — treat the datasheet row as an order-of-magnitude check. Full conditions: docs/measurements/metrics.json.


Quick Start

# Clone repository
git clone https://github.com/NeuPivot/NeuEEG.git

# Host viewer
cd NeuEEG/software
pip install -r requirements.txt
python eeg_viewer.py        # BLE device name: MY-BT503-S, serial 115200 8N1
  • Firmware: open firmware/MDK-ARM/ADX920.uvprojx in Keil MDK, or flash the ready-made firmware/MDK-ARM/ADX920/ADX920.hex
  • Hardware: each folder under hardware/ ships a schematic PDF and a JLCPCB-ready Gerber ZIP
  • Viewer keys: software/KEYS.md

FAQ

Is this a medical device?

No. NeuEEG is an open engineering platform for learning and prototyping. Noise numbers are board-level measurements, not clinical metrics.

Do I need the dev board, or is the module enough?

The capture module alone can acquire EEG — supply 3.3 V / 5 V and read UART from its headers. The carrier and dev board add USB-C, charging and BLE for a cable-free setup.

Can I use a different sample rate or gain?

Yes. ADX920 supports programmable gain and data rates; change the register config in firmware/USER/ADX920.c. The shipped DSP coefficients assume 250 SPS.


Disclaimer

NeuEEG is provided "as is", without warranty of any kind. It is not a medical device and must not be used for diagnosis, treatment, or any medical purpose.

Any use, modification, or secondary development of the open-source materials is at the user's own risk. NeuPivot assumes no liability whatsoever, including but not limited to equipment damage caused by improper assembly, configuration, or operation.


License: Multi-licensed — original code under MIT, PCB design files under CERN-OHL-P, documentation and photos under CC BY 4.0, vendor libraries under their own licenses. See LICENSE for scope details.


Star


Contributors

Thanks to all the people who contribute to this project!

Contributors

About

Open-source single-channel EEG: hardware, firmware & host software / 全栈开源单通道脑电:硬件、固件与上位机

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages