Installation Guide

System Requirements

  • Platform: macOS (required)

  • Python: 3.9 or newer

  • Hardware: MW75 Neuro headphones paired in macOS Bluetooth settings

The MW75 EEG Streamer currently supports macOS only, using macOS-specific Bluetooth frameworks through PyObjC.

Basic Installation

First, install uv (recommended Python package manager):

# Install uv - see https://docs.astral.sh/uv/getting-started/installation/
curl -LsSf https://astral.sh/uv/install.sh | sh

# Or on macOS with Homebrew:
brew install uv

Option 2: From Source

# Clone the repository
git clone https://github.com/arctop/mw75-streamer.git
cd mw75-streamer

# Using uv (recommended)
uv venv && uv pip install -e ".[all]"

# OR alternatively using pip
python -m venv .venv
source .venv/bin/activate
pip install -e ".[all]"

Optional Dependencies

The package includes several optional dependency groups:

WebSocket Support

uv pip install "mw75-streamer[websocket]"

This adds: - websocket-client>=1.6.0 for WebSocket streaming

Lab Streaming Layer (LSL) Support

uv pip install "mw75-streamer[lsl]"

This adds: - pylsl>=1.16.0 for LSL streaming

For macOS LSL support, you also need:

brew install labstreaminglayer/tap/lsl
export DYLD_LIBRARY_PATH="/opt/homebrew/lib:$DYLD_LIBRARY_PATH"

Testing Utilities

uv pip install "mw75-streamer[testing]"

This adds: - websockets>=11.0.0 for the test WebSocket server

Development Dependencies

uv pip install "mw75-streamer[dev]"

This includes all optional dependencies plus development tools: - pytest>=7.0.0 - black>=23.0.0 - flake8>=6.0.0 - mypy>=1.0.0

All Dependencies

uv pip install "mw75-streamer[all]"

This installs WebSocket, LSL, and testing dependencies.

Documentation Dependencies

For building documentation:

uv pip install "mw75-streamer[docs]"

This includes: - sphinx>=7.0.0 - sphinx-rtd-theme>=2.0.0 - sphinx-autodoc-typehints>=1.25.0 - myst-parser>=2.0.0

Hardware Setup

MW75 Neuro Headphones

  1. Pair your MW75 Neuro headphones with your Mac using the standard macOS Bluetooth settings

  2. Ensure the headphones are connected before running the streamer

  3. Position the headphones properly on your head for good electrode contact

The MW75 Neuro headphones must be properly paired and connected via Bluetooth before the streamer can activate EEG mode.

Verification

Test your installation:

# Check that the package is installed
uv run python -c "import mw75_streamer; print('Installation successful!')"

# Test the CLI
uv run -m mw75_streamer --help

# Start a basic test
uv run -m mw75_streamer.testing

Troubleshooting

For comprehensive troubleshooting information, see the Troubleshooting Guide guide.

Common Installation Issues

PyObjC Installation Fails

On some macOS versions, PyObjC might fail to install. Try:

# Update pip and try again
pip install --upgrade pip setuptools wheel
uv pip install "mw75-streamer[all]"
LSL Library Not Found

If you get LSL import errors:

# Make sure LSL is installed
brew install labstreaminglayer/tap/lsl

# Set the library path
export DYLD_LIBRARY_PATH="/opt/homebrew/lib:$DYLD_LIBRARY_PATH"

# Add to your shell profile for persistence
echo 'export DYLD_LIBRARY_PATH="/opt/homebrew/lib:$DYLD_LIBRARY_PATH"' >> ~/.zshrc
Permission Issues

On some systems, Bluetooth access might require additional permissions. Check:

  • System Preferences → Security & Privacy → Privacy → Bluetooth

  • Ensure Terminal/your Python environment has Bluetooth access

Next Steps

After installation, see the Quick Start Guide guide for basic usage examples.

If you encounter any issues, check the Troubleshooting Guide guide for solutions to common problems.