Arduino Changelog

What's new in Arduino 1.8.19

Dec 21, 2021
  • [ide]:
  • Removed log4j from IDE. Fix CVE-2021-45105, CVE-2021-45046

New in Arduino 1.8.18 (Dec 15, 2021)

  • [ide]:
  • Upgrade log4j to 2.16.0 - Extra hardening for CVE-2021-44228

New in Arduino 1.8.17 (Dec 15, 2021)

  • [ide]:
  • Upgrade log4j to 2.15.0 - CVE-2021-44228 (thanks @rhowe)

New in Arduino 1.8.16 (Sep 6, 2021)

  • [ide]:
  • Removed the very outdated off-line documentation.
  • Do not crash if a malformed boards index URL is entered in preferences.
  • Fixed font-resizing problem with multiple tabs open.
  • Updated FTDI drivers to version 2.12.36.4
  • [wifi-firmware]
  • Added latest fi:rmwares (up to version 1.4.8) for NINA-based boards

New in Arduino 1.8.15 (May 16, 2021)

  • HOTFIX:
  • Fixed regression in library discovery (failing to compile bundled libs, like SD or Ethernet, on some platforms)

New in Arduino 1.8.14 (May 12, 2021)

  • [ide]:
  • Fix status bar custom board preferences disappearing (thanks @magedrifaat)
  • Boards Manager bugfix: sometimes the "Install" button appeared instead of "Update" after entering a search term.
  • Libraries/Boards Manager: the Type and Category filters are kept after install/uninstall.
  • Added 'deprecated' label support in Boards Manager, platforms marked as deprecated are shown at the bottom of the list.
  • Serial Plotter: line endings dropdown menu now comply with the global preference settings. (thanks @sceniclife)
  • Libraries Manager: Maintainer is displayed instead of the Author.
  • Firmware Updater: Added new firmwares and support for Nano RP2040 Connect.
  • Boards Manager: cached 3rd party package_index.json are no more deleted if the origin URL is removed from preferences, this allows other tools (like arduino-cli), that may have different URLs configuration, to work properly.
  • The board configuration submenus are now scrollable.
  • New shortcut: Shift+click on Serial Monitor button will open the Serial Plotter. (thanks @n-elia)
  • Fixed NPE if no board is selected. (thanks @matthijskooijman)
  • [arduino-builder]:
  • Improved lib detection: check for matching name in library.properties
  • Fix compile if invalid build.options.json is found (thanks @d-a-v)
  • Improved error messages for .cpp/.h file in the sketch

New in Arduino 1.8.13 (Jun 16, 2020)

  • [ide]:
  • Fixed crash on MacOSX >=10.15 with multiple monitor setups.
  • The boards in the boards list in the "Tools" menu are now grouped by platform. This should make the selection easier when there are lots of boards loaded in the IDE. (thanks @matthijskooijman)
  • Fixed save of proxy username/password settings in "manual proxy" section.
  • In "Tools / Programmers" menu only shows programmers related to the currently selected board. (thanks @matthijskooijman)
  • Fixed: sketch window out-of-display if the IDE is restarted after removing an external monitor.
  • Allow baudrate/config change when the Serial Monitor/Plotter is disabled. (thanks @matthijskooijman)
  • Updated jmdns to 3.5.5. Should improve network board detection.
  • Optimized libraries scanning during startup. (thanks @ricardojlrufino)
  • Better vertical centering of file names in tabs. (thanks @ricardojlrufino)
  • Better console rendering of progress bar during upload. (thanks @matthijskooijman)
  • [arduino-builder]
  • FIX REGRESSION: Fixed precompiled libraries containing "wrapper" code that has to be compiled together with the precompiled part.
  • Removed automatic '--relax' for compiles on Atmega2560 MCU
  • Fixed skethbook+bootloader hex merger when the bootloader is in .bin format.
  • Fixed relative path errors when traversing different partitions (in particular on macosx for larger sketches)
  • Added #define variable during lib discovery phase
  • Improved progress report from compile
  • [core]:
  • Updated AVR core to 1.8.3:
  • Wire class now supports timeout
  • Upgraded avr-gcc to 7.3.0-atmel3.6.1-arduino7

New in Arduino 1.8.12 (Feb 13, 2020)

  • [ide]:
  • Reverted the bundled Java JRE to the latest freely redistributable Oracle JRE for all platforms except: macOS (due to notarization); aarch64 (due to missing graphical support)
  • Switching to AdoptJDK demonstrated to be more challenging than expected, bringing in some corner case bugs that were not being caught by our testing procedures: https://github.com/arduino/Arduino/labels/OpenJDK
  • To guarantee the best user experience we decided to revert to the latest working JRE until all the issues are resolved.
  • Improved visualization of compiler errors (@matthijskooijman)
  • Fixed: "Comparison method violates its original contract" error in library manager
  • Serial monitor is no more cleared during upload, so it can be copy/pasted (@PaulStoffregen)
  • [arduino-builder]:
  • FIX REGRESSION: library priority selection for bundled libraries (like SD or Ethernet)
  • FIX REGRESSION: use AVR core installed via Board Manager (when present) instead of the one bundled in the IDE
  • Improved precompiled libraries handling
  • FIX: paths with spaces are now correctly printed in compiler output

New in Arduino 1.8.11 (Jan 28, 2020)

  • [ide]:
  • FIX: Serial plotter do not hang if empty lines are received
  • A lot of accessibility improvements in Libs and Board managers GUI for screen readers (thanks @joew46167)
  • Sligtly improved support for themes in Libs and Board managers (thanks @matthijskooijman)
  • Serial plotter: added serial input text field (thanks @cactorium)
  • MacOSX: support for notarization (thanks @PaulStoffregen for the support)
  • Fix wrong bracket match rectangle on auto format (thanks @magedrifaat)
  • Pluggable discoveries: runtime.platform.path and runtime.hardware.path are now available as variables (thanks @PaulStoffregen)
  • [arduino-builder]:
  • FIX: missed library-detection cache (forcing lib detection on each build)
  • FIX: Windows: the build folder may reside on a different partition
  • FIX: Segfault in arduino-builder with -dump-prefs if no sketch is specified
  • FIX: Allow loading of global user-define platform.txt
  • FIX: Fixed nil pointer exception on some rare case with multiple libs
  • FIX: Print "multiple libraries found for header.h" message only when it really happens
  • FIX: Fixed library priorities on some rare circumstances
  • [hardware]:
  • Updated AVR core to 1.8.2
  • [wifi-updater]:
  • Updated to 0.10.10

New in Arduino 1.8.10 (Sep 13, 2019)

  • [ide]:
  • Live font resize now applies to console and serial monitor too @Pieter12345
  • Make it easier to build the IDE from sources on Windows @Pieter12345
  • Smaller Preference window, suitable for supersmall screens
  • Cache downloaded json and only retrieve them when changed @mattiabertorello
  • Suspend serial monitor if the board gets disconnected abruptly
  • Libraries can now declare dependencies that will be proposed during lib installation
  • SerialPlotter: allow adding labels @chromhelm
  • Support tar.xz archives for Board Manager @vowstar
  • SerialMonitor: add command history (via arrow keys) @Pieter12345
  • Accessibility: add checkbox to enable accessibility in Preferences @joew46167
  • This mode enables a plethora of improvements on voiceover and keyboard navigation.
  • eg. links become accessible buttons, lists are scrollable via arrow keys without much pain
  • [wifi-updater]:
  • Add latest NINA firmware
  • [hardware]:
  • Bundle new avr toolchain (fixes lto issue with 5.4.0 and 64bit compatibility with upcoming macOS Catalina)
  • [arduino-buidler]:
  • Update to 1.4.7 (based on the new arduino-cli)

