Geek of the Week: Tom Igoe

Arduino is cheap and simple way that desktop computers can monitor the physical world, and control devices. It is an open-source platform based on a simple microcontroller board, and a software development environment, ideal for teaching. We decided to find out more from Tom Igoe, from Arguino's team.

We’re all familiar with open-source software, such as the Apache webserver or Linux but in the last few years, open-source hardware projects have risen in popularity. It has a long history of course; personal computing in Silicon Valley rose out of the hardware hackers of the Homebrew Computer Club in the mid-1970s.

1469-tom%20igoe.jpg

Among the most popular open source hardware in the last few years is Arduino, which was developed in Italy in 2005.

Devices built with Arduino boards can be stand-alone or can communicate with software running on “ordinary” computers running Windows, Mac OS or Linux . And like the predecessors of the BBC Micro, Arduino powered devices can be built by hand or purchased pre-assembled.

It’s bit like a chemistry set for geeks, complete with mind-blowing explosives. The project has its own programming language and its own development environment – both of which are free to use.

Many see it as a key driver of the new tech resistance movement designed to rescue school age children as passive consumers of information appliances and services created by giant foreign corporations. Arduino can effectively demystify technology by providing tools and ideas that enable the uninitiated to understand how modern networked devices work.

Tom Igoe is co-founder of Arduino and the area head of physical computing at the Interactive Telecommunications Program (ITP) at New York University. Tom is also an author, writing one book with co-author Dan O’Sullivan called Physical Computing and his most recent Making Things Talk. He’s a regular contributor to Make magazine. A fan of women’s flat-track roller derby, he lives in Brooklyn with a cat named Noodles.


RM:
Tom, Arduino has become incredibly popular over the last four or so years, and is very addictive, what first prompted its development?
TI:
We wanted a tool for teaching physical interaction that matched the way we teach. Arduino originated at the Interaction Design Institute in Ivrea, Italy. IDII taught interaction design from a design, as opposed to an engineering, perspective. Their approach was similar to a few other schools, like the Royal College of Art’s Interaction Design program, or the Interactive Telecommunications Program at NYU (ITP) where I teach.

The problem they had, and that we had at ITP as well, was that most microcontroller platforms were designed by engineers for engineers and engineering hobbyists, while we were teaching designers and artists. They were either too simplistic, or too complex. There was nothing for the intelligent, motivated, technical neophyte. Also, all of the platforms we’d worked with were Windows-based, whereas Ivrea, ITP, the RCA, and other design schools tend to be Mac-dominant.

Ivrea started in 2001, the same year I joined the full-time faculty at ITP. Casey Reas, one of the creators of Processing, was one of the core faculty there, so Processing was the core tool that they used to teach designers to program. We used at ITP too, because it was so much better for teaching programming to our students than anything else on the market. But there was no equivalent for physical computing.

About 2003, Massimo Banzi, who was teaching physical computing at Ivrea at the time, got fed up with the tools he was teaching with, and developed a tool called Programa2003, to teach his students about microcontrollers. He was inspired by Processing, but didn’t look to emulate it exactly. Hernando Barrragán, who was a student of Casey’s and Massimo’s, was inspired by their work to create a version of Processing for physical computing. He took the software interface of Processing and wrapped it around an open source compiler for the AVR microcontroller. He used libraries developed by Pascal Stang from Stanford.

Working under Casey and Massimo, and testing the tool using his fellow students as subjects, he developed Wiring. It was great, but it was more expensive than other microcontroller platforms. So Massimo and his team developed Arduino, a low-cost version. They re-built it, and added a few functions and cleaned up the some of the software libraries as well.

I had known Casey from the beginning of Ivrea, and had met Massimo in 2003, and seen Hernando’s early Wiring board in 2004, but finally got to Ivrea for a visit in 2005, when they were closing their doors. We used Arduino for a workshop we were doing there, and I was very impressed. It was a great tool for teaching physical computing, and I told them I’d love to use it at ITP as well. Shortly after the workshop, they invited me to join the team and help them develop it further.

If Arduino is addictive, I think it’s because we tried to make it possible to see things happen very quickly. We’ve tried to build software, hardware, tutorials, and community to support that. Fun comes not only from learning, but from helping others to learn and from sharing what you’ve done.

By the way, the name comes from Arduino, the first king of the region in which Ivrea is situated and was also the name of a local bar where students and faculty of Ivrea would congregate.

