India's first open-hardware 32-channel EEG / biopotential acquisition board — a quad-ADS1299 analog front end driven by a dual-ATmega328 controller, designed in EAGLE by Soul Scientific in 2015, and just now open-sourced under Apache-2.0.
Adam-EEG packs four Texas Instruments ADS1299 24-bit, 8-channel simultaneous-sampling analog front ends onto one board — 32 truly simultaneous EEG channels, daisy-chained over a single SPI bus — with onboard microSD logging for fully standalone (untethered) recording. No host PC, no muxing, no compromise on channel count to hit a price point.
Why this exists
Research-grade multichannel EEG hardware is expensive and closed. A clinical 32-channel amplifier system routinely runs into five figures (USD), locked behind proprietary software and NDAs on the actual analog front-end design. If you wanted to actually learn how a real biopotential acquisition chain works — the bias-drive loop, the lead-off detection, the reference architecture — you couldn't just open the schematic and look.
Adam-EEG set out to prove something narrower and more useful: that a 32-channel, simultaneous-sampling, standalone-logging EEG board could be built from commodity parts, in a hobbyist CAD tool (EAGLE, not a $10k professional suite), at a fraction of the cost — and that the full schematic and board could just be public. Not a black box, not a paywalled datasheet. A real board you can open, trace net-by-net, and build.
Why ADS1299, and why four of them
The ADS1299 isn't just "a 24-bit ADC" — it's purpose-built for biopotential acquisition in a way generic ADCs aren't:
- Integrated right-leg-drive (RLD) / bias circuitry — actively cancels common-mode noise (mains hum, motion artifact) instead of relying purely on a passive reference.
- Lead-off detection built into the analog front end — the chip itself can tell you when an electrode has come loose, without extra circuitry.
- EEG-characterized input noise — TI specs and validates this part against the actual noise floor EEG signals live in (single-digit microvolts), not just generic ADC noise numbers.
A single ADS1299 gives you 8 simultaneous channels. Adam-EEG uses four, daisy-chained over one SPI bus, to hit 32 — full-coverage, research-grade channel density, still built entirely from a part TI sells openly with a public datasheet.
Technical specifications
| Subsystem | Detail |
|---|---|
| Analog front end | 4 × Texas Instruments ADS1299 — 24-bit, 8-channel, simultaneous-sampling, low-noise biopotential ADC |
| Total channels | 32 unipolar channels + common reference, fully simultaneous (no muxing) |
| AFE interconnect | Multi-device SPI daisy-chain — shared SCLK/DIN/DOUT/DRDY, individual CS1–CS4 per ADS1299 |
| Controller | 2 × ATmega328 (SMD, Arduino-compatible core) |
| Programming | 2 × 6-pin AVR ISP headers |
| Onboard storage | microSD socket — standalone data logging, no host PC required |
| Power | LM2663 switched-capacitor inverter + LP5907 / TPS723xx LDOs for clean split analog rails |
| Clocking | 2 × crystal oscillators, one confirmed 32.768 kHz (real-time/watchdog clock) |
| Board | 2-layer, 97.2 × 81.9 mm (~79.6 cm²), 2 × Ø3.2 mm mounting holes |
| Complexity | 354 schematic parts / 229 placed board elements |
| CAD format | EAGLE 6.6.0 XML (.sch / .brd) — single schematic sheet |
| License | Apache License 2.0 |
Connectors & pinout
Pulled directly from the schematic's named nets, not reverse-engineered from silkscreen:
| Connector | Type | Signals | Role |
|---|---|---|---|
ARDUINO_CONN |
1×11 header |
CS1–CS4, SCLK, DIN, DOUT, DRDY, RST, PD, STRT
|
Full SPI daisy-chain + control breakout — lets an external Arduino-compatible host drive all 4 ADS1299 directly, independent of the onboard ATmega328s |
ELECTRODES_P&N |
1×18 header | 18 electrode nets | Primary differential (P/N) electrode input header |
ELECTRODES / ELECTRODES1 / ELECTRODES2
|
3× 1×8 header | Per-channel buffered outputs | Buffered channel-output test/tap points for 3 of the 4 ADS1299s |
POWER_PIN |
1×2 header |
+5V, AGND
|
Main board power input |
JP3–JP5
|
1×2 jumpers |
DIN/DOUT/SCLK
|
In-line jumpers on the SPI data/clock lines (break/test-point access) |
Passive component reference
Useful if you're sanity-checking a BOM or planning a respin — pulled from the real value= attributes in the schematic:
| Component class | Dominant value | Count | Likely role |
|---|---|---|---|
| Resistor | 5 kΩ | 60 of 69 | Per-channel bias/lead-off network (matches ADS1299's typical RLD topology) |
| Capacitor | 4.7 nF | 48 of 127 | Per-channel input RC filtering |
| Capacitor | 1 µF | 36 of 127 | Local/bulk decoupling |
| Capacitor | 0.1 µF | 28 of 127 | High-frequency decoupling |
| Capacitor | 10 µF / 100 µF | 7 / 4 | Bulk supply-rail reservoirs |
System architecture
Each ADS1299 samples 8 channels simultaneously; the four devices share one SPI bus in TI's standard multi-device daisy-chain topology (DOUT of one feeds DIN of the next), so all 32 channels are read out in lockstep with no channel-to-channel skew — an important property for EEG, where you actually care about phase relationships between electrode sites.
ADS1299 #1 (ch 1-8) --DOUT--> ADS1299 #2 (ch 9-16) --DOUT--> ADS1299 #3 (ch 17-24) --DOUT--> ADS1299 #4 (ch 25-32)
| |
+-------------------- shared SCLK / DIN / DRDY, individual CS1-CS4 -----------------------+
|
Dual ATmega328 controller
|
microSD (standalone logging)
The dual ATmega328 controller manages the chain and streams samples straight to the onboard microSD card — a full recording session needs nothing plugged in but a battery. A separate ARDUINO_CONN breakout also exposes the raw SPI + control bus, so if you'd rather drive the AFE chain from an external Arduino-compatible board (for custom firmware, a different sample-rate scheme, whatever), you can, without touching the onboard MCUs at all.
How this compares to other open EEG hardware
Adam-EEG isn't the only open board built around biopotential-specific AFEs, and it's worth being honest about where it sits:
- OpenBCI Cyton uses a single ADS1299 (8 channels), extendable to 16 with a Daisy module. Well-documented, widely used, but 8/16ch — Adam-EEG's quad-chip approach gets to 32ch on one board without a second module.
- FreeEEG32 takes a different path to the same 32-channel target: a single Analog Devices AD7779 chip instead of four ADS1299s. Fewer parts, but a different noise/cost tradeoff, and AD7779 isn't biopotential-specialized the way ADS1299 is (no built-in RLD/lead-off).
- UpsideDownLabs BioAmp family is excellent but scoped differently — single/few-channel EMG/ECG/EOG boards, not dense multichannel EEG.
If your goal is specifically dense, simultaneous, biopotential-tuned channels without betting on a chip that isn't purpose-built for it, the quad-ADS1299 approach is a real, validated design point — not just "more chips for the sake of it."
Building one
- Install Autodesk EAGLE — a free tier is sufficient; this board's ≤80 cm², 2-layer, single-sheet design was scoped to fit EAGLE's classic free-tier limits.
- Clone the repo and unzip
EEG_64_1.zip. - Open
EEG_64.schfor the schematic orEEG_64_1.brdfor the board layout. - Gerbers aren't checked into the repo — export them from the
.brdvia EAGLE's CAM processor when you're ready to fab.
Safety & disclaimer
This is an open-hardware research/prototyping board, not a certified medical device. It has not undergone FDA/CE or equivalent regulatory clearance, and no formal patient-isolation or leakage-current certification has been performed. If you build one: power it only from isolated, battery-backed supplies, never connect a build to mains-powered equipment while it's attached to a person, and don't use it for clinical diagnosis or treatment decisions.
Full source
Complete EAGLE schematic + board files, this same technical writeup (plus a bit more detail) as the README, and contribution guidelines are all in the repo:
Issues and PRs are genuinely welcome — a routing improvement, a KiCad conversion (no open port exists yet), a BOM/sourcing update, or just a build log from your own fab run. Open an issue first so it's easy to track.
Top comments (0)