Most of the tools Kyle Machulis makes are self-justifying. It seems futile, at first, to search for utilitarian rationale in Machulis’ workshop, which he calls Nonpolynomial Labs (nonpolynomial.com). Often he makesthings to find out if he can make them, and to learn something, and to have a laugh, and to inspire others.
His robots do things like automatically mix drinks for video game players based on their score. (The higher the score, the stronger the drink, which ultimately leads to a lower score, and, appropriately, a weaker drink.) Or track yo-yos in mid-spin using the Wiimote camera. Machulis also gets deeply into hardware hacking on general principle, freeing game controllers and commercial devices from the limits placed on them by the companies that build them.
I first met Machulis through the Quantified Self (a personal health tracking technology conference), where he was showing his work on a project called OpenYou (openyou.org). OpenYou is dedicated to writing open source drivers for personal data devices, including pedometers, blood pressure monitors, and scales. It’s your data, after all. Why should you have to always go to the manufacturer’s website to see it?
The more I got to know Machulis’ work, the more intrigued I was with his vision of a world of manipulable, connectible parts, unhampered by the legacy of some marketing survey that said “nobody will want to do that.”
And as programmable hardware leaves the world of games and becomes integrated into many different aspects of our personal lives, Machulis’ work on hacking these systems begins to have a practical edge.
I recently asked Kyle Machulis a few direct questions:
Gary Wolf: Why hack game controllers?
Kyle Machulis: Most people think of these as just controls for video games, but when you unlock the technology to be used on non-game platforms, people find new and interesting uses for them.
And they are everywhere. For game controllers to succeed in the market, they have to be priced within a certain obtainable range. Sensors that usually cost quite a bit take a huge drop in price when they become part of a game control. The Wiimote had accelerometers, an IR camera, and a Bluetooth interface, for $40! That was unheard of when it was released.
GW: What is your favorite hack?
KM: One of my favorite projects was writing software that allows open programming of the Novint Falcon haptic device (home.novint.com). It’s a controller that basically allows you to feel forces in 3D, so guns kick back in a player’s hand, they can feel textures on the surfaces of objects, things like that.
The Novint Falcon is a $250 version of a $30,000 research controller. Writing the drivers for it took more than just figuring out the USB protocol. There’s also a ton of pretty difficult math wrapped up in figuring out the position of the end effector (the part of the controller you hold). It took collaboration with academics in a few different countries to get something usable, but it’s now used in everything from molecular biology research to open source wisdom tooth removal simulation (forsslundsystems.se).
And most people don’t really think of touch outside of “multi-touch” or “vibration,” so having a new kind of feedback really makes their heads explode.
GW: By day, you work at Mozilla as a hardware engineer. What do you do there?
GW: That means no App Store, no End User License Agreements for mobile software, open systems on the phone, right?
KM: It means that the phone moves in whatever direction the web does, instead of whatever direction the API that the company that makes the OS does. Think of all the trouble we have getting devices to talk to our phones. This means that as soon as there is a driver to get data from a device onto a web page, it should work on a phone as well.
GW: Why hack hardware in particular?
KM: My career after college started in educational robotics. I learned that there’s a lot of hardware out there that people want to do things with but don’t have the access they need, so I provide that. But I like both hardware and software equally. What I want is to have access to and know the whole stack, from the electron to the user interface.
GW: Let me ask you a Quantified Self question. What personal data tools have you been hacking?
KM: Mainly consumer hardware: Fitbit, NeuroSky and Emotiv EEGs, Omron blood pressure monitors, whatever else I can get my hands on.
GW: What’s the main barrier to opening these up? Lack of software drivers?
KM: Depends on what you want to open. There are two levels: getting a single user’s data, and getting everyone’s data. Getting a single user’s data is just software drivers, yes. If the manufacturer gives the user the ability to upload data to a hosted site, we should be able to get at it without having to upload it.
The bigger problem is turning around and using that data once you have it to diagnose using a sample size larger than one. This is where the hardware manufacturers excel, as they’re getting data from hundreds/thousands/millions of users that they can process, learn from, and create services on top of. But there’s not really a way for users themselves todo this.
GW: So if there were open Quantified Self platforms, anybody could make an alternative data aggregation site?
KM: On the face of it, yes. But then there are the issues of hosting costs, user privacy guarantees, and so on. It’s a violently complex problem, of which the engineering is the easy part.
GW: Do your parents know you do this with your time?
KM: My parents were both computer programmers, so I grew up around computers, and they have always been very encouraging.
GW: What’s your attitude toward EULAs and other legal restraints on hacking hardware? Ignore, obey, or something in between?
KM: I just take the “ask forgiveness, not permission” philosophy. Of course, “forgiveness” in this case can sometimes mean, “Please stop the lawsuits.”
A lot of times, though, what I’m doing is legal. Since I’m working on fairly simple hardware that communicates over USB, I “own” the line between the device and my computer. And since that’s what I’m usually tapping, it’s within DMCA-level legality.
I’m never really aiming to divert funds out of someone’s business or be malicious. I just want things to work the way I want them to, but I don’t want to have to manufacture them myself.
GW: What practical wisdom do you have for people who might want to follow in your footsteps?
KM: With reverse engineering, the big hope should be that one day, you’re not needed anymore. That means we’ve won.