项目介绍

pieeg-club/ironbci 是一个托管在 GitHub 上的开源项目,主要使用 Python 编写,目前获得 643 个 Star、71 次 Fork。

仓库全名
pieeg-club/ironbci
Star 数
643
Fork 数
71
未关闭 Issue
2

README 摘要

IronBCI-8 A wireless brain-computer interface that fits in your hand. Low-cost, open-source, wearable 8-channel BCI with Bluetooth LE, a mobile SDK and a Python SDK. 📖 Documentation · 🚀 How to Start · 🌐 Try in the browser · 💬 Discord [!WARNING] IronBCI-8 is not a medical device and has not been certified by any regulator for use with the human body. It is a tool for research, education and engineering. You use…

完整内容见 GitHub 原始 README 或本页 。

常见问题

ironbci 用什么语言开发?

主要使用 Python 编写,目前有 643 个 Star。

如何获取 ironbci 的源码?

可以直接克隆仓库:git clone https://github.com/pieeg-club/ironbci.git,默认分支为 master;安装与运行步骤见仓库 README。

ironbci 最近还在维护吗?

仓库最近一次更新为 1 周前,当前有 2 个未关闭 Issue;Star 数为 643,可作为社区活跃度的参考。

关于

Wearable (BLE) Brain-Computer Interface, ADS1299 and STM32 with SDK for mobile application

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

语言占比

Python

README

IronBCI-8

A wireless brain-computer interface that fits in your hand.

Low-cost, open-source, wearable 8-channel BCI with Bluetooth LE, a mobile SDK and a Python SDK.

📖 Documentation · 🚀 How to Start · 🌐 Try in the browser · 💬 Discord

IronBCI-8 with electrodes and the Android app
Warning 警告

IronBCI-8 is not a medical device and has not been certified by any regulator for use with the human body. It is a tool for research, education and engineering. You use it at your own risk.

Caution 注意

Battery only. IronBCI-8 runs from its own LiPo battery. Never wear it while it is charging over USB. Check the battery polarity before connecting: a reversed battery damages the board. Read the Safety page and the liability notice.

At a glance

Channels 8 biosignal inputs, plus reference and bias
Converter TI ADS1299, 24-bit, simultaneous sampling
Sample rate 250 SPS
Signals EEG, EMG, ECG, EOG
Microcontroller STM32
Wireless Bluetooth Low Energy, appears as EAREEG (some units IronBCI)
Electrodes Dry or wet Ag/AgCl, 2.54 mm header
Battery LiPo, 200 mAh recommended, 2.0 mm JST, charged over Micro USB
Software PiEEG Cloud (browser), Android app, PiEEG Server, Python SDK, JavaScript SDK

How it works

 Electrodes 1–8 ─┐
 Reference (ear) ┼─► ADC board ─► BLE board ─► Bluetooth LE
 Bias (ear) ─────┘   (ADS1299)    (STM32)        │
                         ▲                       ├ cloud.pieeg.com
       LiPo battery ─► Power board               ├ Android app
                                                 ├ PiEEG Server
                                                 └ Python / JS SDK
The three IronBCI-8 boards: ADC, BLE and power

Quick start

  1. Connect the battery to the JST connector under the board. Check the polarity first.
  2. Charge: Switch 1 ON, Switch 2 OFF, plug in Micro USB. LED 1 = charging, LED 2 = full. Unplug the USB when done.
  3. Connect 8 electrodes, a reference ear clip and a bias ear clip.
  4. Switch on: both switches ON. The board starts advertising over Bluetooth.
  5. Connect with any of these (no pairing in system settings needed):
Option How
Browser (fastest) Open cloud.pieeg.com in Chrome or Edge → PiEEG Devices → IronBCI
Android Install mobile_app/mobile_sdk.apk, choose 8 ch in settings
PiEEG Server pip install "pieeg-server[ironbci]" then pieeg-server --device ironbci8
Python pip install bleak matplotlib numpy then python SDK/BLE_General/3.Read_data_graph.py

When connected, the BLE LED turns on and 8 channels stream at 250 samples per second.

