kowalej / BlueMuse

Windows 10 app to stream data from Muse EEG headsets via LSL (Lab Streaming Layer).
GNU General Public License v3.0
191 stars 33 forks source link

BlueMuse

Features

Screenshots

Command Line Interface

All commands will launch BlueMuse if it isn't already open.

Basic Operations

Start BlueMuse:

start bluemuse:

Refresh Bluetooth list (used only while running):

start bluemuse://refresh

Close the program:

start bluemuse://shutdown

Streaming

Start streaming first connected (online) Muse:

start bluemuse://start?streamfirst=true

Start streaming specific Muse(s) - by MAC address or device name:

start bluemuse://start?addresses={MAC1 or Name1},{MAC2 or Name2},{MAC3 or Name3}....

Start streaming all Muses:

start bluemuse://start?startall

Stop streaming specific Muse(s) - by MAC address or device name:

start bluemuse://stop?addresses={MAC1 or Name1},{MAC2 or Name2},{MAC3 or Name3},....

Stop streaming all Muses:

start bluemuse://stop?stopall

"startall" and "stopall" are not meant for launch, they are used when BlueMuse is already running.

Settings

Change primary timestamp format:

 start bluemuse://setting?key=primary_timestamp_format!value=<BLUEMUSE|LSL_LOCAL_CLOCK_BLUEMUSE|LSL_LOCAL_CLOCK_NATIVE>

Change secondary timestamp format:

 start bluemuse://setting?key=secondary_timestamp_format!value=<BLUEMUSE|LSL_LOCAL_CLOCK_BLUEMUSE|LSL_LOCAL_CLOCK_NATIVE|NONE>

Change channel data type:

 start bluemuse://setting?key=channel_data_type!value=<float32|double64>

Enable / disable EEG data (applies when opening streams):

 start bluemuse://setting?key=eeg_enabled!value=<true|false>

Enable / disable accelerometer data (applies when opening streams):

 start bluemuse://setting?key=accelerometer_enabled!value=<true|false>

Enable / disable gyroscope data (applies when opening streams):

 start bluemuse://setting?key=gyroscope_enabled!value=<true|false>

Enable / disable PPG data (applies when opening streams):

 start bluemuse://setting?key=ppg_enabled!value=<true|false>

Enable / disable telemetry data (applies when opening streams):

 start bluemuse://setting?key=telemetry_enabled!value=<true|false>

Toggle "always pair":

 start bluemuse://setting?key=always_pair!value=<true|false>

Installation

Requires Windows 10 with Fall 2017 Creators Update - Version 10.0.15063 aka Windows 10 (1703).

First Step

Download latest version and unzip, then follow one of the methods below.

Auto Install (Recommended)

  1. Navigate to the unzipped app folder and run the .\InstallBlueMuse.ps1 PowerShell command (right click and choose Run with PowerShell or execute from terminal directly):

  2. Follow the prompts - the script should automatically install the security certificate, all dependencies, and the BlueMuse app.

Manual Install

  1. Double click BlueMuse_xxx.cer then click "Install Certificate".

  2. Select current user or local machine depending on preference and click "Next".

  3. Select "Place all certificates in the following store".

  4. Press "Browse...".

  5. Select install for Local Machine.

  6. Select "Trusted Root Certification Authorities" and click "OK".

  7. Click "Next" and click "Finish" to install certificate.

  8. Open Dependencies folder and appropriate folder for your machine architecture.

  9. Double click and install Microsoft.NET.Native.Framework.1.7 and Microsoft.NET.Native.Runtime.1.7.

  10. Finally, double click and install BlueMuse_xxx.appxbundle.

Versions

Latest - 2.4.0.0

Older

Note: version 2.0.0.0 and older version are available from the DistArchived folder. New versions (including 2.0.0.0) will be published to the releases page.

Notes

Timestamp Formats:

Troubleshooting

If your Muse is not showing up after searching for awhile:

  1. Ensure Muse is removed from "Bluetooth & other devices" list in control panel.
  2. Reset Muse - hold down power button until device turns off then back on.
  3. Make sure Muse is within reasonable range of your computer. Some built in Bluetooth antennas are not very powerful.

Logs:

The main app (BlueMuse) and LSL Bridge both write log files for various events and exceptions. These may help in troubleshooting issues. The files can be found within AppData:

BlueMuse:

C:\Users\{Username}\AppData\Local\Packages\07220b98-ffa5-4000-9f7c-e168a00899a6...\LocalState\Logs\BlueMuse-Log-{Timestamp}.log

LSLBridge:

C:\Users\{Username}\AppData\Local\Packages\07220b98-ffa5-4000-9f7c-e168a00899a6...\LocalCache\Local\Logs\LSLBridge-Log-{Timestamp}.log

If working on VS Solution - missing references in LSLBridge project:

See https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-enhance