Consumer EEG Devices¶
AIME LOC includes built-in presets for popular consumer EEG headsets. Presets automatically configure channel names and expected sampling rates.
Supported Devices¶
| Device | Preset | Channels | Default Sfreq | Price Range |
|---|---|---|---|---|
| Muse 2 / Muse S | "muse" |
4 (TP9, AF7, AF8, TP10) | 256 Hz | $250–350 |
| OpenBCI Cyton | "openbci_cyton" |
8 | 250 Hz | $500–1000 |
| Emotiv EPOC X | "emotiv_epoc" |
14 | 256 Hz | $850 |
| Neurosity Crown | "neurosity" |
8 | 256 Hz | $800 |
| g.tec Unicorn | "gtec_unicorn" |
8 | 250 Hz | $1500 |
Using Device Presets¶
from aime_loc import LOC
from aime_loc.eeg import EEG
loc = LOC()
eeg = EEG(loc)
# Load with device preset
recording = eeg.load("session.csv", device="muse")
# Preset auto-sets:
# - Channel names: ["TP9", "AF7", "AF8", "TP10"]
# - Expected sfreq: 256 Hz
Override the sampling rate if your export uses a different rate:
Per-Device Guides¶
Muse 2 / Muse S¶
The Muse is the most accessible consumer EEG with 4 channels covering frontal and temporal regions.
Export options:
- Mind Monitor (recommended) — exports CSV with timestamps
- Muse Direct — exports EDF or CSV
- BlueMuse (Windows) — LSL stream, can save to CSV
# From Mind Monitor CSV export
recording = eeg.load("muse_recording.csv", device="muse")
recording.preprocess(bandpass=(1.0, 40.0), notch=60.0)
epochs = recording.extract_epochs(duration=2.0)
profile = eeg.score(epochs)
Muse Signal Quality
With only 4 channels, Muse data has lower spatial resolution than research-grade systems. TC scores may have higher variance but the overall profile shape is still informative. For best results, ensure good electrode contact (adjust headband fit) and record in a quiet environment.
OpenBCI Cyton¶
8-channel open-source EEG board with customizable electrode placement.
# From OpenBCI GUI CSV export
recording = eeg.load("openbci_session.csv", device="openbci_cyton")
recording.preprocess()
epochs = recording.extract_epochs()
profile = eeg.score(epochs)
Emotiv EPOC X¶
14-channel wireless headset popular in research and consumer applications.
# From EmotivPRO CSV export
recording = eeg.load("emotiv_export.csv", device="emotiv_epoc")
recording.preprocess()
epochs = recording.extract_epochs()
profile = eeg.score(epochs)
Neurosity Crown¶
8-channel headset designed for developers and researchers.
recording = eeg.load("neurosity_data.csv", device="neurosity")
recording.preprocess()
epochs = recording.extract_epochs()
profile = eeg.score(epochs)
g.tec Unicorn¶
Research-grade 8-channel wireless EEG with high signal quality.
recording = eeg.load("unicorn_data.csv", device="gtec_unicorn")
recording.preprocess()
epochs = recording.extract_epochs()
profile = eeg.score(epochs)
Signal Quality Tips¶
- Electrode contact — Ensure all electrodes make good skin contact. Check impedance if your device supports it.
- Environment — Record in a quiet room away from electrical equipment.
- Movement — Minimize head and jaw movement during recording.
- Duration — Record at least 2 minutes for stable TC scores. 5+ minutes recommended.
- Eyes — Be consistent: eyes-open or eyes-closed throughout the recording, or clearly segment the two conditions.
Minimum Requirements for TC Scoring¶
| Parameter | Minimum | Recommended |
|---|---|---|
| Channels | 2 | 4+ |
| Sample rate | 128 Hz | 256+ Hz |
| Duration | 60s | 300+ s |
| Epoch count | 10 | 50+ |
Listing Available Presets¶
from aime_loc.eeg._montage import DEVICE_PRESETS
for name, preset in DEVICE_PRESETS.items():
print(f"{name}: {len(preset.channels)}ch @ {preset.sfreq}Hz")
print(f" Channels: {preset.channels}")
Next Steps¶
- EEG Quick Start — Full pipeline walkthrough
- Loading EEG Data — All supported formats
- Preprocessing — Preprocessing recommendations by device