Start With A Known-Good Demo
If you want the fastest path to a working browser BLE example, scaffold the BLE demo first:Requirements
- Chrome or Edge
https://orlocalhost- Bluetooth enabled on the machine
- a supported Muse-compatible EEG device
- Muse 2 and Muse S classic BLE devices
- Muse S Athena protocol v2 devices
- the synthetic Muse-compatible BLE bridge used for testing
Install
Minimal Integration
Typical Flow
- Confirm the app is running in a secure context.
- Construct
BleTransport. - Provide
athenaDecoderFactoryif you need Athena support. - Subscribe to frame and status callbacks.
- Call
startStreaming()(orconnect()thenstart()separately).
Common Gotchas
- Use
startStreaming()for the common case. It callsconnect()andstart()in one step and skips re-pairing if already connected. If you callconnect()andstart()separately, both are required — omittingstart()produces silence with no error. frame.eeg.samplesisnumber[][]laid out as[channelIdx][sampleIdx]. Each inner array is one channel. If you need interleaved format for WASM models, convert manually.- If
navigator.bluetoothis missing, you are likely in an unsupported browser or non-secure context. - If the device chooser never appears, confirm Bluetooth is enabled and the page
is served from
https://orlocalhost. - If Athena devices fail to decode, make sure you pass an
athenaDecoderFactorybacked by@elata-biosciences/eeg-web. - If you need Safari or iOS support, plan for a native bridge or hybrid strategy instead of this browser path.
Next Steps
- EEG package details: eeg-web
- BLE package details: eeg-web-ble
- Platform expectations: Compatibility