Skip to content
PerlinWarp edited this page Sep 4, 2021 · 6 revisions

Welcome to the pyomyo wiki!

Python Open-source Myo library (PyoMyo) is a driver made for the Thalmic Labs Myo that implements a Bluetooth protocol over Serial using the included dongle.

The Myo

The Myo is a consumer 8 channel armband capable of recording sEMG data at 200 Hz. The raw signal is digitised with an 8-bit analog-to-digital converter giving measurements from -128 to 127. This 8-bit signed data can be streamed directly (mode 0x03) or data can be filtered and then sent (mode 0x02). Data can also be rectified (by taking the absolute value) and filtered on the band and then streamed over Bluetooth Low Energy (BLE) at 50 Hz (mode 1).

Comparison to other libraries:

To interface with the Myo, Thalmic Labs provide Windows software that interfaces with the proprietary Bluetooth Dongle, which since 2018 can no longer be officially downloaded, but can be found online. However Thalmic Labs did release the BLE specification [18] and many third-party libraries for using the Myo exist, each with different limitations.

Multiple libraries have been developed to interface with the Myo using Python. Judging by GitHub stars, currently the most popular are Dzhu’s myo-raw and Rosenstein’s Myo-Python with 188 and 178 stars respectively.

Myo-Python

Myo-Python is a Windows-only foreign function interface for calling the C code of the now unsupported official C library. Myo-Python was last updated in 2019.

Myo-Raw

Myo-raw is a Python 2 implementation that communicates over the Bluegiga BLED112 proprietary dongle using a virtual serial port. It claims to access the “raw” sEMG and IMU data collected by the Myo and supports Windows, Linux and macOS.