New in Arduino 1.8.9 (Mar 17, 2019)

  • [ide]:
  • New target! ARM64 boards are now fully supported (Nvidia Jetson and RaspberryPi3 with 64bit operating system)
  • Fix UTF8 related bugs on Windows
  • Fixed: can now compile again using OpenJDK (removed dependency on JavaFx)
  • Fixed: only use touchBar on OSX 10.12 or higher
  • PluggableDiscovery: easily add your own discoverer and make it available in Boards/Port menu (thanks @PaulStoffregen for the idea and the initial implementation)
  • LibManager: reduce slowdown when searching
  • Fixed: ensure a sketch line is visible when it contains an error and must be highlighted
  • Linux: the installer now tries to install a symlink is /usr/local/bin (this doesn't affect usual non-systemwide installation) Thanks @2E0PGS
  • [wifi-updater]:
  • Fix firmware upgrade not being available for 3rd party WINC boards
  • [arduino-builder]:
  • Use lexicographic distance as last chance to spot the right library (if every other tecnique failed)
  • Fix some prototypes being inserted in the middle of a function

New in Arduino 1.8.5 (Oct 4, 2017)

  • IDE:
  • Added workaround for menu visibility bug in MacOSX 10.13 beta. Thanks @puybaret
  • Fixed bug for negative-font-size.
  • New/Rename tabs now allows names starting with a number.

New in Arduino 1.8.4 (Aug 29, 2017)

  • IDE:
  • IDE Toolbar can now go full width on 4K display.
  • Environment variable LIBRARY_INDEX_URL is now correctly parsed (LIBRARY_INDEX_URL_GZ can also be optinally specified). Thanks @xardael
  • Added per-board generic option in config file boards.txt for disabling control of dtr+rts. Thanks @d-a-v
  • CLI: fixed missing "runtime.platform.path" when running without the `--board` option
  • Linux: fixed desktop icon not launching the IDE in certain Window Managers (thanks @herrold)
  • Allow setting low values for console size (correctly applies console.lines=x in preferences.txt)
  • Make Preference window fit 600px height displays
  • Fix error when renaming an unsaved, newly added file. Thanks @matthijskooijman
  • Added the ability to increase/decrease font size via keyboard + mouse shortcuts (Ctrl + MouseWheel)
  • Sketch names starting with a digit are now allowed
  • Serial monitor is opened on a default position if the multi-monitor setup change (this should fix cases when the serial monitor is opened outside of the visibile space)
  • Libraries:
  • Fixed wrong folder name for "Adafruit Circuit Playground" library, now it can be updated cleanly.
  • Fixed wrong include for "RobotIRRemote", now it should not interfere anymore with the real IRRemote.

New in Arduino 1.8.3 (Jun 6, 2017)

  • IDE:
  • Fixed RESOURCE_NAME in install.sh script
  • Serial Monitor: added "Clear output" button. Thanks @MichaelSy
  • added options in preferences.txt for: custom title, comment/uncomment shortcut, always show file extensions. Thanks @MichaelSy
  • added options in preferences.txt to enable/disable typing assistance (auto close brace, auto indent)
  • Enabling "Use external editor" option now requires to save all sketches.
  • CORE:
  • AVR: added availableForWrite() method in generic Stream class. Thanks @eric-wieser
  • AVR: moved flush() method up in the class hierarchy from Stream to Print class. Thanks @matthijskooijman
  • OTHER:
  • Update Wifi101 Firmware Updater plugin

New in Arduino 1.8.2 (Apr 8, 2017)

  • IDE:
  • Fix command line: works again with relative paths (regression)
  • Fix command line: "--save-prefs" works again (regression)
  • AVR toolchain has been updated with a tentative fix for the ld-returned-5-exit-status bug
  • Allow BoardManager to fetch FreeBSD tools (thanks @kevans91)
  • Serial monitor: the input string box is automatically focused when window is selected
  • Serial monitor: now can not be opened during upload
  • Serial monitor: now properly decodes UTF8 characters (thanks @aknrdureegaesr)
  • Serial monitor: added 500k, 1M and 2M baudrates (thanks @dsstutts)
  • Updated RSyntaxTextArea to 2.6.1 (textarea component)
  • Updated jmdsn (mDNS discovery)
  • Allow plugins to attach a listener to compile progress (thanks @tomneutens)
  • Update arduino-builder to 1.3.25:
  • avoid name clashing for libraries
  • cache core archives to speedup compilation consistently
  • CORE:
  • Add Atmel-ICE and JTAGICE3 programmers for AVR chips (thanks @matthijskooijman)
  • AVR: Set unused bits of extended fuse to 1, should remove some avrdude warning during burn bootloader (thanks @descampsa)
  • AVR: USB: send ZLP when needed (allows full 64 bytes packets)
  • AVR: USB: use IAD descriptors instead than Generic (thanks @cuitoldfish)
  • OTHER:
  • SAM platform source code has been moved to its own repository (https://github.com/arduino/ArduinoCore-sam) - all PRs and issues have been moved as well
  • Update Wifi101 Firmware Updater plugin

New in Arduino 1.8.1 (Jan 18, 2017)

  • ide:
  • Increased number of colors on serial plotter to 8
  • libraries:
  • Fixed regression in SD library.

New in Arduino 1.8.0 (Jan 18, 2017)

  • ide:
  • "Save as" now clears the "modified" status
  • builder: Paths with strange UTF8 chars are now correctly handled
  • builder: .hpp and .hh file extensions are now considered valid sketch extension
  • builder: core.a is not rebuild if not needed (improve build time in particular for big projects)
  • Fixed swapped actions "Copy for Forum" and "Copy as HTML"
  • Linux/osx: If an editor tab is a symbolic link it is no more replaced with a real file when saving (see #5478)
  • Increased the upload timeout to 5 minutes (it was 2 min, but it may be not sufficient when uploading via UART a big sketch)
  • core:
  • Added Arduino.org boards
  • Added Adafruit Circuit Playground board
  • Added "-g" option to linker to keep debug information in the .elf file (see #5539)
  • avrdude: Added fake configuration for EFUSE on atmega8 part. This solves a long standing issue with "Burn bootloader".

New in Arduino 1.6.13 (Dec 16, 2016)

  • ide:
  • Improved robustness of Serial Plotter while dealing with malformed or partial data. Thanks @xloem.
  • Fixed regression on command line upload.
  • Bug fix installing libraries from command line: the IDE tries to update the libraries index but it didn't use it straight away (this caused issues mainly on CI environments)
  • Libraries and Boards Managers: if a download error happens (CRC error) the IDE tries to download the file again without the need to remove the corrupted file manually.
  • Improved serial plotter with horizontal axis and grid. Thanks @duff2013
  • Fixed a bunch of small bugs in the editor.
  • core:
  • avr: set default values for "upload.verify" and "program.verify" (allows compatibility with older IDE). Thanks @per1234

New in Arduino 1.6.12 (Sep 23, 2016)

  • IDE:
  • Refactor Editor code, solving some long standing bugs and cleaning up everything
  • Add initial Cloud API integration. When plugging a new board, if an additional core is needed, the user will be prompted to install it
  • Improved examples menu organization
  • Recompiled arduino-builder with Go 1.7.1 to avoid crash on OSX Sierra
  • CORE:
  • avr: Add support for internal 2.56V and 2.56V ext. cap analog references on the ATtiny25/45/85.
  • Added String::toDouble().
  • Update to avrdude 6.3 with patch to ignore unused fuses (burn bootloader works also wih outdated cores)

New in Arduino 1.6.11 (Sep 23, 2016)

  • IDE:
  • Fixed a serious bug that prevented some 3rd party boards, installed through external index.json URL, to work correctly.
  • Fixed a bug in boards manager that, in some rare circumstances, could lead to remove bundled tools when uninstalling a previously installed AVR core.
  • builder: fixed regression about inclusion of files in subfolders of the sketch
  • avrdude: reverted to version 6.0.1, until all discovered regressions are solved

New in Arduino 1.6.10 (Jul 26, 2016)

  • IDE:
  • A lot of bugfixes to builder: https://github.com/arduino/arduino-builder/issues?q=milestone:1.3.19+is:closed
  • Libraries can now define the property "includes" in the library.properties to tell the IDE which `#include ` lines should be added to the sketch when the "Include library" command is used. See: https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification#libraryproperties-file-format
  • Examples are now filtered by architecture
  • Added more graceful handling of upload failures
  • Solved a bug that crashed the IDE with some exotic serial devices
  • CORE:
  • avr: toolchain updated to latest Atmel release 3.5.3 http://distribute.atmel.no/tools/opensource/Atmel-AVR-GNU-Toolchain/3.5.3/. The updated tools are now binutils-2.26, gcc-4.9.2, avr-libc-2.0.0, gdb-7.8
  • avr: avrdude updated to version 6.3
  • fixed a small bug that caused a compile error on some 3rd party derivatives boards based on Leonardo
  • sam: added snprintf_P to avr/pgmspace.h stub. Thanks @jantje
  • avr: Fix TX buffer being overwritten by multiple Wire.write(...) calls in slave mode. Thanks @kellerkindt
  • Another small fix to String iterators. Thanks @Ivan-Perez @Chris--A
  • Added getTimeout() method to Stream. Thanks @mattb5906
  • avr: Fixed USB wakeup event handling, this solves some rare lockups of serial port on some linux distributions
  • Speed and size improvement on Print::printFloat(..). Thanks @bblanchon
  • avr: Added Serial.availableForWrite() for USB-CDC serial ports
  • avr: Added PIN_defines to all board variants

New in Arduino 1.6.9 (May 24, 2016)

  • ide:
  • Catch and report errors during parsing contributed index files
  • Fixed IDE version color on about dialog box. Thanks @ivanebernal
  • The "always-on-top update notification" popup is now less intrusive.
  • Fixed untraslated string during IDE startup splash window. Thanks @ivanebernal
  • New arduino-builder: better core library detection, faster operations when recompiling and more.
  • Fixed multitab error reporting
  • Rework serial port discovery to be faster, less cpu intensive and FTDI friendly
  • Avoid launching multiple concurrent compile and upload operation
  • Use hi-res icons for Serial monitor and plotter
  • Make http://librarymanager and http://boardmanager links clickable from the editor window
  • Cut/Copy actions are disable when there is no text selected. Thanks @avargas-nearsoft
  • Added more OSX native (emacs-like) keybindings. Thanks @nopdotcom
  • Fixed Ctrl+Del: now deletes the word behind the cursor instead of the entire line. Thanks @avargas-nearsoft
  • Fixed "Verify code after upload" option in preferences. Thanks @gh-megabit
  • core:
  • String class now supports iterators. Thanks @Chris--A
  • sam: Allow 3rd party boards that depend on SAM core to use their own USB vid/pid and manufacturer/product strings. Thanks @philmanofsky.
  • avr: Check at runtime if 32u4 boards are shipped with new bootloader; if so write bootloader magic value in an unproblematic RAM location
  • avr, sam: Added "reciper.ar.pattern" to plaform.txt to allow compatibility with older version of Arduino IDE. Thanks @per1234
  • libraries:
  • Bridge / bridge.py: added support for SSL sockets (Yun firmware >=1.6.2 is needed).

New in Arduino 1.6.8 (Mar 10, 2016)

  • ide:
  • Added support for GUI interface scaling for UHD monitors.
  • Editor position is saved when closing with Alt+F4 or clicking on the "X" button. Thanks @willie68
  • Fixed a NullPointerException when dealing with some rare combination of package_*.json files
  • Fixed incorrect key bindings handling for changing tab. Thanks @matthijskooijman
  • MacOSX: Fixed handling of add indent/remove indent shortcuts (CMD+[ and CMD+])
  • Fixed incorrect update of available libraries in Library Manager. Thanks @vicnevicne
  • Serial plotter now correctly resize graphs with negative values. Thanks @vicnevicne
  • Improved sketch preprocessor when handling C++11 keywords. Thanks @matthijskooijman @igrr
  • Updates to keyword pigmentation to match Create
  • Fixed display of LITERAL1 keywords
  • Added target board information when "Error compiling" message is displayed. Thanks @PaulStoffregen
  • core:
  • avr: fixed USB_SendControl(...) for buffer with len > 64. Thanks @NicoHood
  • avr: fixed yield() usage inside delay(). Thanks @vbextreme
  • sam: fixed USB descriptor length
  • avr: reduced boiler-plate for ISR declarations. Thanks @paulo-raca
  • avr: added Timer3 support for atmega1284/1284p. Thanks @feilipu
  • sam: added USB CDC send break support and readBreak API
  • libraries:
  • Added support for Arduino/Genuino 101 to: TFT, Ethernet, SD
  • SD: the library is now board-agnostic. Thanks @feilipu

New in Arduino 1.6.7 (Dec 17, 2015)

  • ide:
  • New arduino-builder: faster, better prototype generation and library discovery logic, and more. See https://github.com/arduino/arduino-builder/compare/1.0.5...1.3.9
  • Serial plotter now allows to plot multiple values at once. Thanks @henningpohl
  • New translations
  • Added support to file:// protocol for boards manager URLs
  • Portable sketchbook folder can now be any arbitrary location
  • Fixed a bug that caused Boards Manager to install the same tool twice or more, thus wasting disk space, if other cores where using tools delivered by arduino
  • Fixed various Boards manager glitches, in particular when removing a board
  • Windows: Arduino IDE icon is now in high definition, bye bye that blurry icon
  • Remote upload without SSH is now supported (allows OTA upload for many 3rd party boards). Thanks @me-no-dev.
  • libraries:
  • SPI: Added SPI.transfer16(...) function to SAM core.
  • Ethernet, WiFi, SoftwareSerial: Fixed flush() behaviour: the flush function is no more dropping the receive buffer, as per 1.0 API specification. Thanks @drmpf
  • core:
  • Fixed wrong timings for HardwareSerial::flush() in SAM core. Thanks @borisff
  • Stream: Optional lookahead and skipChar options added to parseInt and parseFloat, parseFloat also support parsing floats without a leading 0, Stream::find(char) added to SAM. Thanks @Chris--A.
  • Leonardo/Micro (and other atmega32u4 based boards) now have SerialUSB alias for Serial
  • Leonardo now has LED_BUILTIN_RX/TX definitions in variant file. Thanks @NicoHood

New in Arduino 1.6.6 (Nov 10, 2015)

  • ide:
  • Switched to Java 8, which is now both bundled and needed for compiling the IDE
  • Added link to unofficial boards support list in preferences
  • Limit of possible new sketches in a day raised to 676. Thanks @Chris--A
  • Windows: fixed a bug when running username had non ASCII chars
  • Lots of fixes
  • ArduinoISP examples moved under 11.ArduinoISP folder
  • MacOSX: binary is now able to tell the IDE its current working directory. Eases life to those using the IDE from the CLI
  • CLI: if specified board doesn't exist, fail instead of using a default one
  • Windows: IDE stores its stuff under %LOCALAPPDATA% instead of %APPDATA% (which was a roaming folder). %APPDATA% content is automatically migrated to new location
  • Added 74880 baud rate to serial monitor. Thanks @Chris--A
  • When changing tab, file name is shown in window title
  • IDE groups compiled files into "libraries", "core" and "sketch" folders
  • Added Serial Plotter. Thanks @henningpohl
  • Editor: triple click selects whole line
  • Windows: IDE startup feels faster
  • Examples of libraries with a .development flag file in their root folder won't get marked as read-only. See #2619
  • Update notifications: when updates are available from either Library or Boards Managers, a popup will be shown
  • Introducing arduino-builder, a command line tool that properly calls gcc. Fixes lots of issues about buggy preprocessing.
  • Each open sketch gets built in its own folder, allowing the IDE to recycle previous compilations and being much faster
  • "Go to line": CTRL+L or Edit > Go to line... will open a dialog where you can type the line number where you want the editor to jump to
  • Added boards.local.txt support: like platform.local.txt, allows to enrich a boards.txt definition without modifying the original file. Thanks @Wackerbarth
  • Library to library dependencies: when your sketch imports a library, and that library uses another, the IDE will find out without you having to add a useless #include to your sketch
  • Allow per-platform keywords.txt. Thanks @PaulStoffregen
  • Allow spaces in IDE install path on Linux. Thanks @matthijskooijman
  • Fixed a lot of documentation. Thanks to @per1234 @q2dg
  • Fixed parsing for SystemProfiler when scanning for available serial ports on Macosx El Capitan
  • libraries:
  • Bridge: YunClient.connected() returns true if there are bytes available for read. Thanks @RobAtticus
  • Bridge: YunClient.stop() now empties all buffers. Thanks @RobAtticus
  • Ethernet: Added missing keywords. Thanks @per1234
  • Ethernet: Fixed DNSClient.inet_aton() function. Thanks @jhorck
  • Ethernet: Expose optional DHCP timout parameters to Ethernet:begin(). Thanks @chaveiro
  • Wire: Implemented Wire.end().
  • Wire: Fixed bug with repeated START for AVR. Thanks Nate Williams
  • Wire: Resolved timing issues on AVR. See #2173 #1477.
  • Wire: Fixed bug in repeated start in slave mode on SAM. See #3908
  • SD: Change "char *" to "const char *" on methods accepting a string as a parameter. Thanks @Ivan-Perez
  • Scheduler: Added support for cortex-M0. Thanks @PeterVH
  • core:
  • Added new PluggableUSB and HID support. This change introduces a more powerful API for libraries that wants use advanced features of USB-Device. Thanks to @obra @NicoHood @matthijskooijman @nospam2000 @weizenspreu
  • AVR: fixed wrong turnOffPWM() for TIMER0B. Thanks @gonzoveliki
  • AVR: added support for AtmegaXXu2. Thanks @NicoHood
  • AVR: a bunch of USB Core bug fix. Thanks @NicoHood
  • AVR: Expose serial setting from USB-CDC serial port. Thanks @matthijskooijman
  • ArduinoISP is now compatible with every architecture (not only AVR) and is much more stable. Thanks @PeterVH
  • Print not aborting on write() failure. Thanks @stickbreaker
  • AVR: Faster interrupts patch. Thanks @xxxajk
  • AVR: Fixed pulseInLong wrong measurements.
  • AVR: Removed a bunch of compiler warnings. Thanks @NicoHood
  • Improved variants files for Boards Gemma and Ethernet

New in Arduino 1.6.5-r5 (Oct 18, 2015)

  • [ide]
  • Fixed a but preventing upload on boards that do not supply VID/PID. See #3738

New in Arduino 1.6.5 (Jun 15, 2015)

  • [ide]:
  • File, Sketch and Tools menu items are properly handled when switching between different windows
  • Sketch > Export compiled Binary: saves the compiled binary (hex, bin) into the sketch folder. Thanks @championswimmer
  • New editor, based on RSyntaxTextArea. Thanks @ricardojlrufino
  • New keywords. Thanks @Chris--A
  • Easier "additional boards manager url" field: a wide text area opens by clicking the added button (right side of the text field)
  • Rewritten code of Preferences window: its content is now correctly drawn on every OS
  • Fixed a bug that made the IDE notify users of invalid libraries too many times. Thanks @Chris--A
  • Removed JNA. Less native stuff and less chances of incurring into an UnsatisfiedLinkError
  • Many new and old issues closed. Thanks to many, and @Chris--A in particular
  • Faster libraries list update
  • Serial monitor stays opened during upload, disabled. Thanks @avishorp and @Wackerbarth
  • CLI: --get-pref can now be called without a pref name. If pref name is missing, IDE dumps all preferences
  • Holding SHIFT when hovering the save icon will trigger a "Save As"
  • Removed proxy settings from File > Preferences: IDE will use system settings
  • Linux versions bundle the latest JVM, 1.8.0_45
  • Local docs: if your sketch has a "docs" folder, you can add local links to it. For example file://./docs/index.html
  • will use your browser to open file index.html from the "docs" folder of your sketch
  • When using "external editor" mode, sketch code is updated when the IDE gets focused
  • Added keyboard shortcuts to IDE menus: ALT+F for File, ALT+E for Edit and so on
  • Added support for Dangerous Prototypes Bus Pirate as ISP
  • Added "Close" button to Boards/Libs Managers, in order to help linux people with weird Window Managers
  • Added File > Open Recent menu, showing the last 5 opened sketches
  • Windows: added Arduino Zero drivers
  • Tons of minor fixes
  • [libraries]:
  • LiquidCrystal fixes. Thanks @newbie15
  • Added SPI Transactions to TFT lib
  • Stepper: support for 5-phase/5-wires motors. Thanks @rdodesigns
  • Stepper: increased precision in timing calculations. Thanks @ekozlenko
  • Firmata and Temboo: dropped our vesions, tagged released are downloaded from their respective git repos
  • [core]:
  • AVR: delayMicroseconds(..) doesn't hang if called with 0. Thanks @cano64
  • AVR: delayMicroseconds(..), added support for 1Mhz, 12Mhz and 24Mhz. Thanks @cano64
  • AVR: added missing case in detachInterrupt(). Thanks @leres, @vicatcu
  • SAM: added watchdog routine for Due. Thanks @bobc
  • AVR+SAM: reworked pulseIn() function to become GCC agnostic
  • AVR+SAM: added pulseInLong() (based on micros()) to help getting good results in interrupt-prone environments
  • AVR: fixed regression in HardwareSerial.flush(). Thanks @chromhelm

New in Arduino 1.6.4 (May 7, 2015)

  • IDE:
  • Added support to Arduino Gemma
  • Restored previous "error" colour in black lower part of the IDE
  • Relaxed IDE checks against libraries versions
  • Fixed colour of 'char' keyword. Thanks @mixania
  • Tools submenu show selected subentry. Thanks @PaulStoffregen
  • Boards and Libraries Managers command line (with contribs from @Lauszus): --install-board "arduino:Arduino SAM Boards (32-bits ARM Cortex-M3):1.6.3" and --install-library "Bridge:1.0.1". Version can be omitted: if omitted, latest version available is automatically picked
  • Warning levels can be set in File > Preferences
  • When compilation fails, editor highlights the reported row
  • Windows and MacOSX: updated bunbled JVM to 1.8.0_45 (latest available atm)
  • Disabled "uncertified" warning (requires avr core >= 1.6.6, sam core >= 1.6.4)
  • Additional boards/cores can be listed specifying comma separated list of package_SOMETHING_index.json url in File > Preferences
  • MacOSX: fixed wrong sketch opened when double clicking on a .ino file
  • Boards and Libraries main files are downloaded directly (no proxy php script), fixing some glitches when using a proxy server
  • Added notification if the bundled AVR core is newer than the one installed through Boards Manager (useful when upgrading the IDE)
  • Fixed error when in Serial and Network discovery that was leaving the Ports menu greyed out
  • IDE now deletes temporary files on exit. When using the CLI, --preserve-temp-files arguments skips deletion
  • LIBRARIES:
  • Bridge fixes
  • SD: allow multiple SD instances (@squelched)
  • SD: fix examples with Ethernet shield

New in Arduino 1.6.3 (Apr 3, 2015)

  • IDE:
  • Fixed an ArchiveExtractor issue when dealing with native stuff, affecting some linuxes
  • MacOSX: MACOSX_BUNDLED_JVM property is automatically set to JAVA_HOME if not provided
  • New splashscreen image
  • New editor theme
  • MacOSX and Windows: https links were not working, fixed
  • CORE:
  • Upgraded toolchains: statically compiled, ship with Link Time Optimization plugin (disabled by default)
  • Restored backward compatibility by providing a platform.txt in-memory rewrite: old values (eg: compiler.path) are converted to new values
  • platform.txt rewriting can be disabled if target platform has a "rewriting=disabled" key/value pair set
  • AVR bundle files (core files and toolchain) is again inside IDE "hardware" folder, instead of unpacked into user's home folder at first IDE startup
  • Advise of duplicate libraries after compiling. Thanks @PaulStoffregen

New in Arduino 1.6.2 (Mar 30, 2015)

  • Boards and libraries managers, for one click install of additional boards and libraries
  • In platform.txt, pre and post build hooks can now be specified.
  • Windows and MacOSX JVM Xmx halved to 512M
  • Introduced starting splashscreen with progress status: will be used for notifying user of long running startup tasks
  • Available ports list is now generated in background: hence "tools" menu is much faster
  • MacOSX: appbundler merged our contribution, switching to upstream version https://bitbucket.org/infinitekind/appbundler/
  • CORE:
  • Stream: fixed bug in findUntil routine #2591 @Xuth
  • LIBRARIES:
  • EEPROM: Replaced existing library with more complete implementation @Chris--A
  • SD: fixed endless timeout on 32bit core (Due) @Timmmm
  • Ethernet: fixed headers include path
  • SPI: do not influence state of SS pin if it's already been set as output by user sketch @vicatcu
  • Bridge: discard message if received length is bigger than rx buffer @arve0

New in Arduino 1.6.1 (Mar 10, 2015)

  • [ide]
  • Improved Yun detection for upload via network (Ron Guest)
  • In platforms.txt "objcopy" recipe is no more tied to the "hex" format (Arnav Gupta)
  • /dev/cu.* serial ports are now filtered from the port list on MacOSX
  • Ports in ports list are now grouped by type
  • Upgraded avr-gcc toolchains to 3.4.5
  • Fixed: wrong parsing of boards.txt when using submenu and boards id with underscores
  • Windows: updated bundled JVM to latest 8u31
  • Windows: JVM memory settings can be customized editing arduino.l4j.ini and arduino_debug.l4j.ini files
  • "new" button now behaves as "File -> New..." menu: a new window with an empty sketch is created
  • Windows: opening a lonely sketch caused the IDE to crash. Fixed with a bounty on bountysource @gerito1
  • Bridge: fixed bug with multiple and failing YunClient.connect calls @sngl
  • Translations updated
  • Improved SoftSerial library and optimized its memory usage @matthijskooijman
  • Fixed: status board was not changing when using custom menu @PaulStoffregen
  • Fixed: better error message when using a busy serial device
  • Fixed: missing bool operator on EthernetClient
  • Fixed: missing bool operator on SoftSerial
  • MacOSX: back to native file dialogs and buttons, when using experimental version
  • MacOSX: command line interface now works also with java-latest version
  • Improved library name matching @PaulStoffregen. Avoids conflicts with libraries that bundle files equally named

New in Arduino 1.6.0 (Feb 10, 2015)

  • [ide]
  • Updated help with the latest docs
  • Updated translations

New in Arduino 1.5.8 Beta (Oct 2, 2014)

  • ide:
  • Find/Replace over multiple tabs (Erwin Ried, Fulvio Ieva)
  • Fix wrong "Replace" behavior with empty "Find" field (Fulvio Ieva)
  • A lot of command-line improvements (Matthijs Kooijman)
  • Cursor is not moved when invoking autoformat
  • libraries:
  • SPI: added transaction API (Paul Stoffregen)
  • https://github.com/arduino/Arduino/pull/2223
  • https://groups.google.com/a/arduino.cc/forum/#!msg/developers/TuZLfjeZjDI/6deNjw3Y9m4J
  • FileIO bridge: fixed wrong return value in File::size() for size >32768
  • Updated Temboo to latest version
  • Updates/Fix to various examples
  • core:
  • sam: "new" and "delete" do not bring in 50Kb of stdclib anymore
  • Correct implementation of gcc specific internal functions (__cxa_guard_*) (Alexey Guseynov)
  • Fix for upload problems on Leonardo (and derivative boards based on mega32u4)
  • Small improvements on String class (Matthijs Kooijman)
  • Fixed size of available flash for mega2560 boards (Leonardo Milani, Arnav Gupta)
  • sam: removed useless empty digitalPinToTimer(..) macro stub (Bill Perry)

New in Arduino 1.5.7 Beta (Jul 7, 2014)

  • core:
  • Upgraded AVR toolchain: gcc 4.8.1, avr-libc 1.8.0
  • Upgraded ARM toolchain: gcc 4.8.3-2014q1
  • Upgraded avrdude to version 6.0.1
  • ARM gcc doesn't require ia32-libs anymore on 64 bits linux systems
  • avr: fixed typo in SerialEvent3 handling (Matthijs Kooijman)
  • avr: HardwareSerial support for different size of TX and RX buffer sizes (Jan Baeyens)
  • avr: HardwareSerial support for buffer sizes bigger than 256 bytes (Jan Baeyens)
  • sam: Added configuration (parity, data bits, stop bits) to Serial1/2/3 of Arduino Due (bluesign2k)
  • Removed a lot of compiler warnings from Arduino core
  • avr: Fix EXTERNAL_NUM_INTERRUPTS for atmega128rfa1 and atmega256rfr2 (Matthijs Kooijman)
  • sam: Fix to Wire::endTransmisson() return value (bluesign2k)
  • sam: Fix to Wire usage of TWI status register (bluesign2k)
  • avr: Fixed PROGMEM statements to be compatible with newer avr gcc (Scott Howard)
  • avr: Improved USB-CDC write speed (Justin Rajewski)
  • avr: Improved USB-CDC read code (Paul Brook)
  • avr: Fixed race condition in USB-CDC transmit (Paul Brook)
  • Fixed wrong NULL pointer handling in Stream class (Amulya Kumar Sahoo)
  • Added initVariant() hook to allow 3rd party variant-specific initialization
  • ide:
  • Moved to appbundler for building releases for MacOSX. (Haavar Valeur) This should remove dependency from Java 1.6 on recent MacOSX.
  • Added support for '-' and '.' in filenames (Georg von Zengen)
  • (re)Added 'arduino_debug.exe' in Windows build for debugging purposes
  • Magic baudrate is no longer removed (it was a workaround for RXTX) (for more info see github issues: #1203 and #995)
  • Allow overriding platform.txt using platform.local.txt (Matthijs Kooijman)
  • Explicitly define compiler.path in avr/platform.txt (Matthijs Kooijman)
  • Make the low available memory message a warning (Matt Robinson)
  • Proceed with upload even if port can't be found (David Mellis)
  • Added support for ArduinoISP
  • Fix toolchain command line to compile assembler files (Jimmy Hedman)
  • If two libraries have the same header file use the lib with the same folder name (Paul Stoffregen)
  • libraries:
  • Updated SpaceBrew library
  • Fixed HttpClient::running() function
  • Fixed HttpClient::ready() function (Manuel Rabade)
  • Added HttpClient::noCheckSSL() method
  • Improved speed of YunSerialTerminal
  • Fixed CRC of shutdown command on YunSerialTerminal example
  • Updates/Fix to various examples
  • Added Wire.setClock(..) method (Kristian Sloth Lauszus)
  • Robot_Control: removed duplicated SPI and Wire (Xun Yang)
  • Robot_Control: fixed issue on motors being opposite (Xun Yang)
  • Robot_Control: updated turning algorithm (Xun Yang)
  • Esplora: added reading form Tinkerkit inputs
  • SoftwareSerial: Fix idle level when initializing with inverted logic (Jens-Christian Skibakk)
  • firmware:
  • Wifishield: fixed paths on firmware upgrade scripts

New in Arduino 1.5.6 R 2 Beta (Feb 24, 2014)

  • [ide]:
  • JSSC: Fixed NPE when RXCHAR event with no bytes

New in Arduino 1.5.6 Beta (Feb 21, 2014)

  • [ide]:
  • Implemented 1.5 library specification Rev.2 (https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification)
  • Replaced RXTX library with JSSC (Alexey Sokolov) http://code.google.com/p/java-simple-serial-connector/
  • If two libraries provides the same .h file prioritize the library with tha same folder name
  • Improved command-line parsing (Matthijs Kooijman)
  • Windows: added arduino_debug.exe to help debugging errors when launch4j fails to start IDE
  • [libraries]:
  • TFT: warning messages in PImage class and strings inside examples now stored in flash to save RAM.
  • Ethernet: added operator == for EthernetClient class (Norbert Truchsess)
  • Robot_Control: removed embedded copies of Wire and SPI to allow their use in sketch. Old sketches using Robot_Control now must include Wire.h and SPI.h.
  • Robot_Control: fixed issues about motor turning algorithm
  • Bridge: optimized FileIO.doBuffer() (bobh66)
  • [core]:
  • avr: Pile of HardwareSerial improvements (Matthijs Kooijman):
  • Remove duplicate code from HardwareSerial::begin() methods
  • Simplify HardwareSerial::begin() (Rob Tillaart)
  • Use constants for register bit positions in HardwareSerial
  • Fix HardwareSerial::flush() when interrupts are kept disabled for a while
  • Fix lockup when writing to HardwareSerial with interrupts disabled
  • Disable the UDRE interrupt sooner in HardwareSerial (Nathan Blackwell)
  • Put each HardwareSerial instance in its own .cpp file in order to save memory for unused UARTS
  • In HardwareSerial::write, bypass the queue when it's empty in order to improve throughput when using high baudrates (KurtE)
  • sam: Fixed wrap-around bug in delay() (Mark Tillotson)
  • sam: Fixed regression in analogRead() (fails to read multiple channels) (Mark Tillotson)
  • sam: Fixed loops in Reset.cpp (Matthijs Kooijman)
  • sam: Optimized delayMicroseconds() (Rob Tillaart) #1121
  • sam: added itoa() and related functions
  • Optimized Print::print(String&) method, now uses internal string buffer to perform block write
  • Improved portability of String class (maniacbug) #695
  • Make some operators in IPAddress const (Matthijs Kooijman)
  • Fix for compiling assembler files with newer gcc

New in Arduino 1.5.5 Beta (Nov 29, 2013)

  • [ide]:
  • Added missing keywords: YunServer, YunClient, pow
  • Improved folder ignore: now hidden, starting with a dot, and SCCS folders are ignored
  • Improved auto format: now handled by Artistic Style http://astyle.sourceforge.net/
  • Improved SSH uploader (Arduino Yun): uses file ~/.ssh/config if available. Allows public key only authentication and ssh servers listening on ports other than 22.
  • Font anti-aliasing now ON by default (users will have to either delete or manually edit their preferences.txt file)
  • Added warning message when opening sketches with additional files with illegal names
  • (windows) Upgraded embedded Java runtime to version 7: much faster startup
  • Improved files open/save dialogs
  • Added line numbers, can be enabled/disabled from preferences (Cayci Gorlitsky)
  • Removed check on forbidden file in 1.5 formatted libraries (#1692)
  • (windows) Updated msys-1.0.dll to the latest version (Windows 8.1 compatibility)
  • Using [code] tag instead of [quote] in "Copy for forum". Removed color coding.
  • When an hardware addon reference another core also the libraries are referenced.
  • It's now possible to specify additional custom board parameters from command line.
  • Sketches path can be relative (#1493)
  • Example and Boards are now scrollable.
  • Fixed localization issues that sometimes prevented the IDE to start.
  • Added "Using library..." debugging message in verbose compile.
  • Improved preprocessor (fixes #1653, #1687, #817, #1293, #1245)
  • Fixed StringStartsWithEndsWith, KeyboardMessage, LCD CustomCharacter, Blink without delay, SD List files, Arduino Robot examples
  • Added PID/VID for older Arduinos
  • (mac) Improved board autodetection on Mac OS X
  • [libraries]:
  • Bridge: Fixed buffer overflow in File::doBuffer() (dreggy)
  • Bridge: Fixed timeout in Bridge::transfer()
  • Bridge: Fixed return value of Bridge::get(..) (returning 0 with valid data len >0)
  • Bridge: Implemented multi-byte File::read(..)
  • sam: Fixed SPI initialization (when using extended API and multiple CS)
  • Partially fixed the behavior of EthernetClient::flush(), now it doesn't discard
  • incoming data BUT it doesn't wait for outgoing data to be successfully transmitted.
  • Esplora: Added support for display GREENTAB_L
  • [core]:
  • sam: Fixed wrong initialization for ADC timings (analogRead speed Arduino DUE improved by a factor x10)
  • avr: Fixed wrong extended fuses on Arduino Yún when using external programmer
  • Added LED_BUILTIN metadata in variant files
  • avr: Refactored Megavariants definitions in boards.txt (Kristian Sloth Lauszus)
  • avr: Removed File object destructor. In order to free memory allocated by a File object the safest way is to call its close() method
  • Added digitalPinToInterrupt variant macro (Paul Stoffregen)
  • avr: added variant file for Arduino Ethernet
  • Added SERIAL_metadata in variants files (Paul Stoffregen)

New in Arduino 1.5.4 Beta (Sep 16, 2013)

  • [ide]:
  • Revert to English locale if the system default is not available
  • Added support for Arduino Yun
  • Autodetect of boards connected to each serial port
  • Network upload and discovery for Arduino Yun
  • [libraries]:
  • sam: fixed wrong SPI initialization (noblepepper)
  • updated all instances of Adafruit_GFX to the latest version
  • added libraries for Arduino Yun
  • [core]:
  • avr: fixed bug introduced with recent optimizations in HardwareSerial (atmega8 cpu) (darryl)

New in Arduino 1.0.5 (May 18, 2013)

  • [core]:
  • [avr] malloc bug: backported avr-libc 1.8.0 implementation
  • [avr] removed deprecated interrupt handlers causing compiler issues with newer avr-gcc.
  • [avr] added c_str() method to String
  • [avr] Stream "_timeout" field and related methods are now protected
  • [libraries]:
  • Upgrades to WiFi library
  • Fixed a bunch of examples
  • Added Arduino Robot libraries
  • Added TFT display library
  • [firmwares]:
  • Upgrades to WiFi firmwares
  • [ide]:
  • Backport from 1.5: install Library from .zip file or folder

New in Arduino 1.0.4 (Mar 12, 2013)

  • [core]:
  • Fixed malloc bug
  • [libraries]:
  • Fixed memory leak when calling Ethernet.begin() multiple times.
  • Fixed SD example listfiles.ino
  • Fixed a lot of Esplora examples
  • Added GSM library
  • [environment]:
  • Sort entries in preferences.txt
  • Fixed some wrong translations
  • Fixed NPE due to permissions IO error
  • Updated drivers for Windows (all-in-one, signature for Win8)
  • [bootloaders]:
  • Fixed a bunch of bugs on Mega2560's bootloader

New in Arduino 1.5.2 Beta (Feb 8, 2013)

  • [ide]:
  • Scrollable editor tabs (Shigheru KANEMOTO)
  • Scrollable menus
  • Portable Arduino (Shigeru KANEMOTO)
  • Default sketchbook folder for linux is now "Arduino"
  • Fixed IDE startup bug "Menu has no enabled items"
  • Command line build.
  • Fixed some language strings (Shigeru KANEMOTO)
  • Fix to boards.txt: added Micro and fixed Lilypad bootloader path
  • Removed check for ".h" existence in libraries.
  • Deleting tab from IDE does not delete from temporary folder
  • Fixed NPE when unknown boards/platforms are selected in preferences
  • Extended command line build flags
  • Undo/Redo move cursor and focus to where the code has been undone/redone
  • [arduino core]:
  • sam: attachInterrupt() now works also on pins that belongs to PORTD
  • sam: portOutputRegister() is now writeable.
  • sam: fixed issue on weak-symbol for some interrupt handlers
  • sam: fixed BSoD on some Windows machine (louismdavis)
  • sam: added CANRX1/CANTX1 pins 88/89 (same physical pin for 66/53)
  • sam: fixed analogWrite when used in very thight write loops (V.Dorrich)
  • sam: fixed SerialUSB.write() while sending big buffers (Bill Dreschel)
  • sam: SerialUSB receive buffer size is now 512 (PeterVH)
  • sam: Fixed SerialUSB data handshake when host sends a lot of data (PeterVH, stimmer)
  • [libraries]:
  • sam: Added Servo library
  • sam: Added WiFi library
  • Fixed USBHost MouseController example
  • [other]:
  • Merged all improvements made in Arduino IDE 1.0.3
  • Merged all improvements made in Arduino IDE 1.0.4 (not yet released)

New in Arduino 1.0.3 (Dec 11, 2012)

  • [hardware]:
  • Added support for the Arduino Esplora
  • [environment]:
  • Signed application for MacOSX 10.8
  • [core]:
  • Fixed power-up-starts-bootloader in Leonardo (and derivative) bootloaders. (Kristian Lauszus) (https://github.com/arduino/Arduino/pull/118)
  • Fixed digital_pin_to_timer_PGM array in Leonardo variant.
  • Published updated Wifi firmware
  • Updated source code for atmega8 bootloader
  • [libraries]:
  • Added 600 baud support in SoftwareSerial (Sébastien Jean) (http://github.com/arduino/Arduino/issues/1146)

New in Arduino 1.0.2 (Nov 10, 2012)

  • [hardware]:
  • Added support for the Arduino Micro.
  • Added support for the LilyPad Arduino USB.
  • For Arduino Mega, having avrdude use "wiring" not "stk500v2" for uploads (to improve auto-reset behavior). http://code.google.com/p/arduino/issues/detail?id=806
  • [environment]:
  • Find-In-Reference now works whether or not text is selected. http://code.google.com/p/arduino/issues/detail?id=940
  • Not generating prototypes for functions that already have them. http://code.google.com/p/arduino/issues/detail?id=973
  • Improved line numbers for error messages. (Paul Stoffregen) http://code.google.com/p/arduino/issues/detail?id=907
  • Automatically create libraries folder in the sketchbook. http://code.google.com/p/arduino/issues/detail?id=986
  • Tutorial on installing libraries (linked from readme.txt in the libraries folder). (Limor Fried)
  • Fix to allow selection of Norwegian. (Rune Fauske)
  • Fix to race condition / occasional error in compilation. (gandrewstone) http://code.google.com/p/arduino/issues/detail?id=950
  • Don't break long C++ comments during auto-format. http://code.google.com/p/arduino/issues/detail?id=255
  • [core / libraries]:
  • Included WiFi library and wifi shield firmware.
  • Added ability to specify serial configuration (data bits, stop bits and parity check) in Serial.begin(). (Alarus) http://code.google.com/p/arduino/issues/detail?id=770
  • Avoided overruns of the incoming serial (CDC) buffer on the Leonardo.
  • Avoided auto-reset of the Leonardo when opening serial port after upload without specifying a baud rate. (Peter Van Hoyweghen)
  • Fix for tone() on the Leonardo. (Shigeru Kanemoto) http://code.google.com/p/arduino/issues/detail?id=960
  • Fix for SD library on Leonardo. http://code.google.com/p/arduino/issues/detail?id=931
  • Added other write functions on Leonardo. http://code.google.com/p/arduino/issues/detail?id=958
  • Added support for Leonardo interrupts 2 and 3. (Kristian Lauszus)
  • Print ovf, inf, or nan accordingly in Serial.print(). (Nick Gammon) http://code.google.com/p/arduino/issues/detail?id=946 http://code.google.com/p/arduino/issues/detail?id=961 http://code.google.com/p/arduino/issues/detail?id=967
  • Fix initialization of SPI data lines. (gandrewstone) http://code.google.com/p/arduino/issues/detail?id=888
  • Serial.flush() waits for last byte to transmit. (michele.mazzucchi) http://code.google.com/p/arduino/issues/detail?id=871
  • Adding overloads so Serial.write(0) works. http://code.google.com/p/arduino/issues/detail?id=1006
  • [build]:
  • Fix Linux arduino script when there are spaces in directory name.
  • Pass Linux command line arguments from arduino script through to the Java code. (Allows specifying sketch to open on command line.)
  • [examples]:
  • Included examples for the starter kit.

New in Arduino 1.0.1 (Jun 1, 2012)

  • environment:
  • The IDE has been internationalized and translated into multiple languages. Thanks to Shigeru Kanemoto for the internationalization and Japanese translation and many others for the other translations. For more information, see: http://arduino.cc/playground/Main/LanguagesIDE
  • Added preference for selecting the language in which to display the Arduino software. Defaults to the operating system locale.
  • New upload process for the Arduino Leonardo (ATmega32U4).
  • The editor font size preference now applies to the serial monitor and error / message console as well as the editor. (Paul Stoffregen) http://code.google.com/p/arduino/issues/detail?id=550
  • Compilation has been speeded up by only compiling changed files. (All files are recompiled when a new board is selected.) (Paul Stoffregen) http://code.google.com/p/arduino/issues/detail?id=638
  • Console log files (stdout.txt and stderr.txt) are now removed when the Arduino software exits. (Paul Stoffregen)
  • The minimum size for the Arduino software window has been reduced. http://code.google.com/p/arduino/issues/detail?id=52
  • Improvements to the Find / Replace dialog. (Peter Lewis) http://code.google.com/p/arduino/issues/detail?id=825
  • Support for selecting words (on double-click) and lines (triple-click) in the Arduino software. (Peter Lewis) http://code.google.com/p/arduino/issues/detail?id=824
  • Don't insert newline when using serial monitor keyboard shortcut. (Lars J. Nielsen) http://code.google.com/p/arduino/issues/detail?id=279
  • Added a preference for disabling verification on upload (for increased speed). (Nathan Seidle) http://code.google.com/p/arduino/issues/detail?id=842
  • Added the gcc toolchain to the Linux distribution. (To use the toolchain already installed on your system, simply delete the one that comes with the Arduino software.) (Paul Stoffregen) http://code.google.com/p/arduino/issues/detail?id=300
  • Updating Arduino Mini upload protocol to 'arduino' from 'stk500' (should fix problems with auto-reset not working).
  • core / libraries:
  • Updated (and official) support for the Arduino Leonardo (ATmega32U4). Includes new bootloader and various fixes to the core.
  • Adding overloads to Wire.write() (for Wire.write(0)). (Paul Stoffregen) http://code.google.com/p/arduino/issues/detail?id=527
  • Fixing delayMicroseconds() for 20 MHz clocks (Erdem U. Altinyurt) http://code.google.com/p/arduino/issues/detail?id=306
  • Support third external interrupt on ATmega1284P. (maniacbug) http://code.google.com/p/arduino/issues/detail?id=728
  • Update reference voltage constants for ATmega1284P. (maniacbug) http://code.google.com/p/arduino/issues/detail?id=728
  • Adding --relax linker flag for ATmega2560. (arducopter) http://code.google.com/p/arduino/issues/detail?id=729
  • Fixing Ethernet library bug on avr-gcc 4.5.1 (SurferTim) http://code.google.com/p/arduino/issues/detail?id=605
  • Fixed DHCP hostname generation. (peter)
  • Simplifying microseconds to clock cycles conversions (Rob Tillaart) http://code.google.com/p/arduino/issues/detail?id=675
  • Fixed various warnings. (maniacbug) http://code.google.com/p/arduino/issues/detail?id=688
  • Fixed bug w/ repeated initial characters in findUntil(). (Jeffery.zksun) http://code.google.com/p/arduino/issues/detail?id=768
  • Added INPUT_PULLUP option for pinMode(). The INPUT mode now explicitly disables the pullup resistors. (Paul Stoffregen) http://code.google.com/p/arduino/issues/detail?id=246
  • Fixing bug in the receiving of multiple UDP packets. (dylan and peter) http://code.google.com/p/arduino/issues/detail?id=669
  • 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). (Todd Krein) http://code.google.com/p/arduino/issues/detail?id=663
  • Added Ethernet.maintain() to renew DHCP leases. (Peter Magnusson) http://code.google.com/p/arduino/issues/detail?id=716
  • Fix for CLOSE_WAIT bug that could cause Ethernet sketches to crash over time. (mr-russ and Johann Richard)
  • Fix to servo pulse timing calculation. (jwatte) http://code.google.com/p/arduino/issues/detail?id=908
  • Added readString() and readStringUntil() functions. (Adrian McEwen) http://code.google.com/p/arduino/issues/detail?id=454
  • examples:
  • Updated to latest ArduinoISP sketch. (rsbohn) http://code.google.com/p/arduino/issues/detail?id=378
  • Fixed ArduinoISP sketch by lowering delay() in heartbeat.
  • Other updates.

New in Arduino 1.0 (Jun 1, 2012)

  • environment:
  • The file extension for sketches has changed from .pde to .ino, to avoid conflicts with the Processing software ("ino" are the last three letters in "Arduino").
  • There are a new set of toolbar icons, including a checkmark icon to verify (compile) a sketch and an arrow for upload. The serial monitor icon has moved to the right of the toolbar. Also, shift-clicking the upload icon now uploads using a programmer (selected in the Tools menu). You can still enable verbose output in the preferences dialog. (Icons were designed by Nicholas Zambetti.)
  • There's a new color scheme and about image for the IDE (by ToDo.to.it).
  • The name of the currently selected board and serial port are now shown at the bottom of the editor. (Code from Wiring.)
  • A progress bar is displayed during compilation and upload. (from Wiring.)
  • core / libraries:
  • Serial transmission is now asynchronous - that is, calls to Serial.print(), etc. add data to an outgoing buffer which is transmitted in the background. Also, the Serial.flush() command has been repurposed to wait for outgoing data to be transmitted, rather than dropping received incoming data.
  • The behavior of Serial.print() on a byte has been changed to align it with the other numeric data types. In particular, it will now print the digits of its argument as separate ASCII digits (e.g. '1', '2', '3') rather than a single byte. The BYTE keyword has been removed. To send a single byte of data, use Serial.write() (which is present in Arduino 0022 as well).
  • The Serial class (as well as other classes inheriting from Stream, like EthernetClient, SoftwareSerial, Wire and more) now contains functions for parsing incoming data, based on the TextFinder library by Michael Margolis. They include find() and findUntil() to search for data, parseInt() and parseFloat() for converting incoming characters into numeric values, and readBytes() and readBytesUntil() for reading multiple bytes into a buffer. They use a timeout that can be set with the new setTimeout().
  • The SoftwareSerial class has been reimplemented, using the code originally written for the NewSoftSerial library by Mikal Hart. This allows for multiple simultaneous instances, although only one can receive at a time.
  • Support has been added for printing strings stored in flash (program memory) rather than RAM. Wrap double-quoted strings in F() to indicate that they should be stored in flash, e.g. Serial.print(F("hello world")).
  • The String class has been reimplemented as well, by Paul Stoffregen. This new version is more memory-efficient and robust. Some functions which previously returned new string instances (e.g. trim() and toUpperCase()) have been changed to instead modify strings in place.
  • Support for DHCP and DNS has been added to the Ethernet library, thanks to integration by Adrian McEwen. Most classes in the Ethernet library have been renamed to add a "Ethernet" prefix and avoid conflicts with other networking libraries. In particular, "Client" is now "EthernetClient", "Server" is "EthernetServer", and "UDP" is "EthernetUDP". A new IPAddress class makes it easier to manipulate those values.
  • The UDP API has been changed to be more similar to other libraries. Outgoing packets are now constructed using calls to the standard write(), print(), and println() functions bracketed by beginPacket() and endPacket(). The parsePacket() function checks for and parses an incoming packet, which can then be read using available(), read(), and peek(). The remoteIP() and remotePort() functions provide information about the packet's origin. (Again, thanks to Adrian McEwen for the implementation.)
  • The Wire library has also been modified to use the standard read() and write() functions instead of send() and receive(). You can also use print() and println() for outgoing data.
  • The SD library now supports multiple simultaneous open files. It also provides the isDirectory(), openNextFile(), and rewindDirectory() functions for iterating through all the files in a directory. (Thanks to Limor Fried.)
  • boards / firmwares:
  • Added the Arduino Mini w/ ATmega328.
  • Added Windows drivers (.inf files) and 16U2 firmware (.hex files) for the rev. 3 boards (Uno, Mega, and Mega ADK).
  • internals:
  • The WProgram.h file, which provides declarations for the Arduino API, has been renamed to Arduino.h. To create a library that will work in both Arduino 0022 and Arduino 1.0, you can use an #ifdef that checks for the ARDUINO constant, which was 22 and is now 100. For example: #if defined(ARDUINO) && ARDUINO >= 100 #include "Arduino.h" #else #include "WProgram.h" #endif
  • The write(), print(), and println() functions in Stream now return a size_t (instead of void). This indicates the number of bytes actually written by the function. Any classes that inherit from Stream will need to change accordingly. Additionally the write(str) function has been given a concrete implementation – it calls write(buf, len) - so sub-classes don't need to (and shouldn't) implement it.
  • There are new abstract base-classes for Client, Server, and UDP to provide portability across networking libraries.
  • The pin definitions for the Arduino boards (i.e. the mappings from pin numbers to port register / bit pairs) is now stored in a sub-folder of a new variants/ folder in the hardware folder. The variant to use for a given board is specified by the BOARD.build.variant preference in the boards.txt file.
  • The new, variant-specific pins_arduino.h files now provides additional macros with information about the characteristics of the board (e.g. the locations of the SPI and TWI pins, and the number of digital and analog pins).
  • The avrdude included with the Mac and Windows versions of the Arduino software has been upgraded to avrdude 5.11 (from an Arduino-specific version of avrdude 5.4). The software now uses the "arduino" programmer type in place of "stk500v1" for uploading to most Arduino boards.

New in Arduino 0023 (Jun 1, 2012)

  • Added .inf files for R3 boards.
  • Updated to optiboot 4.4.
  • Included combined firmwares for ATmega16U2.

New in Arduino 0022 (Apr 20, 2011)

  • Adding an SD card library based on sdfatlib by Bill Greiman and the MemoryCard library by Philip Lindsay (follower) for SparkFun.
  • Added character manipulation macros (from Wiring): isAlphaNumeric(),
  • isAlpha(), isAscii(), isWhitespace(), isControl(), isDigit(), isGraph(),
  • isLowerCase(), isPrintable(), isPunct(), isSpace(), isUpperCase(),
  • isHexadecimalDigit(), toAscii(), toLowerCase(), toLowerCase().
  • Added String.toInt() function.
  • Refactoring core to use register-based, not CPU-based, #ifdefs.
  • Modification of serial baud rate calculation to match bootloader and 8U2 firmware at 57600 baud.
  • Fixed bug in tone() function.
  • Fixed SPI.setClockDivider() function.
  • Fixed EEPROM library on Mega 2560.
  • Hardware serial receive interrupt optimization.
  • Applying the timeout parameter of pulseIn() during measurement of the pulse, not just while waiting for it.
  • [environment]
  • Fixed problem with copy as html and angle brackets.
  • Showing serial port selection dialog if serial port not found on upload.
  • Remembering serial monitor window size and line ending selection.
  • Replaced oro.jar regular expressions with java.regex ones
  • Building the user sketch before the core or libraries, so errors appear faster.

New in Arduino 0017 (Nov 12, 2009)

  • [documentation / examples]:
  • Many new and revised examples from Tom Igoe.
  • [core / libraries]:
  • Updated LiquidCrystal library by Limor Fried. See reference for details.
  • Updated Firmata library to version 2.1 (rev. 25).
  • Replaced the Servo library with one (MegaServo) by Michael Margolis.
  • Supports up to 12 servos on most Arduino boards and 48 on the Mega.
  • Improving the accuracy of the baud rate calculations for serial communication (fixing double-speed problems on 8 MHz Arduino boards).
  • [environment]:
  • Synchronized with the Processing 1.0.3 code base (rev. 5503), bringing many improvements (listed below).
  • New icons and about image by Thomas Glaser (envis precisely).
  • Support for multiple sketch windows.
  • The serial monitor now has its own window.
  • Comment / Uncomment menu item (in Edit) and keyboard shortcut.
  • Increase and Decrease Indent menu items (in Edit) and keyboard shortcuts.
  • Support for third-party libraries in the SKETCHBOOK/libraries folder.
  • Libraries are now compiled with the sketch, eliminating the delay when switching boards and the need to delete .o files when changing library source code.
  • Arduino now comes as an app file (in a dmg) on the Mac.
  • Adding the Arduino Nano w/ ATmega328 to the Tools > Board menu.

New in Arduino 0016 (Jun 9, 2009)

  • documentation / examples:
  • New communication examples (w/ corresponding Processing and Max/MSP code) by Tom Igoe.
  • core / libraries:
  • Adding support for the Arduino Pro and Pro Mini 3.3V / 8 MHz w/ ATmega328.
  • Adding support for the LilyPad Arduino w/ ATmega328.
  • Adding write(str) and write(buf, size) methods to Print, Serial, and the Ethernet library Client and Server classes. This allows for more efficient (fewer packet) Ethernet communication. (Thanks to mikalhart.)
  • Improvements to the way the Ethernet library Client class connects and disconnects. Should reduce or eliminate failed connections and long timeouts. (Thanks to Bruce Luckcuck.)
  • Optimizing the timer0 overflow interrupt handler (used for millis() and micros()). Thanks to westfw and mikalhart.
  • Fixing bug that limited the bit() macro to 15 bits. Thanks to Paul Badger.
  • Adding ARDUINO version constant (thanks to prodding from mikalhart).
  • environment:
  • Ordering the items in the Tools > Board menu.
  • Adding "Copy as HTML" command to the Tools menu.
  • Eliminating (maybe) the occasional "Couldn't determine program size" errors. Thanks to the Clever Monkey.
  • Moving selection of Linux look-and-feel into the arduino script so it can be changed by users. Thanks to Eberhard Fahle.
  • tools:
  • Adding automatic dependency generation to the Makefile. (Lars Immisch)

New in Arduino 0015 (Mar 26, 2009)

  • core / libraries:
  • Adding support for the Arduino Mega (ATmega1280).
  • environment:
  • Reinstating use of core.a library in the build process, slightly shrinking compiled sketch sizes.
  • Fixing bug in copy for forum (thanks to eried).

New in Arduino 0014 (Mar 26, 2009)

  • core / libraries:
  • Fixing bug that prevented multiple outgoing Client connections with the ethernet library.
  • environment:
  • Clarifying ATmega168 vs. ATmega328 in the Tools > Boards menu.
  • tools:
  • Updating the Mac OS X AVR tools to AVR MacPack 20081213. This includes avr-gcc 4.3.2, which should fix problems with functions called from within interrupts.

New in Arduino 0013 (Feb 28, 2009)

  • documentation / examples:
  • Adding examples for Parallax Ping Sensor and Memsic 2125 accelerometer.
  • core / libraries:
  • Adding support for printing floats to Print class (meaning that it works in the Serial, Ethernet, and LiquidCrystal classes too). Includes two decimal places.
  • Added word, word(), bitRead(), bitWrite(), bitSet(), bitClear(), bit(), lowByte(), and highByte(); see reference for details.
  • Working around problem that caused PWM output on pins 5 and 6 to never go to 0 (causing, for example, an LED to continue to glow faintly).
  • Removing cast macros, since function-style casts are a feature of C++. This should fix contributed libraries that broke in Arduino 0012.
  • Modifying pulseIn() to wait for a transition to start timing (i.e. ignoring any pulse that had already started when the function was called).
  • Fixing bug in random() that limited the ranges of values generated. Thanks to Mikal Hart.
  • Modifying delay() to pause for at least the given number of milliseconds.
  • Fixing bug in Ethernet library that interfered with use of pins 8 and 9.
  • Originating each outgoing network connection from a different port (in the Client class of the Ethernet library). Thanks to Paul and joquer.
  • Updating ATmega168 bootloader to work with standard distributions of avrdude (responding to signature requests made with the universal SPI command) and correctly store EEPROM data. Thanks to ladyada.
  • Adding support for the ATmega328. The upload speed is 57600 baud, so you may need to edit boards.txt or reburn your bootloader if you bought an ATmega328 w/ bootloader from adafruit or other supplier.
  • environment:
  • Omitting unused functions from compiled sketches, reducing their size.
  • Changing compilation process to allow for use of EEMEM directive (although not yet uploading EEPROM data).

New in Arduino 0012 (Jan 6, 2009)

  • Added Arduino Nano to the boards menu.
  • Arduino Pro or Pro Mini (8 MHz) to the boards menu.
  • Added Firmata library by Hans Steiner and others. This provides a standard protocol for communicating with software on the computer.
  • Added an Ethernet library for use with the Arduino Ethernet Shield.
  • Added a Servo library based on the work of Jim Studt.
  • Added a LiquidCrystal library based on the work in the playground. It supports both 4- and 8-bit modes.
  • Improved millis(): it now overflows after 49 days instead of 9 hours, but now uses slightly more processing power.
  • Fixed reversing direction bug in Stepper library. (Thanks to Wayne Holder.)
  • Moved insertion of #include to after any comments and #include statements in the main sketch file. This means that an #include now works.
  • Upgraded to newer versions of avr-gcc (4.3.0) and avr-libc (1.6). This provides support for newer Atmel chips, but may increase the size of sketches.
  • Allowing per-board specification of the upload.using preference, allowing upload via bootloader to some boards and via a programmer to others.
  • Added return values to some functions in the Wire library to allow for better error handling.
  • Fixed random() to work with long values.
  • Creation of an abstract Print base-class to allow Serial, SoftwareSerial, and LiquidCrystal to share code for print() and println().
  • Incorporated ladyada's watchdog timer mods to the bootloader source, but only compiling them in for the Pro and Pro Mini (because they are included in the bootloader being burned on the boards by SparkFun).

New in Arduino 0011 (Jul 16, 2008)

  • Improved reliability for uploading to Arduino BT.
  • Better support for bootloader burning with a parallel programmer.
  • Fixed Find in Reference.
  • Added map() function for mapping values from one range to another.
  • Added analogReference() function.
  • Added interrupts() and noInterrupts() functions.
  • Added degrees() and radians() functions.
  • Added timeout parameter (in microseconds) to pulseIn(); default is 1 second.
  • Support for uploading sketch using a programmer.
  • Improved detection of functions that need prototyping.
  • Placing function prototypes after #include's and #define's.
  • No longer moving #include statements to the top of the sketch.
  • Can now drag .pde files onto the Arduino dock icon on Mac OS X.
  • New script for downloading the reference from Tom Pollard. Thanks Tom!
  • Miscellaneous Mac OS X and other patches from Wim Lewis. Thanks Wim!
  • Updated Mac OS X FTDI drivers.