Full walkthrough: docs.pieeg.com → IronBCI-8 → How to Start

Battery, switches and LEDs

Battery connector polarity: match the black wire to GND
Mode Switch 1 (battery) Switch 2 (data)
Recording ON ON
Charging ON OFF
Switch 1 turns on the battery, Switch 2 starts the data flow
LED Meaning
LED 1 Charging
LED 2 Battery fully charged
BLE LED Bluetooth connection active

Wiring

Input Electrode Purpose
Channels 1–8 EEG electrodes in a cap or headset (10-20 system) Signal
Reference Ear clip on one earlobe Common 0 µV point for all channels
Bias Ear clip on the other earlobe Cancels common-mode noise (mains hum)
Electrode, reference and bias connections

Suggested positions (from the IronBCI paper): F7, Fz, F8, C3, C4, T5, Pz, T6.

Software

Python SDK

Scripts built on bleak in SDK/BLE_General:

Script What it does
1.Find_Device.py Scan and print the device’s Bluetooth address
2.Read_data.py Connect and print values in µV
3.Read_data_graph.py Live graph of all 8 channels
4.Read_gpaph_Autoscale.py Live graph with automatic scaling
pip install bleak matplotlib numpy scipy
cd SDK/BLE_General
python 1.Find_Device.py
python 3.Read_data_graph.py

BLE protocol: data characteristic 0000fe42-8e22-4541-9d4c-21edae82ed19 (notify), 8 channels × 3 bytes (24-bit big-endian two’s complement) per sample. Details: Specification.

PiEEG Server

pip install "pieeg-server[ironbci]"
pieeg-server --device ironbci8                                   # scan and connect
pieeg-server --device ironbci8 --ble-address AA:BB:CC:DD:EE:FF   # skip the scan

Dashboard at http://localhost:1617, plus recording, WebSocket, LSL and VRChat OSC.

PiEEG Server dashboard

Android app

Install mobile_app/mobile_sdk.apk (MIT licence), choose 8 ch in settings, press Save to record and Stop to finish, then share the file. The Flutter source is in mobile_app/EEG-Flutter-App-master.zip. Based on BodyPress.

JavaScript SDK

const eeg = new PiEEG();
await eeg.connectBLE();          // IronBCI-8 is the default; call from a click handler

See the JavaScript SDK docs.

All options: Software docs

Example signals

Recorded with dry Ag/AgCl electrodes, no gel, at 250 SPS.

EEG: alpha rhythm (eyes closed and open) · dataset

Alpha rhythm test with wavelet transform

EEG: chewing and blinking artifacts

Chewing and blinking artifacts

Projects

Videos

Device introduction Mobile SDK app test How to program IronBCI
Device introduction Mobile SDK app test How to program a BCI

What’s in this repository

Folder Content
SDK/BLE_General Python BLE SDK: find, read, live graphs
mobile_app Android app (.apk) and Flutter source
dataset Alpha test, raw and 8–12 Hz filtered (dry electrodes, 250 SPS)
Scripts_for_work_with_dataset Band-pass filter and plot recordings
Chat_GPT Real-time emotion detection with an OpenAI model
3D_headset Link to the 3D-printable headset
Supplementary files Images used in the original README

Documentation

Page
IronBCI-8 Intro Overview, comparison with PiEEG-8
What’s in the Box What you need besides the board
How to Start Battery, charging, switches, first connection
Electrodes & Battery Wiring, montage, switches and LEDs
Software PiEEG Cloud, Android, PiEEG Server, Python, JavaScript
Signals & Projects Example recordings, dataset, ChatGPT project
Specification Hardware, BLE data format, µV conversion
Troubleshooting Battery, Bluetooth and signal fixes
Safety Battery-only operation and LiPo care

Citation

If you use IronBCI-8 in research, please cite:

I. Rakhmatulin. IronBCI: A Low-Cost, Open-Source BCI Platform with Mobile SDK for
Rapid Neurotech Prototyping. Preprints 2025, 2025071198.
DOI: 10.20944/preprints202507.1198.v1

Contact

评论

暂无评论