Home Buyers' Guides Software Reviews Wiring: Open Source Platform For Microcontrollers

Wiring: Open Source Platform For Microcontrollers

Wiring: Open Source Platform For Microcontrollers

Hernando Barragán is not a name that you would recall easily. But you might recognise something that he helped create. While working on his Master’s thesis project, in 2004, Barragán created the development platform Wiring at the Interaction Design Institute in Ivrea, Italy. In his own words, “The objective of the thesis was to make it easy for artists and designers to work with electronics, by abstracting away the often complicated details of electronics so they can focus on their own objectives”.

Barragán was aiming to create a low-cost, simple tool for non-engineers to create digital projects. The original Wiring platform consisted of a PCB with an ATmega128 microcontroller, along with an IDE (integrated development environment) based on Processing, and library functions to program the ATmega128. Wiring was the muse, which later on became the darling of the masses, Arduino.

The need for Wiring

In 2004, the onus on digital technology to be all-pervasive was quite high. Yet, for designers to successfully enter this domain they needed to understand the inherent qualities in the media they worked with such as electronics and software.

fig 1
Fig. 1: Wiringboard-showingoff_featured

box 1 Back then the prototyping tools for electronics and programming were mostly targeted at engineering, robotics and technical audiences. Not only were these hard to learn, their usefulness was highly limited to the technology that they were working on at that point of time only.

“The need of the hour was a language and electronics prototyping system that encouraged learning, reduced electronics design struggle and took into consideration the power and flexibility required for the needs of Interaction Design,” according to Barragán.

What is Wiring and what it does

Wiring is both a programming environment and an electronics prototyping input/output board for exploring tangible media.

Wiring can be a way to teach someone the wonderful world of computer programming and prototyping. If you are reading this, chances are high that you would dig the nature of this software. It illustrates the concept of programming with electronics, along with exploring the physical reach of hardware control, which is the tricky part vis-a-vis design. This process is called sketching with hardware wherein prototypes are produced iteratively by exploring ideas, selecting the good ones, refining these and repeating the process.

The Wiring software and hardware designs of the Wiring electronic input/output board are available on the official website. You can also go online to get access to Wiring:

Prototyping Physical Interaction Design input/output board. The site contains a reference and a number of short prototypical examples that explore the media and illustrate the code and electronics diagrams allowing a user to learn by experimentation, the best way to learn (according to me). Wiring itself was built upon Processing, which for the uninitiated is an open source programming language developed by Ben Fry and Casey Reas.

If you have some experience with Processing, you can easily move on to Wiring along with Java, C, C++, Flash and Director. The idea of Wiring is to let users sketch, then test their ideas before prototyping these. While working on their design concepts, users will be able to sketch, test their ideas and prototype these by writing small programs and downloading to the input/output board.

fig 2
Fig. 2: Screen Wiring
fig 3
Fig. 3: Span of Wiring

Wiring input/output board

Let us take a look first at the Wiring I/O board. It is a simple electronic system that includes a microcontroller where the users’ programs run. By working with digital and analogue inputs and outputs, it combines form and functionality to let its users interface all kind of sensors and actuators with the board.

The board also allows you to program the behaviours needed in your projects. Rather than focusing on showing that the technology works, users are encouraged to utilise their time to work on the quality of design, the interaction effect, ideas and concept illustration.
The active user community contributes heavily to the wider Interaction Design community. The libraries have been separated into categories. While the core libraries are coded for specific hardware (microcontrollers), cross-platform libraries are those that do not depend on hardware. And of course, who can forget the contributed libraries that come from all over the Internet.