Issue No. 01 - Jan. (2014 vol. 47)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MC.2014.19
Charles Severance , University of Michigan
Massimo Banzi describes the origins and evolution of the Arduino microcontroller. The first Web extra at http://youtu.be/0VAbvQ2Ti50 is a video interview in which author Charles Severance speaks with Massimo Banzi about the origins and evolution of the Arduino microcontroller. The second Web extra at http://youtu.be/N6wN1_qLfEQ is an audio recording of author Charles Severance reading his Computing Conversations column, in which he discusses his interview with Massimo Banzi about the origins and evolution of the Arduino microcontroller.
Most computer scientists focus on developing software and leave hardware development to a few specialist engineers. Designing and building hardware takes skill, patience, and time, which is why many software developers simply write code and use hardware designed and built by someone else.
A microcontroller such as Arduino shifts this traditional separation, making it much easier for anyone to build hardware—developing something like a thermostat that senses when someone enters the room, for example, is well within the reach of any computer scientist. Not only is building hardware much easier and more fun with microcontrollers, it's also relatively inexpensive, which lets a wide range of engineers solve problems using a combination of custom-developed hardware and software.
I met with Massimo Banzi, one of the cofounders of the Arduino project, at his office in Lugano, Switzerland, to understand how Arduino was developed. To view our discussion in full, visit www.computer.org/computingconversations.
THE INITIAL IDEA
In 2005, Banzi was working as a faculty member at Interaction Design Institute Ivrea and teaching courses on interaction design for physical devices that increasingly needed electronic components:
When you're doing interaction design, you need to be able to build a prototype because you need to test your designs with people. You want a mockup of a website to see how people react; we need the same thing for physical devices. Making prototypes of physical devices means that you need to learn about electronics, so we created different courses that would make electronics approachable to people who don't have that background or even skills in software development.
Because the course goals avoided teaching hardware development, Banzi wanted to make creating the electronic components for student prototypes as straightforward as possible. He also wanted the designers to be able to build, tinker, and evolve the electronic aspects of their work without depending on electronics experts:
We had to make something that would run on a Mac yet easy to use and cheap. We had this programming language that we inherited from MIT called Processing, which was used to teach programming to artists and designers. So we thought, "Why don't we try to make that run on a microcontroller?"
After several prototypes and a student thesis project on a product called Wiring that connected a microcontroller to a computer via USB and incorporated an API for easy programming, the first Arduino design was produced:
The first version of Arduino was based on Hernando Barragán's Wiring project. We re-implemented Arduino from scratch, reusing the Wiring APIs so that Arduino would be completely open source. We wanted something that would be easy for people to reproduce and build upon.
Because the initial goal was simply to meet the needs of design students, there was no plan to ramp up manufacturing in those early days. The team published the plans as open source and made a few printed circuit boards for their own use:
We didn't want to set up a classic manufacturing company or go to a venture capitalist because back then, nobody would have even talked to us. Instead, we decided to release the hardware as open source so people could build it if they wanted to. We made a few printed circuit boards and gave them away as gifts. And some people started to assemble them. They went to the website and got instructions, downloaded the code, and soldered the components to the boards.
Once the team had a solid design for Arduino, they wanted to share their ideas more broadly. The next step was a first production run of pre-assembled Arduinos for their classes and workshops:
I started this project with a friend of mine, David Cuartielles; he teaches design in Sweden. We met Gianluca Martino, an engineer working in Ivrea who had experience with manufacturing electronics. I asked if we could manufacture 200 complete microcontrollers that we could just send to people. David and I managed to convince Interaction Design Institute Ivrea and his school in Malmö to buy 50 each, so we presold 100. We sold the other 100 when we ran workshops; we'd take 20 boards and sell them to the attendees.
Arduino got additional exposure when Tom Igoe started using it in his physical design classes at New York University:
We met Tom one summer in Italy and showed him Arduino. He took a few prototypes back to NYU and started to use them with some of his second-year students. At some point in 2006, the platform became very solid, and you could do good projects with it. The first-year students saw what the second-year students were doing and said, "We want that Arduino, too!" That gave us 120 power users—people who made beautiful projects. Designers tend to produce nice documentation for their projects and put them online as part of their portfolios, which was very helpful.
As the clever design projects based on Arduino made their way around the Internet, the demand for the microcontroller began to grow very quickly. Banzi made arrangements to distribute Arduino through the SparkFun online electronics store, which made it so the microcontroller was readily available in the US. In a sense, Arduino is a self-marketing product:
The real growth comes from people making projects, documenting them, and putting them online—basically, sharing information about how they built those projects.
The Maker and DIY movements have also adopted Arduino, and it's increasingly used to introduce young students to technology to give them a sense that they too can understand how hardware and software combine to produce new technologies:
The idea is that you download a file, plug the board in, and in the space of an hour or two, you have working hardware. The blinking LED is the "Hello, World!" of physical computing.
Arduino's worldwide popularity lets Banzi and his co-creators spend time thinking how to get young people more involved in the design of our everyday technological devices:
I think that it's important especially for kids to understand the world we live in. Clearly, if you know how to design and build things, you can affect the world that surrounds you. If you aren't able to participate in the world of creation in the digital space, you're left out. Somebody else is going to design your world. At some point, if there's no innovation or even renovation in the marketplace, then one company will decide that there's one way you do a certain thing. It becomes the only answer to a certain question, and nobody thinks about alternatives. I think that it's important to be masters of the technology.
While Arduino was originally conceived and designed to help in the creation of design prototypes with electronic components, it has the potential to bring a hardware element to teaching at all levels of computational thinking and computer science.
Charles Severance, Computing Conversations column editor and Computer's multimedia editor, is a clinical associate professor and teaches in the School of Information at the University of Michigan. Follow him on Twitter @drchuck or contact him at firstname.lastname@example.org.