This library helps you connect to the Muse Headset. http://www.choosemuse.com/
The Muse broadcasts over Bluetooth LE (Low Energy).
To keep your application free of external dependencies, this library does not include external Muse drivers. It translates the messages comming from the Muse directly from the Bluetooth channel and translates them into simple classes.
These are dotnet core SDK projects, targeting net framework.
The Muse.Net library uses the Bluetooth APIs from WinRT (Uwp) The DLL's included in the source code and copied to the output folder. These libraries are not cross platform / netcoreapp compatible.
These are included in the package, so there is no need to add them manually. However they are normally found here:
This library is built on top of the Gatt (Generic Attributes) interface for Bluetooth. https://www.bluetooth.com/specifications/gatt/generic-attributes-overview
THe Muse Headset has several sensors:
The device broadcasts each sensor output over a separate Gatt channel (characteristic). Broadcasts only occur over channels to which your app is subscribed.
var client = new MuseClient(MyMuse.Address);
var ok = await client.Connect();
if (ok)
{
await client.Subscribe(
Channel.EEG_AF7,
Channel.EEG_AF8,
Channel.EEG_TP10,
Channel.EEG_TP9,
Channel.EEG_AUX);
client.NotifyEeg += Client_NotifyEeg;
await client.Resume();
}The MuseClient has four events you can subscribe to: NotifyTelemetry, NotifyAccelerometer, NotifyGyroscope, NotifyEeg. Telemetry shows you battery, voltage and temperature. All the 5 EEG channels are broadcasted over the NotifyEeg event.
Thanks to Carter Appleton for pointing a way to access WinRT. Win10Win32Bluetooth
A lot of the technology in this library has been based on muse-js