Replacement for MyoConnect on linux without the official Myo dongle.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information. Description. Jul 31, 2015 Added credits Jul 31, 2015
myo_dicts,py Dicts about the bluetooth protocol. Jul 31, 2015 Sample/starter program. Jul 31, 2015

#Dongleless Myo

For if you don't have your dongle but just need to control a linux system anyway, with a different dongle or you computer's built in bluetooth.


First, get a linux system, it's mainly been tested on debian and ubuntu.

Second, go through the setup for bluez and bluepy, and run the bluepy test program to make sure it works. (This step can be a bit of a pain). Make sure the bluepy files are somewhere python can see.

Download and put it somewhere convenient to import where it can import bluepy, and put in the same folder.


  • Currently does not work with multiple myos. It appears bluepy can only listen to one connection at a time, and switching back and forth quickly seems to cause both myos to glitch.

  • There is a glitch where sometimes the myo stops receiving classifier indications, almost always after being taken off while the program is running. Plugging the myo in or letting it go to sleep by placing it on a flat surface for ~30 seconds fixes it.

  • Currently has a list of handles to read/write from, rather than using the uuids. It's possible, though unlikely, that a future firmware update will change those handles, in which case they would need to be updated in the code.

  • Can't provide emg and pose data at the same time. Currently, it provides emg until it's synced, then provides poses instead.


To use, simply import from your project directory or somewhere on your path, and call with a dictionary from event names to functions which should be called to respond to them. A sample is included. Any event not in the dictionary will simply do nothing.

The myo argument to the functions represents the myo, but currently the only function it has is vibrate() which takes an int argument from 0-3 representing the vibration length.