An Interview with Ytai Ben-Tsvi, Inventor of the IOIO

An Interview with Ytai Ben-Tsvi, Inventor of the IOIO

Ytai Ben-Tsvi is the creative mind behind the IOIO (pronounced “yo-yo”). It is a hobby development board similar to the Arduino, but designed specifically to attach hobby peripherals to an Android phone through the USB port. I recently had a chance to interview him.

What is the story behind the IOIO board and what has been your involvement thus far?

In the summer of 2010 I was in California on a business trip (I was living in Israel then). A colleague of mine was telling me about the cellbots.com project that he was involved with. They were building little hobby robots based around Android phones. He was unhappy about the hacky ways they were using to connect the phone to motors and asked me whether I have an idea to fix this. After a couple of days, I thought I found a solution and that’s how IOIO was born.

Another thing that makes it great is that there’s not need to write any firmware for the IOIO itself – you control its pins and various functions from a high-level API on your Android as if they were part of the Android. The user doesn’t need to care about the fact that there’s a microcontroller on the other end, or that there’s a deep stack of communication protocols under the hood.

As the development evolved, it became apparent the the ability to harness all the awesome features of Android (having a powerful computer with a variety of built in sensors and connectivity and a well-designed high level framework) to physical computing applications is a huge capability. Just imagine how complicated it was 2 years ago to build a mobile setup that detects face and turns a servo motor to follow it. With IOIO and Android it’s just a simple weekend project.

How did your training and experience help you? What this in your major field of study in college? Is it more in line with your work experience? Or Just a hobby?

I studied Computer Engineering, which is sort of EE + CS. Professionally, I’ve only ever done software. A few years ago, I discovered the wonderful world of physical computing. Pretty soon, I started building simple circuits on a breadboard. My EE knowledge was a bit rusty, but I had strong background, so it was easy for me to re-learn this stuff from the Internet. The software bits of IOIO (which is by far the most work) involve C and Java code. I have years of professional experience with both, which helped a lot. Nevertheless, I’ve learned a lot from developing IOIO, and still am. I also taught me about how a real product comes to life, which is obviously more than just technology.

The IOIO community is certainly starting to grow with contributors documenting their personal projects. What’s it like watching that community take off? What do you do to foster it?

I started IOIO and worked so hard on it because I care about this community; I belong to it, after all. I’ve never had any intention to make any profit off it, hence the FreeBSD license. I was mostly interested in providing what I believed to be a good tool and seeing where people will take it. I’m polling for new IOIO projects on a daily basis and get really excited every time someone builds something cool with it. That’s really the most satisfying thing for me on this project.

I’m also running a users list (ioio-users on Google Groups). This list gets 10-20 emails a day with questions ranging from “why is this not working” through “how do I connect this sensor” to “help me find that bug”. I’m doing my best to help these people regardless of their question. It takes 30-60 minutes a day, but is really worth it for me. I think those users find this group a very valuable resource or “feature” of the product.

Where do you see the DIY movement going in the future?

I’ll narrow my answer to the physical computing world (as I don’t know much about the DIY plumbing community, etc.) Over the past few years we’ve seen a revolutionary change with the accessibility of microcontrollers and electronics to hobbyists. The main factors contributing to this revolution are the drop in prices, and the improvements in tools (most notable, the Arduino of course). This opened the door for non-Engineers into this wonderful world. I see this trend continuing in the future. Tools will become even better and cheaper. Many artists and designers will be drawn to using technology in their work; similarly, DIY’ers will become more aware and knowledgeable about what these tools can offer and how they can be used. Home automation is probably going to (finally) become ubiquitous, which will also probably encourage a lot of DIY’ers to get involved with this technology.

What advice do you have for young students and engineers today?

I see many people going to this field because of money or status. They often get stuck in a very narrow field and miss the big picture, which in my opinion is where the beauty of engineering lies. I would really like to encourage everyone to try to use their engineering skills at home: to solve everyday problems, to build toys for themselves and for their kids, to make art, etc. That’s where I’m getting my love to engineering from and that’s also where all good ideas (and the motivation to pursue them) come from.

What’s your #1 favorite engineering tool? (software development tool, electrical tool, mechanical tool… any category)

It’s surprising, considering that the soldering iron is by far the tool I use most, that it’s not my favorite. Instead I’d say it’s the one where I feel almost spiritual when working on it: a manual metal lathe. Something about how ancient this technique is, how perfect and simple its design. Shaping metal just enchants me. A few years ago I bought a Sherline and have spent endless hours making parts with it. I also occasionally use bigger machines in a workshop.

Do you draw a line between personal time, work time, and hobby time? How do they all balance?

That’s a tough one and the line is quite blurry. I have a day-job and two kids. My free time starts at 9:00pm at best, and I’m often pretty tired by then. I mostly work on my hobbies at night. Sometimes I take a day for hobby during the weekend too. I’m trying to answer users questions on the user group whenever I have a few free minutes during commute or in the morning. I never watch television or play computer games, which would take a lot of my time.

What else do you want us to know about you and IOIO?

Not many people are aware that IOIO is just a hobby project of mine, done on a voluntary basis in my free time. Another thing I wish people to know is that I’d be really happy if more engineers get involved with the development of the IOIO codebase by adding new features, reviewing the existing code and design. Also, some people may know that my day job is in Google, but IOIO is not a Google product and in fact has nothing to do with the kind of work I do at Google.

*photo courtesy of wwward0