Tuesday, December 6, 2011

Arduino 1.0 First Impressions

The Arduino software - the development environment that you run on your computer to be able to write programs and program your Arduino has bumped versions. It has gone from version 23 to version 1.0

The first thing to say that while this is a major (if slightly confusing) update in version numbering, it is more of a tidy up and general stability release than any major change in functionality. The rewrite as a stand-alone Eclipse RCP, would have been my choice,  but never mind.

The two IDE's are shown side by side below:


Arduino 1.0                                        Arduino 23

I know these are too small to see properly, but I wanted to illustrate one of the changes. The color! Does anyone else think that IDE's should be a more macho color like black or silver, rather than the color of over-boiled brocoli?

Anyway, here is a bigger picture of the new IDE:

The first thing I noticed (apart from the horrendous color) was the really useful text at the bottom of the editor that correctly told me I had a Mega attached to a serial port, and the serial port's name. This is a nice touch.

Another improvement, for beginners especially, is that the toolbar items have been given an overhaul.

Old Arduino 23 Tool bar.

New Toolbar:

The new icons make a lot more sense. The Play button of earlier versions that compiles without uploading to the board just becomes a 'check' icon. The button next to it uploads to the board and the other three icons allow you to start a new sketch, open and save sketches respectively.

So, what's new then?

Looking at the release notes, the main new features are:

  • The sketch file names extension has changed from .pde to .ino. See later where I talk about compatibility.
  • Serial Communications using the standard UART (Rx and Tx pins) has been improved
  • The SoftwareSerial library has been supplanted by the superior NewSofwareSerial library. This allows you to have several serial connections on the go at the same time.
  • The String class has been reimplemented - if you like that kind of thing
  • There is a nice new syntax for putting your strings into flash (PROGMEM) rather than having to use up valuable RAM. You just wrap it in F() like this: Serial.print(F("hello world")). Very cool!
  • The Ethernet library now has DHCP and DNS support - thanks to Adrian McEwen. This is a great improvement, although it does unavoidably swell the library size.
  • The Wire and SD libraries have been improved and tidied up.

The one thing that scared me in the release notes was the change in extension from .pde to .ino. But I needn't have worried. When I started up Arduino 1.0 IDE, the sketches that I had previously left open in Arduino 23 opened too.

If you create any new sketches, they will automatically get saved with the .ino extension, however, it is only when you come to save an existing sketch after modifying it, that you will get the following prompt.

Which is fine. But if you have an important sketch, make a backup of it somewhere before changing it in 1.0 in case you need to go back to 23.

One issue is the amount of flash the sketches take up when deployed fo an Arduino board. All these improvements come at the cost of bigger fiels, especially if you use some of the new libraries (http://arduino.cc/forum/index.php/topic,81070.0.html)


The Arduino team have been brave in adressing some overdue tidying up and enhancements. But with all such changes, the is likely to be some disruption.

There are likely to be problems with some existing libraries, so my plan is to stick with 23 for all my exisiting projects, for any minor changes and use Arduino 1.0 for any new developments. There is no problem having both IDE's available, just edit their names so that you can tell them apart.

Oh, and Arduino team - please do something about that color! A Preferences setting would be great.

About the Author
These are my books. Click on the image below to find out more about them.


Anonymous said...

I like the color!

Anonymous said...

I like the color.