Sunday, July 14, 2024

Wiring: Open Source Platform For Microcontrollers

- Advertisement -

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.

- Advertisement -
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.

Interfacing with sensors and actuators

The numerous libraries that support Wiring enable it to go beyond the basic input/output features. These allow it to interface with sensors, actuators and other devices.

EEPROM library. It helps in easily reading and storing data with the board’s internal electrically erasable programmable read only memory (EEPROM). It is ideal to store data that does not change often—like permanent data strings or application configuration details.

LiquidCrystal library. It allows for easily writing data to a liquid crystal display (LCD), thus allowing an output for the program running on Wiring.

SoftwareSerial library. The Wiring SoftwareSerial library let’s Wiring read and write data to and from external devices through software serial ports. It allows two devices to communicate with each other.

ServoMotor library. Lets you manupulate a standard servo motor (up to 24 motors) connected to a pin. This is helpful for projects relating to airplane control, robotics and precision tasks.

NewSoftSerial library. This is a new software serial library that provides interrupt-driven receives instead of the polling required by the SoftwareSerial library mentioned earlier.
Wiring hardware can also be interfaced with other tools including Blender, Pure Data, MaxMSP, Adobe Flash and more. Blender offers a free and open source 3D creation suit that supports a lot of video editing and gaming features. You can set up a Wiring board to play games on Blender. Pure Data, Cycling and Isadora also allow many similar creative possibilities.

You don’t need Wiring board to use Wiring

Yes, you don’t really need a Wiring board to use Wiring. If you are an advanced user, look under the Tools menu where you will find a selection of manufacturers. The definitions can be found in the Tools→Board menu for popular bare ATMEL DIP parts like atmega168p, ATmega328p, ATmega168 and ATmega644p. Wiring also supports directly the Arduino hardware, Rogue Robotics, BDMicro and many others.

Hernando Barragán, Brett Hagman, Alexander Brevig and their team manage the open source Wiring software. The PDE (processing development environment) is released under the GNU GPL (general public licence). The export libraries (also known as ‘core’) are released under the GNU LGPL (lesser general public licence).

Interestingly enough, the name Wiring originated as the action of ‘connecting things one to another’ and also from the Processing project. A pretty nice thought, if you think about it.

For more information, visit official website

The author is a student at Great Lakes Institute of Management (GLIM), Chennai


Unique DIY Projects

Electronics News

Truly Innovative Tech

MOst Popular Videos

Electronics Components