This week's #MyoCraft is a little different. We're running our own Hackathon at Thalmic Labs this weekend, and we'd love for you to join us online with #thalmichakd. We're looking for ideas from the community, but also for developers up to hacking some projects together themselves.

That could be you.

If you've ever wanted to build something for the Myo armband and make something gesture controlled that you really care about, now is the perfect time. This week on #MyoCraft, I'm going to tell you how to get started.

Tools

Keyboard Mapper

Is there an existing Windows or Mac app that you want to control with your hand? The Keyboard Mapper built into Myo Connect will let you control the mouse and bind hand poses to key or mouse presses. You can even export the finished product as a Myo Script, either to share or to expand on yourself with more powerful controls. Just select Keyboard Mapper from Myo Connect and you are on your way.

Myo Script

Want to go beyond pose-to-keypress bindings and add some real motion controls? Myo Script is for you. We have a comprehensive tutorial series teaching you exactly how to use it, and there have been a lot of #MyoCraft posts with tips and tricks. Basically, like the Keyboard Mapper, Myo Script will let you Myo-enable an existing Windows/Mac app or website as long as it has some shortcut keys you can use. It's more powerful though, giving you full access to the orientation and acceleration data coming from the Myo armband's built in IMU, letting you create arbitrary motion gestures like using your arm as a rudder.

The SDKs

Keyboard Mapper and Myo Script are really only going to let you control existing desktop applications. If you have something completely new to build, you want use one of the SDKs. We've got official Windows, OSX, iOS and Android SDKs for you to download, and a whole bunch of unofficial bindings created by the community to let you use your language of choice. Stuff like JavaScript, the Unreal Engine 4, Python, and C#. If you'd like to make your OWN bindings you are welcome to, and we also have docs on how to use our Websocket interface provided by Myo Connect, and on our Bluetooth protocol itself.

Unity

Of special mention I think is the official Unity plugin. There is a lot of potential for Myo-enabled gaming, and Unity makes it easy even for novice developers to get started. With the built in Asset Store, you don't even need to make all the models and textures yourself. The plugin is included in the Windows/OSX SDK, and it's very easy to get started.

Developing

As you know, the Myo armband is a Bluetooth LE device you wear on your forearm. It has a 9-axis IMU for orientation and acceleration data, and 8 EMG sensor pods to read your muscles. The different SDKs have slightly different capabilities though, so this chart may help you decide which to use:
SDK Feature Breakdown

At any rate, don't forget to look at the docs!

A great place to start is by doing something simple in response to a pose. Write the name of the pose to the console. Then start building from there! Add motion and orientation from the IMU as needed! If you are looking for inspiration on what to build, follow the #thalmichackd hashtag to see what people are asking for! Or take a look a the Myo Market or Challenge Post to see the kinds of things people have been able to accomplish in the past.

My biggest recommendation though is to make something that you personally would use, that solves a problem you personally have. At least then you have a guaranteed audience (of at least one), a solid understanding of a real problem, more motivation to actually complete it and, even if no one else in the world ultimately cares for it at least you haven't wasted your time because it does something you actually wanted done anyway.

But have fun! If you get stuck, or need beta testers tweet us at @ThalmicDev, use the #thalmichacked hash tag, or ask on the forums! We'll also be in IRC, at #Myo on Freenode.

Publishing

Once you've finished your app, head on over to the Developer Portal of the Myo Market. If you have a Windows or Mac application, you can submit it directly to the Market. iOS and Android applications should go to their own platform storefronts, which should then be linked to in the Myo Market. You can also submit to other storefronts like the Humble Store, Steam, or the Chrome store and then publish in the Myo Market by submitting a link to an arbitrary website.

Of special note, if you are making a Myo Script, once you have the draft of your application created, you should grab the hexidecimal in your draft URL and use it to make the appropriate scriptDetailsUrl so it links to your page in the Myo Market. ie:

scriptDetailsUrl = "https://market.myo.com/app/<your app's hexadecimal here>"

And don't forget to set your application ID! If it's not unique, it will cause problems, so you probably want to follow the reverse domain name standard (ie, "com.<your domain name>.<your app name>"). So for Icarus Rising it's "com.thalmic.icarus".

If you make something cool, tell us about it! Even beyond the hackathon, we're always looking for cool things to show off to our community, and if there's something interesting technically you want to talk about it could be a good #MyoCraft post.

That's it for me though, I've got to get back to my project.

Good luck everyone, and happy coding!

Newsletter

Enter your email address and get all latest content delivered to your inbox every now and then.