Arduino

Reference Language | Libraries | Comparison | Changes

## Changes

This page lists major changes to the Arduino core, libraries, and environment. For details, see the release notes.

### Changes in Arduino 1.0.1

Environment (IDE)

- Internationalization of the IDE and translation into multiple languages (selected in preferences dialog).
- New preference for skipping verification during upload (for increased speed).
- Speeded up compilation by only compiling changed files. (Except for the first compilation after selecting a new board, when all files are compiled.)

Language (API)

- Added support for the Arduino Leonardo.
- Added Leonardo-specific Mouse and Keyboard libraries.
- Added INPUT_PULLUP argument to pinMode() function. The INPUT mode now explicitly disables the pullup resistors.
- Added ability to generate repeated starts in the Wire library (in master mode). Extra boolean parameters to endTransmission() and requestFrom() control whether or not to send a stop (or a repeated start instead)
- Added Ethernet.maintain() function for renewing DHCP leases.
- Added readString() and readStringUntil() functions to Stream, Serial, etc.

### Changes in Arduino 1.0

Environment (IDE)

- New file extension (.ino).
- New toolbar icons: checkmark (verify) and arrow (upload). (Nicholas Zambetti)
- New color scheme, document icon, about image (!ToDo).
- Board name and serial port are shown in status line at the bottom of the editor. (from Wiring)
- URLs in the sketch code are now clickable hyperlinks (issue 148) (Christian Maglie)
- Progress bar shown during compilation and upload. (from Wiring)
- Support for uploading sketches from within the IDE: hold shift while clicking upload or select "Upload Using Programmer" from the File menu. Select programmer from the Tools menu of the IDE.
- Verbose output (during compilation or uploading) now enabled from within the preferences dialog.

Language (API)

- Switching to non-blocking Serial writes with a transmit buffer.
- Serial.flush() now waits for transmission of outgoing data rather than discarding received incoming data.
- Reimplementation of the SoftwareSerial library to support multiple ports (!NewSoftSerial by Mikal Hart).
- Removed Matrix and Sprite libraries.
- Serial.print(byte) now prints the digits of the number as characters; use write() to send as a single byte.
- write(), print(), and println() now return size_t (unsigned int) instead of void (issue 551): number of bytes written.
- write(str) in Print is no longer virtual, so subclasses of Print or Stream can't (but also don't need to) override it.
- Added getWriteError(), clearWriteError(), and protected setWriteError() methods to Print; use to check for, clear, and set a write error flag.
- Removed the ability to say "client == NULL" or "client != NULL" from Ethernet library; use "if (client)" or "if (!client)" instead.
- Reimplementation of String class (Paul Stoffregen + additional modifications).
- Added support for Flash-based strings using the F("string") syntax.
- Added DHCP and DNS support to the Ethernet library (integration by Adrian !McEwen).
- Renamed Ethernet Client, Server, and UDP classes to EthernetClient, EthernetServer, and EthernetUDP to allow for simultaneous use of other networking libraries.
- Modified UDP API:
  - beginPacket() / endPacket() for bracketing outgoing UDP packet construction
  - Inheriting from Stream, using write(), print(), and println() for UDP packet construction
  - parsePacket() for parsing incoming packets (and checking if there is one)
  - available(), read(), peek() for reading bytes of incoming packet
  - remoteIP(), remotePort() for information about incoming packet
- Addition of IPAddress class (Adrian !McEwen).
- Modified Wire library to inherit from Stream; i.e. to use read(), write(), print(), println(), etc. Bracket calls to those functions with beginTransmission() and endTransmission().
- Adding support for multiple open files and directory iteration in SD card library (Limor Fried).
- Added serialEvent() function, called automatically on reception of serial data if it exists. Also, serialEvent1(), serialEvent2(), and serialEvent3() on the Mega.
- Added find(), findUntil(), parseInt(), parseFloat(), readBytes(), readBytesUntil(), and setTimeout() to Stream (issue 458 - Michael Margolis).
- Updated Firmata to version 2.3 (r71): analog inputs now numbered from 14 (not 16) when used as digital pins.

Internals

- Renamed WProgram.h to Arduino.h.
- Pin definitions separated from the core and stored in new variants/ sub-directory. Specified by the _BOARD_.build.variant preference in boards.txt.
- Added macros / constants for getting information about the properties of the board (issue 490 and issue 495)

Tools

- Updated avrdude to 5.11 (and switched to arduino programmer type from stk500).

### Changes in Arduino 0023

### Changes in Arduino 0022

### Changes in Arduino 0021

### Changes in Arduino 0020

### Changes in Arduino 0019

- Added String class.
- Added shiftIn() function.
- Added Serial.peek() function.
- Added aliases for the analog input pins: A0, A1, etc.
- Added SPI library.
- Ethernet library now depends on the SPI library; add `#include <SPI.h>` to the top of sketches.

### Changes in Arduino 0018

- Added tone() and noTone() functions.
- Added Serial.end() function.
- Added support for third-party hardware in the hardware sub-directory of the Arduino sketchbook.

### Changes in Arduino 0017

- Environment: The code base for the Arduino development environment was largely re-written to bring it back into sync with Processing (1.0.3). The main differences include support for multiple sketch windows open simultaneously and a dedicated window for the serial monitor.

- Icons: The icons and about images were updated.

- Arduino.app: The Mac OS X version of Arduino is now a .app file packaged in a .dmg.

- Libraries: Support was added for third-party libraries in the SKETCHBOOK/libraries directory. This allows user-installed libraries to persist across upgrades of the Arduino software.

- Servo: The servo library was rewritten to allow support for up to 12 servos (on any pins) and up to 48 on the Mega.

- LiquidCrystal: The begin(), cursor(), noCursor(), blink(), noBlink(), display(), noDisplay(), scrollDisplayLeft(), scrollDisplayRight(), autoscroll(), noAutoscroll(), leftToRight(), rightToLeft(), and createChar() functions were added.

### Changes in Arduino 0016

- New functions for writing a string, write(str), or buffer, write(buf, len), were added to the Print, Serial, and Ethernet library Client and Server classes.

### Changes in Arduino 0015

- Support for the Arduino Mega.

### Changes in Arduino 0013

- Support for printing floats was added to the Print, Serial, and Ethernet library Client and Server classes.

- The word type and word(), bitRead(), bitWrite(), bitSet(), bitClear(), bit(), lowByte(), and highByte() functions were added.

### Changes in Arduino 0012

- Added the Firmata library, which provides a standard protocol for serial communication.

- Added Ethernet library.

- Added Servo library.

- Added LiquidCrystal library.

Reference Home

Corrections, suggestions, and new documentation should be posted to the Forum.

The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.

©Arduino | Edit Page | Page History | Printable View | All Recent Site Changes