Wiring is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
electronics prototyping platform composed of a
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
, an
integrated development environment
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...
(IDE), and a
single-board microcontroller
A single-board microcontroller is a microcontroller built onto a single printed circuit board. This board provides all of the circuitry necessary for a useful control task: a microprocessor, I/O circuits, a clock generator, RAM, stored program ...
. It was developed starting in 2003 by
Hernando Barragán
Hernando Barragán (born 1974) is a Colombians, Colombian interdisciplinary artist, designer, and academic known for creating the Wiring (development platform), Wiring development platform as his 2003 Master's degree, Master’s thesis project at ...
.
Barragán started the project at the
Interaction Design Institute Ivrea
Interaction Design Institute Ivrea (also known as Interaction Ivrea or IDII) was a two-year graduate program in the field of Interaction Design operating in the town of Ivrea, in Northern Italy. It was based in the former Olivetti Study and Rese ...
. The project is currently developed at the School of Architecture and Design at the
Universidad de Los Andes in Bogotá, Colombia.
Wiring builds on
Processing
Processing is a free graphical library and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities with the purpose of teaching non-programmers the fundamentals of computer programming ...
, an open project initiated by
Casey Reas
Casey Edwin Barker Reas (born 1972), also known as C. E. B. Reas or Casey Reas, is an American artist whose conceptual, procedural and minimal artworks explore ideas through the contemporary lens of software. Reas is perhaps best known for having ...
and
Benjamin Fry
Benjamin Fry is an American designer who has expertise in data visualization.
Early life and education
Fry was born in 1975 in Ann Arbor, Michigan (born 1975)."Inside design now: National Design Triennial", by Ellen Lupton, Cooper-Hewitt Museu ...
, both formerly of the Aesthetics and Computation Group at the
MIT Media Lab
The MIT Media Lab is a research laboratory at the Massachusetts Institute of Technology, growing out of MIT's Architecture Machine Group in the School of Architecture. Its research does not restrict to fixed academic disciplines, but draws from ...
.
Project experts, intermediate developers, and beginners from around the world share ideas, knowledge and their collective experience as a project community. Wiring makes it easy to create software for controlling devices attached to the electronics board to create various interactive devices. The concept of developing is to write a few lines of code, connect a few electronic components to the Wiring hardware and observe, for example, that a motion sensor controls a light when a person approaches it, write a few more lines, add another sensor, and see how this light changes when the illumination level in a room decreases. This process is called sketching with hardware; explore ideas quickly, select the more interesting ones, refine and produce prototypes in an iterative process.
Software
The Wiring IDE is a
cross-platform
In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software r ...
application written in
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
which is derived from the IDE made for the
Processing
Processing is a free graphical library and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities with the purpose of teaching non-programmers the fundamentals of computer programming ...
programming language. It is designed to introduce programming and sketching with electronics to artists and designers. It includes a code editor with features such as
syntax highlighting
Syntax highlighting is a feature of text editors that are used for programming, scripting, or markup languages, such as HTML. The feature displays text, especially source code, in different colours and fonts according to the category of terms ...
,
brace matching
Bracket matching, also known as brace matching or parentheses matching, is a syntax highlighting feature of certain text editors and integrated development environments that highlights matching sets of brackets (square brackets, curly brackets, or ...
, and automatic indentation capable of compiling and uploading programs to the board with a single click.
The Wiring IDE includes a
C/
C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
library called "Wiring", which makes common input/output operations much easier. Wiring programs are written in C++. A minimal program requires only two functions:
*: a function run once at the start of a program which can be used to define initial environment settings.
*: a function called repeatedly until the board is powered off or reset.
A typical first program for a developer using a microcontroller is to blink a
light-emitting diode
A light-emitting diode (LED) is a semiconductor device that emits light when current flows through it. Electrons in the semiconductor recombine with electron holes, releasing energy in the form of photons. The color of the light (cor ...
(LED) on and off. In the Wiring environment, the user might write a program like this:
int ledPin = WLED; // a name for the on-board LED
void setup ()
void loop ()
When the user clicks the "Upload to Wiring hardware" button in the IDE, a copy of the code is written to a temporary file including a standard header file at the file beginning, and a simple
main function
In computer programming, an entry point is the place in a program where the execution of a program begins, and where the program has access to command line arguments.
To start a program's execution, the loader or operating system passes contro ...
appended.
The Wiring IDE uses the
GNU toolchain
The GNU toolchain is a broad collection of programming tools produced by the GNU Project. These tools form a toolchain (a suite of tools used in a serial manner) used for developing software applications and operating systems.
The GNU toolchain pl ...
and
AVR Libc to compile programs, and uses
avrdude to upload programs to the board.
Open-source hardware and software
The Wiring hardware reference designs are distributed under a
Creative Commons
Creative Commons (CC) is an American non-profit organization and international network devoted to educational access and expanding the range of creative works available for others to build upon legally and to share. The organization has release ...
Attribution Share-Alike 2.5 license and are available on the Wiring Web site. Layout and production files for the Wiring hardware are also available. The source code for the IDE and the hardware library are available and released under the
GPLv2
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general us ...
See also
*
Arduino
Arduino () is an open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed unde ...
*
BASIC Stamp
The BASIC Stamp is a microcontroller with a small, specialized BASIC interpreter (PBASIC) built into ROM. It is made by Parallax, Inc. and has been popular with electronics hobbyists since the early 1990s.
Technical specifications
Although the ...
*
Fritzing
Fritzing is an open-source initiative to develop amateur or hobby CAD software for the design of electronics hardware, intended to allow designers and artists to build more permanent circuits from prototypes. It was developed at the University o ...
*
Gumstix
Gumstix is an American multinational corporation headquartered in Redwood City, California. It develops and manufactures small system boards comparable in size to a stick of gum. In 2003, when it was first fully functional, it used ARM architect ...
*
Make Controller Kit
''Make'' (stylized as ''Make:'' or ''MAKE:'') is an American magazine published by Make: Community LLC which focuses on Do It Yourself (DIY) and/or Do It With Others (DIWO) projects involving computers, electronics, metalworking, robotics, woodw ...
*
OOPic The OOPic is an Object Oriented Programmable Integrated Circuit. Created by Savage Innovations, this PIC microcontroller comes with an IDE (Integrated Development Environment) that supports programming in syntaxes based on the BASIC, Java and C pr ...
*
PICAXE
*
Processing
Processing is a free graphical library and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities with the purpose of teaching non-programmers the fundamentals of computer programming ...
*
Rabbit Semiconductor
Rabbit Semiconductor is an American company which designs and sells the Rabbit 2000, Rabbit family of microcontrollers and microcontroller modules.
For development, it provides Dynamic C, a non-standard dialect of C (programming language), C with ...
*
Tinkerforge
Tinkerforge is an open source hardware platform of stackable microcontroller building blocks (Bricks) that can control different modules (Bricklets). The primary communication interface of the building blocks can be extended using Master Extensions ...
Sources
*
*
*
External links
*
{{Ambient intelligence
Internet of things
Microcontroller software
Object-oriented programming languages
Cross-platform software
Educational programming languages
Free computer libraries
Open-source hardware
Open hardware electronic devices