Pages

Thursday, 1 December 2011

Arduino 1.0 is out - first impressions

There's a lot of new functionality in the new release, and there are some significant changes.

This blog post talks about an earlier release candidate, but presumably still applies. At the time of posting, the release notes stop at release 23, but that may be fixed by the time you read this.

A quick test showed some of the new features, and some of the issues involved in migrating existing projects.

The new IDE looks subtly different. Below you'll see a 'verify' button (shown as a tick) which you can use to compile a sketch without trying to upload it. I found that handy when checking the compatibility of existing code.

You'll find changes in several libraries. In most cases these are improvements in functionality. Examples:

the Serial library is now asynchronous

Serial now contains functions for parsing input data

the String class is now more efficient and robust

the Ethernet library now supports DHCP and DNS

the SD library (which you can use for reading from/writing to SD cards) now supports multiple open files

However, some changes will break existing code. For instance

send() and receive() in the Wire library have been replaced by write() and read()

the effect of Serial.print() on a byte argument has changed. It's now more consistent with other libraries, but existing code will break. The old behaviour can be reproduced by using Serial.write() instead

Finally, the extension for Arduino sketches has changed from pde to ino. The new IDE will recognise your old sketches, though, and when you save them a pop-up will remind you of the change before asking if you want to save the file with the new extension. That's handy, as it gives you an easy way to keep track of which sketches you've migrated.

There are many other changes listed in the blog. I'll update this post if I come across anything crucial.