RM:
Were there any particularly difficult or painful problems you had to overcome in its development? Was there a cultural one for example? Did you start building Arduino from bottom-up or top-down?
TI:
Arduino was developed for a specific group of users, but it turned out that those users were representative of a larger group, namely people without technical training, but with a desire to make interactive things. The audience we made it for wants to make interactive things, but they don’t always care about the technical details – they just want to make things work. So making a platform for people who just want to make things work was the original motivation.

There haven’t been a lot of really painful challenges. We’ve encountered resistance from some parts of the micro-controller community, who see Arduino as a toy, not a ‘real’ tool for serious technicians. That’s okay with us, though, since we didn’t design it for that audience. We designed it because all the existing tools assumed that if you didn’t have engineering training and the mindset that comes with it, you shouldn’t be working with microcontrollers. We don’t see it that way, so we make a tool that everyday people can use to make things.

RM:
Why was ‘Wiring’ and ‘Processing’ chosen as a basis for Arduino’s programming language and environment?
TI:
Processing was the main inspiration. Casey and Ben Fry did a great job of making a powerful language and development environment that can be understood by technical beginners. They kept it simple, but they kept it expandable. The alternative tools on the market either went for simplicity or expandability, but not both.
RM:
What was the reason for using open source hardware designs for Arduino? What impact do you think this decision has had?
TI:
It was partially because of the influence of Processing, partly because the team believed in the value of open source, and partially so that it could live on after IDII closed its doors.

It’s made more work for us, for one thing. We don’t get to just sit back and relax, because being open means that our customers and collaborators are advancing the platform as fast as we are. So we have to provide leadership, both by articulating where we want Arduino to go, and by listening, seeing what innovations the community offers and incorporating those that we think fit the direction best. I don’t think we satisfy everyone in the community all the time (and I’m not sure that’s possible), but we do our best to listen and respond, while sticking to our goal to keep it easy for beginners to get started, and powerful enough for them to get things done.

It’s probably had a bigger impact than we thought it would, at first. We hoped it would make the platform open for people to modify for their own ends, and it’s definitely done that. There are dozens of clones out there; we can’t keep track of them all. That’s great to see. But it seems to have inspired other open source hardware projects as well. Maybe we just happened along when the time was right, but it seems like many other open source hardware projects and businesses have arisen since Arduino hit the market. I find that really heartening, because I think we really have to embrace more open business models. Copying products is not only feasible, it’s commonplace, so businesses have to accept it and use it to their advantage if they don’t want to lose out. Open source licenses offer a good framework for managing this reality.

RM:
Where the next evolutionary stage for Arduino?
TI:
For one thing, we’re currently preparing version 1.0, which will be the first real reference version. From here on out, we won’t break features without notice, and will try to build on this foundation. We’re all committed to continuing to serve our original audience: interested, motivated technical neophytes. So I don’t think you’ll see major technical advances, because that’s not what beginners need. I’m sure it’ll evolve as microcontrollers evolve, but I hope we’ll always keep it clear, simple, and an easy tool to get things done.
RM:
Let’s skip back to psychical computing and the beginning of the PC. Doug Engelbart had a singular vision about augmenting the human mind and interaction between machine and its user, which led directly to the invention of the PC. Has his vision been reached, do you think?
TI:
I think we have different definitions of physical computing. Thinking about physical interface probably starts there, but for me, physical computing starts with the guy who coined the term, Dan O’Sullivan, in ’92. Physical computing’s not just about the physical interface, for me, but also about the mindset that one needn’t be technically adept to design physical interfaces. Engelbart definitely set the stage for that, but I’m not sure he shared the vision that interactive systems could be developed by the masses.

That said, I think the vision you describe has definitely been reached. We augment our memory with online calendars and to-do lists. We don’t memorize, we Google it. We augment our gaming with physical interfaces like the Wii remote and Rock Band. I think the main thing missing about Engelbart’s vision as you describe it is that mind is not just in the head, it’s situated in the whole body, and we express our intelligence through both thought and action. How we realize that augmentation can’t just come from experts in hardware or software. It requires experts in human behaviour, performance, movement, design, and so much more.

RM:
What are the most important but fundamental things, the computing industry can learn from its past?
TI:
Two things:

  1. Think about the body on the other side of the screen. It’s amazing to me that it’s taken this many decades to get to the point where experimentation with physical interface is normal. We’ve been doing it for thousands of years in the analog world. Why’d we forget it for so many decades when we invented computers? We had the technology (for example, Engelbart, Myron Krueger), but we didn’t use it.
  2. Default to openness, and take pride in compatibility. Where are all the companies that started computing? Many are gone. They invented some amazing things, but kept them proprietary, so that they could corner the market. The stuff that’s lasted is the stuff that was published as open standards. The efforts of many companies resulted in more interoperable standards than any one company could invent. The market’s big enough now that you can’t corner it. You do better when your stuff works with other people’s stuff.
RM:
Are you planning to re-develop how people use a PC from OS upwards?
TI:
I’m not planning that. You have to start lower down. I’m working from the power switch upwards. I’m looking to realize it by getting people involved directly in the development of the interactive tools they use, rather than having to rely on the tools handed to them by experts.
RM:
A recent study from the McKinsey consultancy suggests that the “internet of things” – where everyday devices are able to send information over the web – is closer than ever, resulting in a series of new technological and social advances. The idea of a world where even mundane objects like shoes and food can be connected to the internet may sound like a plot culled from Hollywood, but can you see this happening very soon?
TI:
I don’t like that term, Internet of Things. It misses the point. From 2002, I taught a class called Networked Objects, in which students built the things you’re talking about. What I learned over time, though, was that if I focused on the things and not the actions people take, students would make systems that left the actions of the user out. When you tell a person to make an object, they make something you look at, not that you interact with. What’s really exciting is that we can start to see the internet as a communication medium that can convey a wider range of physical expression and activity than it could previously.

Despite that, it’s not a Hollywood story that the internet’s no longer just on our desktops and laptops, it’s everyday reality. Do you own a smartphone? How about a Nike Plus? Do you have a home security system that calls the company whey your house is broken into? Do you have a networked game console? Cable TV? Those are all on the net. Building management systems, power monitors, traffic lights, all of those things are on the network nowadays.

Because of that, I think we need to forget about the Internet of Things and think about the Internet as a tool for building relationships, both to each other and to our physical environments. The things we attach to the ends of the net are just the sensory organs of the net, and the displays are just the means to extend our expression.

RM:
Looking at where we’ve come on the timeline of programming, starting from machine codes, then symbolic assembly language, then on several more leaps to object oriented programming, do you think we’re overdue on the next one? What do you think the next leap might be? Something related to mash-ups for example?
TI:
I don’t think we’re overdue for the next leap, because we still haven’t mastered our current tools. It’s a bit like asking if written language is outdated because we live in a post-MTV world. We still use written and spoken language to great effect, but we happen to have some useful tools for audiovisual communication to supplement that.

Mashups don’t seem like a leap to me, they seem like a popularization, and that’s a very good thing. Mashups are the result of clear, usable application programming interfaces (APIs), and a trend towards openness. Tools like Google Apps or Yahoo pipes or WordPress, wikis, and so forth make it easier for everyday people to get things done. That’s been our goal with Arduino, so perhaps we’re just making it possible to make hardware mashups. So if there’s a big leap to come, I guess I’d like to see more tools for the non-technically savvy and less impatience for the next, greatest, fastest tool.

RM:
How do you see the relation between academic computer science and industrial practice?
TI:
I’m not a computer scientist, so I can’t say. I think that among design and art programs using computers (i.e. where I work), there’s a trend towards using open industry tools like the APIs mentioned above, particularly the easiest ones to use. So I’m grateful that the industry seems to be shifting toward making more free or open source tools available. For my school, open source tools have made it possible to eliminate rooms full of computers. We maintained the labs so that we had machines to hold software licenses. Now that laptops are cheap and development tools are free, we no longer need to maintain labs of computers, so we can give students space to develop other things, like physical interfaces, interactive environments, fabrication tools, and more. I’d like to see that continue. Economic accessibility is as important as cognitive accessibility. I’d like to see industry support that more.
RM:
Do you think we’ll have to wait much longer where machine intelligence surpasses that of humans and takes off near-vertically into recursive self-improvement?
TI:
I hope we have to wait a very long time, which sounds horrible to me! I don’t think intelligence is some disembodied ideal to be captured in a chip. Our intelligence comes from the physical structure and capabilities of our bodies, and the pleasure we take from the world is innately linked to our senses and our physical capabilities as much as it is to our minds. I hope we never lose sight of that.