North (formerly Thalmic Labs), the creator of the Myo armband, was acquired by Google in June 2020. Myo sales ended in October 2018 and Myo software, hardware and SDKs are no longer available or supported. Learn more.

featured developer

Featured Developer: Connecting Myo to an Arduino Board

Featured Developer: Connecting Myo to an Arduino Board

This post is a part of a series featuring members of our developer community. Stay tuned to our developer blog for more featured developers and other news about developing for the Myo armband!

Interested in connecting Myo to an Arduino Board? Valentin Roland built the MyoBridge library that many developers are now using. We sat down with him to talk about Myo and his project.

When did you start developing with Myo?

In September 2015, I started to take part in a project at Victoria University Wellington, New Zealand, as an intern for six weeks. This was an ongoing project, aiming to help people with hand disabilities by providing a gesture controlling glove to support their movements. This glove uses soft actuators, powered by compressed air. The valves to control the air flow are controlled by an Arduino Board, making the system independent from a computer and potentially portable. Myo was the perfect input device, as it is also portable and quite intuitive.

What part of the project did you work on?

My part of the project was getting the Myo sensor data to Arduino and come up with a method of gesture recognition that works for disabled people. Since muscle activity may be radically different for these people, the built-in Myo gestures could not be used.

Why did you build the MyoBridge Library?

Although connecting Myo to an Arduino Board with one of the many available Bluetooth Low Energy Modules looked easy at first, I quickly noticed that they all come with quite specialized firmware, mostly just implementing serial connections. Even after days of research, I could not find any practical solution for connecting Myo directly to Arduino.

That’s why I started developing firmware for a cheap Bluetooth module, the HM-11, that would connect to the Myo armband and provide a simple serial interface for connecting a microcontroller as a bridge device.

To save people who may want to do the same in the future, the Arduino library is built to be as easy to use, and to cover as much functionality, as possible. Of course, this covers just basic communication and is nothing compared to a complete SDK, but it is a start for everyone who wants to play around with Myo and Arduino.

Based on this, I implemented a simple gesture recognition procedure for Arduino, specifically designed to work for people with weak muscle activity. In fact, muscle activity is only used for a wrist flex gesture, which starts / stops the gesture recognition. The actual gestures are based on the accelerometer data, like moving to a certain direction, drawing a circle or rotating your arm.

More GIFs of these gestures can be found on Github.

Finally, the Bluetooth module was implemented on a printed circuit board (PCB), as stackable Arduino Shield for convenient use in later projects.

Unfortunately, my internship was over before the project was completed and progress has not been reported back yet, but I look forward to developing further with Myo and see what the future has in store.

What else could the MyoBridge library be used for?

Since the MyoBridge library is built to make Myo data accessible on an Arduino, without being restricted to a particular use case, the only limit is the processing power of the microcontroller. But I think especially for smaller DIY projects, this library is perfect. You can now add gesture control to a complex robot or just a simple light switch, without the need to carry a computer or do some messy wireless bridging. And why not build a mobile device, like @_eric_castro's monocycle lights.

How can a developer get started with the library?

Details about getting started can be found on the Github Getting Started with MyoBridge Firmware and the Getting Started with MyoBridge Library or in the Myo developer forum thread.

  1. Download MyoBridge and CCLoader
  2. Solder wires to HM-11 and set up breadboard. (I did not use the CCLoader, but the people in the forum figured it out.
  3. Upload CCLoader sketch to Arduino, then flash HM-11 firmware.
  4. Connect HM-11 TX/RX pins to Arduino through voltage dividers or a level converter.
  5. Ready to run the firmware!

What do you see for the future of gesture control?

As wearables in general are becoming more and more popular, I think gesture control could really become a practicable way of interacting with everyday devices. With many interesting projects coming up, we see more of what can be done. And although the hardware and software is not quite there, yet, I am looking forward to what's to come!

What do you plan on developing next?

I am currently making plans for an open source, decentralized automation system based on Bluetooth Low Energy called uBean, but this will take some time till it's ready to show publicly.

Relevant Links:

You've successfully subscribed to The Lab!