Software
IronBCI-32 appears on your computer as a USB serial port. Pick the option that fits what you want to do.
| Best for | Runs on | Install | |
|---|---|---|---|
| PiEEG Server | Dashboard, recording, LSL, OSC, WebSocket stream to any language | Windows, macOS, Linux | pip |
| BrainFlow | Research pipelines in Python, C++, Java, C#, R, Julia… | Windows, macOS, Linux, Raspberry Pi | pip install brainflow |
| PiEEG Cloud | Fastest start, dashboards and experiences | Chrome or Edge | None |
| Example scripts | Plotting and saving with BrainFlow | Python | Clone the repo |
Find the serial port first
| System | How | Looks like |
|---|---|---|
| Windows | Device Manager → Ports (COM & LPT) | COM3 |
| Linux | ls /dev/ttyACM* | /dev/ttyACM0 |
| macOS | ls /dev/tty.usbmodem* | /dev/tty.usbmodem… |
The board streams as soon as it is powered, so the port is ready straight away.
PiEEG Server
A pure-Python driver (no BrainFlow needed) with a browser dashboard and a real-time stream.
pip install "pieeg-server[ironbci32]" # Python 3.10+, installs pyserial
pieeg-server --device ironbci32 --serial-port COM3 # Windows
pieeg-server --device ironbci32 --serial-port /dev/ttyACM0 # Linux / macOS
| Address | What it is |
|---|---|
http://localhost:1617 | Browser dashboard |
ws://localhost:1616 | WebSocket stream: JSON frames with 32 channels in µV |
Common options
pieeg-server --device ironbci32 --serial-port COM3 --filter # 1–40 Hz band-pass
pieeg-server --device ironbci32 --serial-port COM3 --record session.csv # record while streaming
pieeg-server --device ironbci32 --serial-port COM3 --lsl # Lab Streaming Layer
pieeg-server record session.csv --device ironbci32 --serial-port COM3 # CSV only, no serverMore: Quick Start · Configuration · WebSocket API · LSL
BrainFlow
IronBCI-32 is supported in BrainFlow (opens in a new tab) as BoardIds.IRONBCI_32_BOARD (ID 65). The only setting is the serial port.
pip install brainflowimport time
from brainflow.board_shim import BoardShim, BrainFlowInputParams, BoardIds
params = BrainFlowInputParams()
params.serial_port = "COM3" # or "/dev/ttyACM0"
board = BoardShim(BoardIds.IRONBCI_32_BOARD, params)
board.prepare_session()
board.start_stream()
time.sleep(10)
data = board.get_board_data() # rows = channels, columns = samples
board.stop_stream()
board.release_session()
eeg = BoardShim.get_eeg_channels(BoardIds.IRONBCI_32_BOARD)
print(data[eeg].shape) # (32, number of samples)The repository scripts were tested with BrainFlow 5.20.1 and Python 3.12.4. For questions about BrainFlow itself, use the BrainFlow Slack (opens in a new tab).
On Linux and macOS you may need permission to open the serial port: add your user to the dialout group (sudo usermod -aG dialout $USER, then log in again) or run with sudo.
PiEEG Cloud (browser)
- Open cloud.pieeg.com (opens in a new tab) in Chrome or Edge.
- In the Session Lobby, open the PiEEG Devices tab and choose IronBCI-32.
- Pick the serial port in the browser's window.
32 channels at 500 Hz over Web Serial, with live waveforms, spectra and topographic maps. More: PiEEG Cloud.
Example scripts
In SDK (opens in a new tab) on GitHub. All use BrainFlow.
| Script | What it does |
|---|---|
Real_time_visualisation/1.One_ch_plot.py | Live plot of one channel |
Real_time_visualisation/2.All_channels.py | Live plot of all 32 channels |
Save_data/1.Save_5_sec_1ch.py | Record 5 seconds of one channel |
Save_data/2.All_ch.py | Record 10 seconds of all 32 channels to Excel (eeg_32ch_10s.xlsx) |
Not_real_time/Plot_data.py | Plot a saved file with an 8–12 Hz filter and wavelet view |
pip install brainflow pyqtgraph PyQt5 pandas openpyxl scipy matplotlib PyWavelets
git clone https://github.com/pieeg-club/ironbci-32.git
cd ironbci-32/SDK/Real_time_visualisation
python 2.All_channels.py --serial-port COM3 # or /dev/ttyACM0The save scripts have the port COM3 written in the code. Change it to your port. In 2.All_ch.py, also fix the typo IRONBBCI_32_BOARD → IRONBCI_32_BOARD on the BoardShim(...) line, or the script stops with an error.

Next
- Signals & Datasets: sample recordings and a 32-channel dataset
- Specification: serial frame format and µV conversion