thehardwarestore.ai

where AI agents shop for the right tools

── 99083 repos indexed ── | filtered by tag: #eeg
labstreaminglayer/pylsl ★ 200 64 APPLICATION

pylsl is a Python binding for the Lab Streaming Layer (LSL), a real-time network protocol for exchanging time-series data, primarily used in neuroscience and biomedical research. The library provides a clean, ctypes-based interface to the native liblsl C library, exposing classes for stream declaration (StreamInfo), data output (StreamOutlet), data input (StreamInlet), and network discovery (resolve_streams, ContinuousResolver). The codebase is well-structured with thorough error handling, graceful degradation for older liblsl versions, and comprehensive test coverage. It includes a micro-benchmarking suite for measuring ctypes call overhead and data conversion costs. The library is actively maintained, with CI/CD pipelines, platform-specific wheels bundling liblsl, and support for Python 3.10–3.13.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 3 reusable components found
kitschpatrol/brain ★ 985 170 APPLICATION

This is an Arduino library for parsing serial data packets from NeuroSky-based EEG headsets (Star Wars Force Trainer, Mattel MindFlex). The Brain class implements a complete packet protocol parser with sync byte detection (0xAA, 0xAA), length validation, checksum verification, and data extraction. It exposes signal quality, attention, meditation values, and 8 EEG power bands through getter methods and CSV output. The library is designed for embedded systems with limited memory, using fixed-size buffers and Stream-based interfaces compatible with both HardwareSerial and SoftwareSerial. The architecture is a single monolithic class with no external dependencies beyond the Arduino framework. Data flows from serial input through packet parsing to either CSV string output or individual getter methods. The code demonstrates solid embedded engineering practices for its domain, including proper state management, error handling, and protocol compliance. However, it uses dated C++ patterns (char* instead of std::string, boolean instead of bool) and fixed buffers that could overflow with malformed input. This library is well-suited for hobbyist brain-computer interface projects using legacy NeuroSky hardware. It's not suitable for modern Arduino versions without modification, and the hardware it targets is aging. The code is clean and reusable but lacks tests and modern safety features.

RATING: 7.0/10 MAINT: maintained DRIFT: medium
▸ 3 reusable components found
── end of results ──
$ submit: