Wiring 1.0


A quick order of business - this Friday, November 4th, there will be no orders shipped. We are counting all our stuff (AKA, a full inventory physical count). If you've already arranged a local pick-up for Friday, you should be alright but we will not be processing any new local pick-ups. Apologies for the inconvenience!

Announcement: Wiring 1.0 has been released!

This release is a milestone for open hardware. It is the sum of work and contributions from many, and the synthesis of ideas gathered and experimented in the last seven years. At the same time, it is also a start, as once again Wiring has opened up prototyping with electronics to wider audiences by defining an extensible architecture for future hardware, software and courseware; where novice, intermediate and experts will materialize their ideas, design and support for their new open hardware devices as well as develop applications unlocking new ways of thinking, and making, in an even simpler way. -Hernando Barragan

Sounds similar to Arduino, yes? Wiring and Arduino might be more closely related than you think.

The Wiring IDE looks pretty much the same as the Arduino IDE and functions in the same way; sketches from each IDE can work on the other. Both environments are based on Processing, but what might surprise you is that Wiring was the original source for Arduino!

The really cool thing about Wiring is that the primary focus of the project is to create cross-platform framework for all types of microcontrollers. Wiring supports almost 80% of the Atmel megaAVRs with the v1.0 release and the version 1.1 release is slated to add support for AVR Xmega, AVR ATtiny, PIC32, ARM Cortex M3, and MSP430. Considering the compatibility and open nature between Arduino and Wiring, this opens up more doors to to different types of development hardware.

The interchangeability of Wiring can result in some interesting setups. For example, you might see someone using parts of an existing Arduino sketch, then using hardware specific Wiring libraries with the Wiring IDE to load code onto a LeafLabs Maple. Each piece of hardware (i.e. Arduino Uno, LeafLabs Maple, Mega Pro 3.3V, Wiring Board, Wiring S, etc.) will have it's own set of Wiring based libraries.

Wiring also officially supports a dozen or so different SparkFun boards, including the new Mega Pro 3.3V.

If you want to try Wiring, the software is free and it is very simple to get started. You can download everything here

Also, if you have a microcontroller series that you’d like to see use the Wiring Framework, please contact: dev@wiring.org.co


Comments 39 comments

  • Anyone using the Arduino IDE, and especially people that are regular users of the Visual Studio IDE, should have a look at Visual Micro. Visual Micro is a Visual Studio IDE add-in that provides full featured Arduino Development in the VS IDE. Even compile and upload can be done from within Visual Studio.
    Since Wiring and Arduino are basically the same, I suppose Visual Micro also works with Wiring.
    More information at: Visual Micro

    • I signed up but I can’t find where to Download Visual Studio. When I click on it All I get is a list of .NET framework files.

      Edit Think I found it, will see if the Key works as soon as it is downloaded.

      • Yeah, doesn’t work with Visual Studio Express (no addons allowed).

        • Take a look under your start folder-> ALL PROGRAMS -> Microsoft Visual Studio 2010 Express.

          If you have the TRY Visual Studio 2010 Professional- click on it.

          Then as I said up above- get a large pot of coffee and a paper or book and wait for the download. Also good time to take a two hour nap. Oh- I forgot to add, make sure you down load the Service Pack 1. I had no choice in the matter, I tired opening Visual Studio and it told me I had to do the down load and sent me to where I had to, to get it.

          Again it was a long wait- Nap part 2.

          Make sure you signed up for that Microsoft Partner Network- because that’s where you get the 3 year Register KEY to turn the thing on.

          I almost forgot to say that you need to pop over to Visual Micro to get the stuff for the Arduino.

    • (updated) @jandirks Thanks for the support, it is good to know you are enjoying the arduino product. I have now tested this solution with wiring. As you say, it is close but I found that it doesn’t quite work.

      If all goes well we will add support in the next release when we also add support for Arduino 1.0

  • -insert evil pinky bite here-

  • .

  • Hi there. Will Wiring provide Arduino library support for other boards, like Maple Leaf?I.E: Can I use a PID library made for Arduino in my Maple Leaf? Sorry if this is a silly question. Cheers.

    • If you mean the LeafLabs Maple, the gang at LeafLabs are already working with us on creating the STM32 Wiring Framework core.

      If the PID library is written using the Wiring Framework functions, then it should be portable to any platform that uses the Wiring Framework.

  • Wow, the “Wiring S” board looks kinda cool, any chance Sparkfun will carry it?

  • I checked out the site, it works on linux!

  • I am a bit confused (it isn’t hard trust me!). I have been using Arduino for a while now, but not sure what the benefit of Wiring is over it? Other then supporting (eventually) more boards, but then aren’t Arduino going to be releasing an ARM based board too?

    I suppose it boils down to this, why would I use Wiring if I am currently using Arduino given the similarities in language?

    :)

    • Good question.

      • You can use the Wiring IDE to program Arduino boards (and a lot of other boards, as well as bare microcontrollers), whereas in the Arduino IDE, you are limited to programming a few Arduino boards.
      • Wiring created the original framework, and is constantly adding/changing as things are needed, whereas Arduino has been building on the original framework, with little regard for other microcontrollers. In the long run, you’ll find that framework that Arduino is using will cause problems when using other controllers.
      • Hernando created Wiring, and as such, it’s been his vision from the beginning to create the software which makes it easy for people to use microcontrollers. Arduino was a separate company that was created some time after that, using the Wiring framework. Their goal has been to sell hardware, as far as I can see, so their focus is not on the software.

      I mean no disrespect to the Arduino Team. The have done a fantastic job so far. The Arduino community is unparalleled. It just shows you how powerful the framework really is. We love Arduino, and we will always support their hardware.

      As for the new ARM based Arduino board, the board is currently not supported by their IDE, and Arduino has asked the community to develop the software for them. So as it stands, the board is not usable, and unless someone writes everything for the Arduino Team, there will be no solution for the new Arduino ARM board.

      Wiring will eventually have a framework core for the Atmel ARM controllers - it’s not a matter of “if”, it’s a matter of “when”.

      • That’s funny because I was reading my Nov 2011 issue (256) of Circuit Cellar PG42- and they were talking about Digilent porting Microchips ChipKit over the the Ardunio IDE.

        Mr Valens was talking about problem they were having with using Ardunio code with the IDE for the MAX32- it seems there are some spacific code for the Ardunio that needs to be taken out for the MAX32- if memory serves me right. I wonder if this could be part of the problem you folks are having?

    • If you want to use anything but the atmega8 or atmega2560-like chips, you can’t use Arduino.

      • That’s not exactly true. There is an arduino add-in to support the atmega644p (sangeuino I think) and it will also support the atmega1284p with little modification. Also I found I could cut down the arduino mega description to support the atmega128, atmega1281 and atmega2561.

  • I was looking on http://wiring.org.co/ and I couldn’t find where it lists the currently supported microcontrollers. The description above says this will support a lot of them but which ones?

    • Yeah, I haven’t compiled a list yet, but now that you mention it, I think that would be a great idea.

      For now, though, which controller were you looking for?

      • Personally I was looking for PICs I use the PIC16F690 the most but its basically a beginning controller. It was the PIC used on the demo board that came with the programmer I bought.

        • Unfortunately, Microchip reps said that they probably will not release a version of GCC for the PIC16 nor the PIC18 series. However, Microchip has provided a GCC port for PIC32 (and I’m not certain, but I think they said they already have, or will soon, a port for the PIC24 series).

          We’ll be working on the PIC32 Wiring Framework core very soon. I will likely need some help from some PIC gurus, so if you are interested, please email us at dev@wiring.org.co

  • Yoiks.

    My project won’t even compile under Wiring. It compiles fine with Arduino version 22, though.

    Perhaps I didn’t select something right. Let me try it again. No, setup looks good. Just won’t compile. I get a perfectly ominous looking error:

    CommManager.cpp:921: error: error: can’t find a register in class ‘BASE_POINTER_REGS’ while reloading ‘asm’

    The line of code looks perfectly good: strcpy_P(pstr_text,(char*)pgm_read_word(&(s_table[38]))); //“com%dtype”

    Is PROGMEM not fully supported? I would think it would have failed to compile on table elements 0 to 37 if that was the case, not wait to element 38.

  • Gonna try it :)

  • Can you program an Arduino board using Wiring? How do the Arduino pin numbers map to Wiring? Can you use Arduino libraries with Wiring? (Adafruit has added lots of libraries to work with graphical LCD’s and such). Is Wiring compatible with the bootloader on Arduino, or would you have to reflash the chip with a new bootloader?

    • With the Arduino developers at sleep I think I’m finally going to ditch their IDE and use Wiring instead!

    • hi there, yes, you can, just check the Tools->Board->Arduino menu, you’ll find a list of boards in there, no need to re-flash bootloaders. Libraries will work too mostly, with a difference please use Wiring.h or WProgram.h for include on the library code. Also, examples are in the Help menu.

      • (updated) @hbarragan One man who finds the time to read information pages whilst also having so many other responsibilities :) It turns out that the Visual Studio addin is looking for arduino.exe path, roaming\arduinopreferences.txt etc. so it doesn’t work so well. + I see that the wiring ide also supports many other types of boards in addition to wiring and arduino. This is good but also requires a little work to support the cores structure.

        • @hbarragan is most likely using the latest version, after all he is the creator of the wiring project :)

          • Then he will be pleased to try the new version with Visual Studio :) but that’s interesting news about hbarragan. If hbarragan uses Visual Studio for wiring then I guess it says that it works okay. So we need to make sure that it doesn’t get broken in future updates :)

            • Actually, we haven’t tried Visual Micro yet - although it sounds pretty cool for Visual Studio lovers.

              It would be great to get you directly involved in updating Visual Micro to support future changes to the Wiring Framework. Email us at dev@wiring.org.co and we can start collaborating.

              We are totally open to having a wide variety of front-ends for the Wiring Framework.

  • This is great stuff but what I don’t understand is why not make a single interface for all? Wiring is based on Processing, Arduino is based on Wiring and Processing - why not just use Processing to begin with? Why have all these separate IDEs and then try to make them all work together, just make one IDE that can be as basic as you want or complex as you want.

    • Probably because Processing uses the Java language and Arduino / Wiring use the C/C++ language. The only thing the two really have in common is the IDEs look very similar. They serve totally different purposes and use a different language to do it.

      • Then why does Java install with Wiring?

        Even still, I think in today’s world we could have a single interface that meats all. I guess there is always someone who thinks they have a better mouse trap.

        • Because the Wiring IDE is written in Java. all their IDEs are. Wiring compiles to C/C++ while Processing compiles to Java.

          Processing uses Java to generate graphical oriented code that runs on the Java Virtual Machine, Wiring (And Arduino) uses C/C++ to compile hardware specific native code for the specified target board.

          To make “One IDE to control them all” they would need a project style framework of some kind… (Like Eclipse or Code::Blocks) but that’s counter to their purpose of making a simple, easy to use tool.

          The way they’ve done it makes sense. They’re not trying to fight the big guys by making a do all end all IDE, they’re going for simplicity.

  • Sounds way better than Arduino IDE, does it work on Linux? I’m too lazy to check out the site…


This Week

This Month

Heartbleed

Happy Arduino Day!

SXSW Create 2014