This is broken! I found a bug! Nothing is happening!
How can I obtain Wiring and how much does it cost?
Will the Wiring hardware work stand-alone (without being connected to a computer)?
Will the Wiring software work only with the Wiring hardware?, how often do I have to do a hardware upgrade?
How do I get started?
How do I learn to use Wiring?
I downloaded a new version and my code no longer works!
I'm trying to run some code I found on the web, and it doesn't work
On which platforms does Wiring run?
Is Wiring open source? How 'bout some code?
Do I have to cite Wiring or share my code? Can I distribute my sketches and schematics?
What's with the version numbers?
Why is it called “Wiring”?
What is the sketchbook? What do you mean by sketches?
Why sometimes Java like or C like or C++ like? Or why such a Java-esque programming language?
I know Java or C or C++, is this Java, C or C++? How do I use it that way?
Why Is Wiring Connecting to the Network?
This is broken! I found a bug! Nothing is happening!
Most answers can be found on the forum page, or in the reference for the function or library that you're using. Please read them!
How can I obtain Wiring and how much does it cost?
The software is free to download and use. Just visit the download page.
We think it's important to have Wiring freely available, rather than selling it under some godawful yearly contract update scheme. To that end, we encourage people to spread the word and refer them to wiring.org.co.
The Wiring hardware files are distributed under a Creative Commons license which makes it possible to re-use for non-commercial purposes if it is credited. Schematics and EAGLE files are available in the download section.
The Wiring hardware can also be obtained directly from us: the black Wiring I/O board costs US$59,95, The WiringMini costs US$48 and the USBAdapter costs US$19. Shipping costs depend on volume and destination. All international orders are shipped through FEDEX priority worldwide (usually 3 days), insured and with tracking number. Payment is handled through PayPal please contact hbarragan at uniandes.edu.co for further information or place an order or check distribution at SPARKFUN Electronics: http://sparkfun.com (USA, EUROPE). Wiring is also available from robotshop in Canada.
In Japan check for Switch Science: http://www.switch-science.com (JAPAN)
The Wiring hardware is fully assembled, tested and ready to use. The Wiring hardware is RoHS (Restriction of Hazardous Substance Directive) compliant. If your school or company is interested and have circuit assembly facilities, it is also possible to order bare PCBs (unassembled boards) or produce them locally.
Also there is a number of compatible boards, for example check out the INEX Robotics board, fully compatible and widely available in Europe through nodna.
Will the Wiring hardware work stand-alone? (without being connected to a computer?)
Yes, the Wiring hardware can be used as a standalone system. Once the user program is uploaded into the hardware, the program stays in memory even when turned off, and is restarted every time the board is powered.
Will the Wiring software work only with the Wiring hardware?, how often do I have to do a hardware upgrade?
Not only. The Wiring software can also be used with any generic microcontroller board based on the ATMEL atmega128, atmega1281 and atmega2561 microcontrollers with the proper pin numbering translation when programming. There are a wide number of boards available in the market based on this microcontroller. Wiring can be ported for different kinds of microcontrollers, the Arduino project also initiated at the Interaction Design Institute Ivrea implemented the Wiring language for smaller microntrollers of the ATMEL family. Of course the Wiring hardware is the best option for beginners, special care was taken in its design, power balance, robustness, usability and presentation for the target audiences. The Wiring project was designed in a way it is still and will be possible to use the hardware manufactured from the beginning (even the first wiring board ever made) with the latest software version being environmentally friendly, avoiding as long as possible entering in a race for regular hardware obsolescence and upgrades corporations have accustomed us.How do I get started?
Double click the 'Wiring' application (on Linux, type ./wiring). Select something from File → Examples. Hit the Run button (which looks like the play button on a VCR or tape deck). then Upload to your wiring hardware, Lather, rinse, repeat as necessary.
More information on using Wiring itself is can be found in the environment section of the reference.
Again, if you're having trouble getting Wiring to start, check the discourse or the reference for possible solutions.
How do I learn to use Wiring?
To learn the Wiring language, we recommend you try a few of the built-in examples, and check out the reference.
When using the examples (or trying someone else's code), if you run across a function that you're not familiar with, highlight the word, right-click (ctrl-click on the mac), and select "Find in Reference" to open the reference page for that keyword. This can be helpful for understanding how programs work.
If you're stuck or want to talk about your work, head over to the discourse section of the site to find open minds and helpful peers.
I downloaded a new version and my code no longer works!
Read the revisions.txt file that's included with the download (or use that link to read the online version). Things change between releases, and something may have broken your code, or your code may be using something unsupported, which no longer behaves.
I'm trying to run some code I found on the web, and it doesn't work
The code may be using syntax from an older release of Wiring. Information about updating your code can be found on the changes between releases page.
Also check revisions.txt to make sure it's not something that's covered there.
On what platforms can I run Wiring?
We release versions for Windows, Mac OS X, and Linux. We test extensively on Mac and Windows platforms, but not much on Linux.
More detailed information for the specific platforms can be found in the Environment section, which also includes information about running the Processing Development Environment on other platforms.
Is Wiring Open Source? How 'bout some code?
The Wiring development environment is released as open source under the GPL. The export libraries (also known as 'core') are released under an LGPL license, which means they can be used as a library and included in your project without you having to open up your code (though we encourage people to share anyway). But if you make changes to core, you have to submit back to us. More information about the GNU Public License can be found at www.gnu.org/copyleft/gpl.html.
Wiring also relies on other open projects, namely:- the older ORO Matcher, distributed under a BSD-style license as part of the Apache Jakarta project
- the jEdit Syntax package, which is public domain
- ANTLR language recognition tool distributed under a BSD license
- GNU avr-gcc compiler and binutils
- avr-libc , distributed under a modified BSD license
- the UISP AVR In-System programmer (GNU General public license)
- the Avrdude Downloader/UploaDEr (GNU General public license)
- as of release 020, we use a slightly modified version of launch4j to create wiring.exe on Windows.
- the quaqua library, which makes Java applications look more like Mac applications when running on OS X.
- for sure others, they will be added as soon as possible
We need help! Having shared all the code and made it available for free, doesn't it just make you want to pitch in? We have too much work to do and can't keep up with things. We love to see bug fixes, new libraries, etc. If you're interested, contact us via the discourse section of the site.
We need help! Having shared all the code and made it available for free, doesn't it just make you want to pitch in and help? We have too much work to do and can't keep up with things. We love to see bug fixes, new libraries, etc. If you're interested, contact us via the discourse section of the site.
The source code for the libraries is also included with the Wiring software itself, should you want to modify them for your own use. If you want to modify the library for your own use.
The following are no longer in use, but we still owe them because they helped us along in earlier releases:
- the Jikes compiler, which is covered by the IBM Public License.
- com.ice.jni.registry from the Giant Java Tree (GPL license)
Do I have to cite Wiring? Do I have to share my code? Can I distribute my sketches?
We like it when people include a "Built with Wiring" note with a link back to the site, since it helps create interest and brings in more people to the project. We don't/can't/shouldn't require it, but it makes us happy because the project is free and this is one way you can help give back to us.
You can also remove the source code from web pages that you export, but in the spirit of the Wiring project overall, we include it by default so as to encourage sharing and learning from one another.
You can distribute your sketches all you want, and commercial projects are just fine too, however we place no warranty on the software (see the download page for the license shenanigans).
What's with the version numbers?
Releases are numbered with four digits.
Why is it called “Wiring”?
The name Wiring originated as the action of "connecting things one to another" and also to its origin from the Processing project.
What is the sketchbook? What do you mean by sketches?
We think most “integrated development environments” (Microsoft Visual Studio, Codewarrior, Eclipse, etc.) tend to be overkill for the type of audience we're targeting with Wiring. For this reason, we've introduced the 'sketchbook' which is a more lightweight way to organize projects. As trained designers, we'd like the process of coding to be a lot more like sketching. The sketchbook setup, and the idea of just sitting down and writing code (without having to write several pages to set up hardware initialization code, etc) is a small step towards that goal. The Wiring sketchbook is based on the Processing software sketchbook with a few additions for the hardware support.
The idea of just writing a short piece of code that runs very easily (via a little run button) is a direct descendant of John Maeda's work in Design By Numbers, and our experiences maintaining it. (Yes, other languages and environments have done this first, but in our case, the concept is drawn from DBN).
Why sometimes Java like or C like or C++ like? Or why such a Java-esque programming language?
We didn't set out to make the ultimate language for hardware programming, we set out to make something that was:
- a sketchbook for our own work, simplifying the majority of tasks that we undertake,
- a teaching environment for that kind of process, and
- a point of transition to more complicated or difficult languages like full-blown Java or C or C++ (a gateway drug to more geekier and more difficult things)
At the intersection of these points is a tradeoff between speed and simplicity of use.
Java like makes a nice starting point for a sketching language because it's far more forgiving thanC or C++.
Wiring is not intended as the ultimate environment/language (in fact, the language is just C/C++, but with a new hardware API along with some simplifications). Fundamentally, Wiring just assembles our experience in building things, and trying to simplifies the parts that we felt should be easier.
I know Java or C or C++, is this Java, C or C++? How do I use it that way?
Wiring code is converted to straight C++ code (using the "preprocessor") when you hit the Compile button. This also makes it possible to embed other C/C++ code in your sketches, or use the object files from the Wiring distribution to develop your own sketches with other environments.
Where does this project come from? Is this Processing?
Wiring is a descendant of the Processing project and other initiatives at the ACG. Ben and Casey develop Processing and that experience provided the basis for the Wiring project.
Why Is Wiring Connecting to the Network?
After you double-click Wiring, it will check the site for updates. This is helpful so that we can keep people aware of the frequent updates to Wiring.
In so doing, it also sends a random number that identifies yours as a unique machine (but sends no personal information to us). This really helps us get a general idea of how many people are using the software, which is really important for things like writing grants so that we can keep Wiring free.
If the network connection causes you trouble, it can be shut off inside the Preferences window.