Imported from Jak-Kolb/eeg_board (
AGENTS.md). Install upstream withnpx skills add Jak-Kolb/eeg_board. Copyright stays with the author.
Agent notes
eeg32 is an open-source 32-channel research EEG acquisition device. It delivers raw samples. EEG analysis belongs to external software.
Read PROJECT_BRIEF.md before changing the design. Targets written there are decided. A statement is a project specification only after it is written in docs/. Do not invent channel maps, power trees, safety limits, part numbers, pinouts, or register values.
The repository is initialized and undesigned. Do not add schematic content, PCB layout, parts, or firmware until a task asks for that work.
Scope
In this repository: acquisition electronics, PCB, electrode interface, headgear, enclosure, manufacturing, bring-up, hardware validation, and minimal embedded firmware for acquisition and raw-data transport.
The embedded system may configure the ADCs, synchronize them, acquire raw samples, format, index, timestamp, buffer, checksum, frame, store, and transport those samples, and report lead-off or impedance diagnostics.
Outside this repository: software EEG filters, notch filters, artifact rejection, rereferencing, spectral analysis, feature extraction, classification, neural decoding, and ML inference.
Layout
docs/— design record. Numbered files are the spec, in the order a design is written.DECISIONS.mdrecords a choice that closes an alternative.RISK_REGISTER.mdtracks open risks.BOM.mdis the living design BOM.hardware/mainboard/— KiCad projecteeg32-mainboard. Blank KiCad 9 project; KiCad 9 and later open it. Saving in a newer KiCad upgrades the file format.hardware/libraries/— project symbols (symbols/) and footprints (footprints/).hardware/electrode-interface/— electrode-side hardware that is not drawn on the main board.hardware/debug/— bring-up hardware that is not part of the shipped unit.hardware/manufacturing/— gerbers, fabrication BOM, pick-and-place, and fab notes for a real build.mechanical/—headgear/,electrode-holders/,enclosure/,cable-management/.firmware/— acquisition firmware only. Empty until a firmware task.test/—procedures/,fixtures/,results/.references/—datasheets/,reference-designs/,openbci/. Note the source and retrieval date when adding a file.
Each of these directories has a README with its purpose, scope, and layout. Read that README before adding files there.
Working rules
- Follow documented requirements. Ask before resolving an ambiguity that affects safety, cost, or hardware compatibility.
- Verify specifications, pinouts, footprints, registers, and timing against manufacturer documentation. Record the source and any unresolved assumption.
- Keep the schematic, PCB, BOM, firmware pin assignments, and interface notes consistent. Keep custom libraries in the repository.
- After a hardware edit, run ERC/DRC and check schematic–PCB consistency. Fix violations or document a justified exception. Do not suppress a check to make it pass.
- Design to the chosen fabricator's rules and the project's power, signal-integrity, thermal, and assembly constraints.
- Keep firmware timing bounded, interrupts short, and buffers explicitly sized. Timeouts, peripheral failures, and data loss must be visible.
- Record toolchain versions and the commands to build and check. Say which checks were simulated and which were measured on hardware.
- Update bring-up and acceptance notes with the change. Software checks do not show that a board is ready to fabricate or that hardware has been validated.
- Electrical safety notes belong in
docs/09_electrical_safety.md. Do not claim medical-device compliance. - Do not commit KiCad autosaves, lock files,
fp-info-cache, or*.kicad_prl.