Arduino.cc has launched the latest revision of the Arduino Integrated Development Environment (IDE), version 1.6.10, and there's good news for anyone who uses AVR-based Arduinos and compatibles like the Uno, Nano, and Micro: sketches now take up less flash memory on your device.
For AVR-based Arduinos and compatibles, memory is always at a premium. The Arduino Uno, the most popular model, has just 31.5KB of flash storage available - meaning that if your sketch compiles to a binary larger than this, it simply won't install. Other models have even less storage available: the Arduino Leonardo has 28KB free after the bootloader takes its share, while the compact Arduino Nano can have as little as 14KB when built around the ATmega168.
One of the features of the new Arduino IDE 1.6.10 and AVR Core update is the addition of Link Time Optimisation (LTO), a compiler technique for reducing the size of the final binary while simultaneously improving its performance. We've been testing it out since the software launched on Wednesday, and we're pleased with the results: we've seen sketches compile to anywhere from 99 per cent to 76 per cent of the size generated from the Arduino IDE 1.6.9.
The biggest gains, unsurprisingly, come from the largest sketches. The BareMinimum example, the smallest readable sketch it is possible to create in the Arduino IDE, sees the smallest gain: a compiled binary of 450 bytes in Arduino IDE 1.6.9 drops to 444 bytes in Arduino IDE 1.6.10. The Blink example, most people's first stop for testing, sees higher gains: a compiled size of 1,066 bytes drops to 928 bytes under the new release. Switching to the more complex RowColumnScanning example demonstrates the advantages of LTO properly, though: a size of 1,834 bytes under Arduino IDE 1.6.9 drops to just 1,386 bytes - or just under 76 per cent of its original size - under Arduino IDE 1.6.10.
With numerous other advantages to be found, including improved support for Linux and macOS, improved error reporting, and a new firmware update too for the Genuino MKR1000, Arduino IDE 1.6.10 is a worthwhile upgrade and available to download now from the official website.