ARDUINO 1.8.19 2021.12.20 SECURITY HOTFIX RELEASE

[ide]
* Removed log4j from IDE. Fix CVE-2021-45105, CVE-2021-45046

ARDUINO 1.8.18 2021.12.14 SECURITY HOTFIX RELEASE

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


ARDUINO 1.8.17 (not released superseded by 1.8.18)

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


ARDUINO 1.8.16 2021.09.06

[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 firmwares (up to version 1.4.8) for NINA-based boards


ARDUINO 1.8.15 2021.05.13

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


ARDUINO 1.8.14 2021.05.12

[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


ARDUINO 1.8.13 2020.06.16

[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)
* Fixed invalid http "Accept" header.

[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 sketchbook+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

ARDUINO 1.8.12 2020.02.13

[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

ARDUINO 1.8.11 2020.01.27

[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)
* Slightly 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

ARDUINO 1.8.10 2019.09.13

[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 super small 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-builder]
* update to 1.4.7 (based on the new arduino-cli)

ARDUINO 1.8.9 2019.03.15

[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 technique failed)
* Fix some prototypes being inserted in the middle of a function

ARDUINO 1.8.8 2018.12.07

[ide]
* Fixed: command line parsing of version parameters when installing cores/libraries
* Platform indexes are now downloaded using https
* Fixed: on some newer Linux distributions, NPE when loading GTK look-and-feel without libgtk2 installed
* MacOSX: added touch bar support
* MacOSX: do not exit app after closing last window
* Fixed: serial monitor timestamps not always printed. Thanks @nitram509
* Kill active programmer if still alive after closing last IDE window
* Fixed: "Export compiled binary" now works also with unsaved sketches
* Improved automatic port re-selection after upload
* Added scroller to "INCOMPATIBLE" examples menu

[wifi-firmware]
* Added firmware upgrade for NINA-based boards

ARDUINO 1.8.7 2018.09.11

(bugfix service release)

[ide]
* Fixed: IDE doesn't start if library_index.json is corrupted.
* Fixed: IDE doesn't start if a library with invalid version is found.
* Fixed: Rare build errors in very complex sketches (like Marlin firmware).
* Fixed: Better dialog explaining that MacOSX 10.8 is now required. Thanks @PaulStoffregen
* Fixed: Slow "File" and "Tools" menus in MacOSX
* Fixed: Weird Board Manager behaviour if AVR core is downgraded to a version earlier than 1.6.22
* Improved first-use usability if the user don't select the serial port. Thanks @PaulStoffregen
* Custom "Tools" menu now keeps the order as defined in boards.txt.

[core]
* AVR: Fixed EEPROM warnings. Thanks @bxparks
* AVR: Treat "narrowing conversion" as warning, not error. This will make some libraries
       to compile again. Thanks @PaulStoffregen

ARDUINO 1.8.6 2018.08.23

[ide]
* Updated arduino-builder to 1.4.0:
  - parallel build (improve compile speed)
  - better reuse of already compiled files
  - Windows: fixed build for sketch stored under OneDrive cloud folders
* Added translations for library types. Thanks @ReAlUA
* Added scroller in programmers menu.
* Added "accelerator" in scrollable menu, press "a" key while scrolling
* Keep "Board Manager" menu item always as first in the menu
* "Manage Libraries" is now also in the "Tools" menu. Thanks @feikname
* Compiler errors now have both column and line
* Serial monitor how has "Show Timestamp" option. Thanks @MichalSy
* Improved DPI detection for hi-resolution monitor on Linux
* Added copy/paste contextual menu in Find/Replace text fields
* Fixed long IDE startup time when some virtual/not-connected network interfaces are present
* Fixed inconsistent line-endings when saving files on Windows
* mDNS: Make board disappear via TTL instead of reachability. Thanks @kurtgo
* Library Manager: display install/remove buttons with mouse on-hover instead of mouse click
* Board Manager: fixed some rare case with corrupted index download
* Windows: removed some debug output when running the IDE from command line
* Support selectable user-defined themes. User's theme are zip files inside the sketchbook "theme" folder
* Library Manager: library search now search also for headers (.h) declared by the library in library.properties
* Added "--version" to the CLI. Thanks @yohsuke
* Fixed Serial Plotter/Monitor permanently disabled if Plotter fails to open
* Fixed window title that sometimes is not updated on "Save as...". Thanks @JxJxJxMxNxS
* Fixed key bindings for Increase/Decrease font size
* Improved accessibility in the Preferences dialog. Thanks @coreyknapp

[core]
* AVR: Set Optiboot as default bootloader for Nano. This is the bootloader installed on new
       Arduino Nano boards. If you have a Nano with the old bootloader you must select
       Tools > Processor > ATmega328P (Old Bootloader) to upload.
* AVR core has been moved to its own repository: https://github.com/arduino/ArduinoCore-avr
* Updated toolchain to gcc 5.4.0

[wifi101-firmware]
* SECURITY FIX: Released fix for WPA2 KRACK vulnerability (latest WINC1500 firmware 19.5.2).

ARDUINO 1.8.5 2017.09.29

(bugfix service release)

[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.

ARDUINO 1.8.4 2017.08.23

[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 optionally 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 visible 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.

ARDUINO 1.8.3 2017.05.31

(bugfix service release)

[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

ARDUINO 1.8.2 2017.03.22

[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
* Update arduino-builder to 1.3.25
  - avoid name clashing for libraries
  - cache core archives to speedup compilation consistently
* 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)

[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

ARDUINO 1.8.1 - 2017.01.09

[ide]
* Fixed font rendering not anti-aliased on Windows (regression)
* Increased number of colors on serial plotter to 8, thanks @cousteaulecommandant

[libraries]
* Fixed regression in SD library. Thanks @greiman

ARDUINO 1.8.0 - 2016.12.20

[ide]
* Linux: running in command line mode doesn't require an X11 display anymore
* "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".
  Thanks @rigelinorion, @awatterott

ARDUINO 1.6.13 - 2016.11.22

[ide]
* Improved robustness of Serial Plotter while dealing with malformed or partial data. Thanks @xloem.
* Fixed regression on command line upload.
* Bugfix 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
* Windows: Improved DPI detection
* Fixed a bunch of small bugs in the editor.
* WiFi101 Firmware Updater: fixed certificates download from websites using SNI (handshake_failed error)

[core]
* avr: set default values for "upload.verify" and "program.verify" (allows compatibility with older IDE). Thanks @per1234

ARDUINO 1.6.12 - 2016.09.21

[ide]
* Refactor Editor code, solving some long standing bugs and cleaning up everything. Thanks @matthijskooijman
* 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. Thanks @PaulStoffregen
* 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. Thanks @mischnic
* Added String::toDouble(). Thanks @Ivan-Perez
* Update to avrdude 6.3 with patch to ignore unused fuses (burn bootloader works also with outdated cores)

ARDUINO 1.6.11 - 2016.08.17

[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
  (see https://github.com/arduino/Arduino/issues/5186 for details)
* avrdude: reverted to version 6.0.1, until all discovered regressions are solved
  (see https://github.com/arduino/Arduino/issues?q=is%3Aissue+is%3Aopen+label%3A%22Component%3A+Avrdude+6.3%22 for details)

ARDUINO 1.6.10 - 2016.07.26

[ide]
* A lot of bug fixes to builder:
  https://github.com/arduino/arduino-builder/issues?q=milestone%3A1.3.19+is%3Aclosed
* 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

[libraries]

ARDUINO 1.6.9 - 2016.05.10

[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 untranslated string during IDE startup splash window. Thanks @ivanebernal
* New arduino-builder: better core library detection, faster operations when recompiling and more.
  See https://github.com/arduino/arduino-builder/compare/1.3.9...1.3.15
* 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://boardsmanager 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) key bindings. 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).

ARDUINO 1.6.8 - 2016.03.09

[ide]
* Added support for GUI interface scaling for UHD monitors.
  Thanks to all contributors and testers:
  https://github.com/arduino/Arduino/pull/4376
  https://github.com/arduino/Arduino/pull/2776
* 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

ARDUINO 1.6.7 - 2015.12.17

[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

ARDUINO 1.6.6 - 2015.11.03

[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 timeout 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

ARDUINO 1.6.5-r5 - 2015.08.28

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

ARDUINO 1.6.5-r4 - 2015.08.27

[ide]
* Added support to Genuino boards

ARDUINO 1.6.5-r3 - 2015.07.20

[ide]
* Fixed Mac signature for OSX >=10.10.4

ARDUINO 1.6.5-r2 - 2015.06.17

[ide]
* Windows: fixed a problem that prevented opening the IDE when double clicking a .ino file

ARDUINO 1.6.5 - 2015.06.15

[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 versions, 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

ARDUINO 1.6.4 - 2015.05.06

[ide]
* Added support for 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 bundled 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

ARDUINO 1.6.3 - 2015.04.02

[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

ARDUINO 1.6.2 - 2015.03.28

[ide]
* 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. Example: recipe.hooks.prebuild.0.pattern=echo "Hello {build.source.path}". Thanks @Wackerbarth
* 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/
* MacOSX: filtering /dev/cu* was not a good idea. Filtering /dev/tty* instead

[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

ARDUINO 1.6.1 - 2015.03.10

[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

ARDUINO 1.6.0 - 2015.02.09

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

ARDUINO 1.6.0rc3 - 2015.02.03

[ide]
* Bunch of bugfix on MacOSX build (https://github.com/arduino/Arduino/pull/2590)

ARDUINO 1.6.0rc2 - 2015.01.20

[ide]
* Re-enabled speed of 38400 on serial monitor
* Improved Find/Replace dialog layout (Eberhard Fahle)
* Fixed missing .dll error on some Windows box

[core]
* Arduino "boolean" type is now mapped to "bool" instead of "uint8_t" (Christopher Andrews)
* sam: HardwareSerial now has buffered transmission (Collin Kidder)
* sam: HardwareSerial fixed modes (parity, data bits, stop bits) (bluesign2k)
* avr: Fixed regression in pulseIn() function accuracy

[libraries]
* GSM: minor changes and bug fix (https://github.com/arduino/Arduino/pull/2546)

The following changes are included also in the Arduino IDE 1.0.7:

[ide]
* Mitigated Serial Monitor resource exhaustion when the connected device sends a lot of data (Paul Stoffregen)

ARDUINO 1.6.0rc1 - 2014.12.11

* IDE internals have been refactored and sorted out. (Claudio Indellicati)
  https://github.com/arduino/Arduino/pull/2328
  The builder and the GUI now have clearly separated source code making it easier
  for IDE developers to maintain and propose patch.
  From a user point of view nothing changes and the IDE should behave exactly as before.

[ide]
* Autosave on sketch Upload/Verify (Fulvio Ieva)
* Sketch build process: fixed full rebuild on windows even if not needed
* Sketch build process: core.a rebuild only if needed (Matthijs Kooijman)
* Updated AStyle formatter to v2.05: http://astyle.sourceforge.net/notes.html
* Improved avrdude verbose upload (Matthijs Kooijman)
* (MacOSX) Add Exported UTI for ino files, allows quick look to view the
  content of the file and external editors to syntax highlight as C++ (Matt Lloyd)

[core]
* sam: added -MMD flag to let gcc produce dependency files (full rebuild on Arduino Due is now triggered only if needed)

[libraries]
* LiquidCrystal: added setRowOffsets function to support different LCD hardware configurations (Mark Sproul)
* LiquidCrystal: various improvements and optimizations (Matthijs Kooijman)
* Fixed PROGMEM error in Robot_Control/examples/explore/R06_Wheel_Calibration
* SD: Fixed SPI transaction mismatch (Paul Stoffregen)

The following changes are included also in the Arduino IDE 1.0.7:

[libraries]
* EthernetClient: use IANA recommended ephemeral port range, 49152-65535 (Jack Christensen, cifer-lee)

[core]
* Fixed regression in HardwareSerial::available() introduced with https://github.com/arduino/Arduino/pull/2057

ARDUINO 1.5.8 BETA - 2014.10.01

[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)

The following changes are included also in the Arduino IDE 1.0.6:

[core]
* avr: Added replacement stub for cstdlib atexit() function (Christopher Andrews)

ARDUINO 1.5.7 BETA - 2014.07.07

[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)

[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
* Windows: added board detection on serial port menu

[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)

The following changes are included also in the Arduino IDE 1.0.6:

[core]
* 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]
* 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]
* 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

ARDUINO 1.5.6-r2 BETA - 2014.02.21

[ide]
* JSSC: Fixed NPE when RXCHAR event with no bytes (José Pereda)

ARDUINO 1.5.6 BETA - 2014.02.20

[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 the 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

ARDUINO 1.5.5-r2 BETA - 2014.01.10

* Signed drivers for Windows 8.1
* Fixed Windows drivers signature (that prevented installation on
  some Windows 8.x OS). Now the signature is timestamped and should
  not expire.

ARDUINO 1.5.5 BETA - 2013.11.28

NOTICE:
The 1.5 library format is under heavy review on the Arduino Developers mailing list.
We suggest to delay the adoption of the new format until a stable 1.5.x is released.

[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 Yún): 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 VID/PID 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)
       https://github.com/arduino/Arduino/issues/1418
       (http://www.djerickson.com/arduino/)
* avr: Fixed wrong extended fuses on Arduino Yún when using external programmer
* Added LED_BUILTIN metadata in variant files
* avr: Refactored Mega* variants 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)

ARDUINO 1.5.4 BETA - 2013.09.10

[ide]
* Revert to English locale if the system default is not available
* Added support for Arduino Yún
* Autodetect of boards connected to each serial port
* Network upload and discovery for Arduino Yún

[libraries]
* sam: fixed wrong SPI initialization (noblepepper)
* updated all instances of Adafruit_GFX to the latest version
* added libraries for Arduino Yún

[core]
* avr: fixed bug introduced with recent optimizations in HardwareSerial (atmega8 CPU) (darryl)

ARDUINO 1.5.3 BETA - 2013.08.30

[ide]
* Removed useless baud rates from serial monitor
* Fixed some minor IDE UI bugs (Shigeru Kanemoto)
* Added support for new 1.5 Library format (https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification)
* Pass board type from boards.txt (https://github.com/arduino/Arduino/issues/308)
* Display estimated RAM usage after compile (Loren M. Lang)
* Import library menu is now scrollable
* Scrollable menus can now be scrolled with the mouse wheel

[arduino core]
* sam: Fixed delayMicrosecond() when interrupts are disabled (Paul Stoffregen)
* sam: Upgraded libsam, and added missing modules (CAN, ETH, etc.) (Thibaut Viard)
* sam: Added compatibility for avr/pgmspace.h (Paul Stoffregen)
* sam: Added serialEvent*() support
* sam: Fixed micros() to work with inside interrupts. (stimmer)
* avr: Added support for Flash strings on String class (Jantje)
* Added support for floating point numbers in String class (Tevin Zhang, SebiTimeWaster)
* sam: Fixed String buffer overflows (Paul Stoffregen)
* avr: Added recipe for assembly files (C. A. Church)
* avr: Use analogPinToChannel if it's defined (Kristian Sloth Lauszus)
* avr: Optimized HardwareSerial buffer (Matthijs Kooijman)
* removed unused flags from String (free 1 byte of SRAM)

[libraries]
* sam: Removed CAN library, you can find an updated version here:  
       https://github.com/collin80/due_can
* sam: Bugfix SPI library: begin() after end() now works (stimmer)
* sam: Bugfix SPI library: incorrect pin configuration in non-extended mode.
* Ported all libraries to new 1.5 format
* Updated Firmata to version 2.3.6 (Jeff Hoefs)

[firmwares]
* Arduino Due: fixed USB2Serial garbage at startup (https://github.com/arduino/Arduino/pull/1267)

[other]
* Merged all improvements made in Arduino IDE 1.0.5

ARDUINO 1.5.2 BETA - 2013.02.06

[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 tight 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

ARDUINO 1.5.1r2 BETA - 2012.11.06

* Fixed wrong release file for windows.

ARDUINO 1.5.1 BETA - 2012.11.05

* Merged changes coming from stable release of Arduino IDE 1.0.2.

[arduino core]
* added support for yield() function in Arduino Core. This is a
  preliminary step for experimenting with cooperative Schedulers.

[ide]
* Simplified boards menu selection. (new boards.txt file format with
  custom sub-menus).
* Fixed "FAT" (multi-platform) library detection. This bug caused
  many libraries to be detected as 'invalid'.

[sam arduino core]
* attachInterrupt() and detachInterrupt() are now working.
* Fixed macros to query low level GPIO registers:
  digitalPinToBitMask(), digitalPinToTimer(),
  portOutputRegister, portInputRegister()
* Fixed analogWrite() on DAC0/1 when writing on both DACs
  (thanks to smay4finger)

[firmwares]
* Added firmware for atmega16u2 on Due Board.

ARDUINO 1.5 BETA - 2012.10.22

* First release for the unified IDE for both AVR 8-bit and ARM 32-bit
  (SAM3 CPUs) architectures.
* This release include the SAM Arduino Core used in the Arduino Due 
  Board.
* Everything is in beta, most features or libraries are still  missing 
  or incomplete.
* For more info refer to this press release:
  http://www.arduino.cc/blog/2012/10/22/arduino-1-5-support-for-the-due-and-other-processors-easier-library-installation-simplified-board-menu-etc/

ARDUINO 1.0.7

[libraries]
* Backported SPI Transaction API from IDE 1.5.x (Paul Stoffregen)
* Backported GSM from IDE 1.5.x: fix build regression
* Backported Ethernet from IDE 1.5.x
* Backported SD from IDE 1.5.x
* Backported SPI from IDE 1.5.x
* EthernetClient: use IANA recommended ephemeral port range, 49152-65535 (Jack Christensen, cifer-lee)

[core]
* Fixed missing NOT_AN_INTERRUPT constant in digitalPinToInterrupt() macro
* Fixed performance regression in HardwareSerial::available() introduced with https://github.com/arduino/Arduino/pull/2057

[ide]
* Mitigated Serial Monitor resource exhaustion when the connected device sends a lot of data (Paul Stoffregen)

ARDUINO 1.0.6 - 2014.09.16

[core]
* 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)
* avr: Added replacement stub for cstdlib atexit() function (Christopher Andrews)
* Fixed wrong NULL pointer handling in Stream class (Amulya Kumar Sahoo)
* Backported String class from IDE 1.5.x (Matt Jenkins)
* Backported Print class from IDE 1.5.x
* Backported digitalPinToInterrupt macro from IDE 1.5.x
* Added initVariant() hook to allow 3rd party variant-specific initialization
* Added replacement stub for cstdlib atexit() function (Christopher Andrews)

[ide]
* Added compatibility for IDE 1.5.x libraries layout
* 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]
* 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)
* fixed a bunch of examples

[firmware]
* WiFishield: fixed paths on firmware upgrade scripts

ARDUINO 1.0.5-r2 - 2014.01.08

* Signed drivers for Windows 8.1
* Fixed Windows drivers signature (that prevented installation on
  some Windows 8.x OS). Now the signature is timestamped and should
  not expire.

ARDUINO 1.0.5 - 2013.05.15

[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
* Updated windows drivers
* Added Windows installer

ARDUINO 1.0.4 - 2013.03.11

[core]

* Fixed malloc bug (Paul Stoffregen)
* Added INT6 support for Leonardo (Federico Vanzati)

[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 (Shigeru Kanemoto)
* 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 (Mark Sproul)
  (https://github.com/arduino/Arduino/pull/1183)

ARDUINO 1.0.3 - 2012.12.10

[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)

ARDUINO 1.0.2 - 2012.11.05

[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.
  (Lars J. Nielsen).
  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.
  (Paul Stoffregen)
  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.
  (Peter Van Hoyweghen)

* 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.

ARDUINO 1.0.1 - 2012.05.21

[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://www.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 pull-up 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.

ARDUINO 1.0 - 2011.11.30

[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.

ARDUINO 0023 - 2011.11.09

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

ARDUINO 0022 - 2010.12.24

[core / libraries]

* Adding an SD card library based on sdfatlib by Bill Greiman and the
  MemoryCard library by Philip Lindsay (follower) for SparkFun.
  http://www.arduino.cc/en/Reference/SD

* Added character manipulation macros (from Wiring): isAlphaNumeric(),
  isAlpha(), isAscii(), isWhitespace(), isControl(), isDigit(), isGraph(),
  isLowerCase(), isPrintable(), isPunct(), isSpace(), isUpperCase(),
  isHexadecimalDigit(), toAscii(), toLowerCase(), toLowerCase().
  http://code.google.com/p/arduino/issues/detail?id=418

* Added String.toInt() function.

* Refactoring core to use register-based, not CPU-based, #ifdefs.
  Patch by Mark Sproul.
  http://code.google.com/p/arduino/issues/detail?id=307
  http://code.google.com/p/arduino/issues/detail?id=315
  http://code.google.com/p/arduino/issues/detail?id=316
  http://code.google.com/p/arduino/issues/detail?id=323
  http://code.google.com/p/arduino/issues/detail?id=324
  http://code.google.com/p/arduino/issues/detail?id=340

* Modification of serial baud rate calculation to match bootloader and 8U2
  firmware at 57600 baud.
  http://code.google.com/p/arduino/issues/detail?id=394

* Fixed bug in tone() function.
  http://code.google.com/p/arduino/issues/detail?id=361

* Fixed SPI.setClockDivider() function.
  http://code.google.com/p/arduino/issues/detail?id=365

* Fixed EEPROM library on Mega 2560.
  http://code.google.com/p/arduino/issues/detail?id=381

* Hardware serial receive interrupt optimization.
  http://code.google.com/p/arduino/issues/detail?id=391

* 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.
  http://code.google.com/p/arduino/issues/detail?id=29

* Showing serial port selection dialog if serial port not found on upload.

* Remembering serial monitor window size and line ending selection.
  http://code.google.com/p/arduino/issues/detail?id=96
  http://code.google.com/p/arduino/issues/detail?id=330

* Replaced oro.jar regular expressions with java.regex ones (patch by
  Eberhard Fahle and Christian Maglie).
  http://code.google.com/p/arduino/issues/detail?id=171

* Building the user sketch before the core or libraries, so errors appear
  faster.  Patch by William Westfield and Paul Stoffregen.
  http://code.google.com/p/arduino/issues/detail?id=393

* Setting application icon under Windows.

ARDUINO 0021 - 2010.10.02

* Modifying VID/PID combination in 8U2 firmwares.
* Fixing analogWrite() bug on pins 9 and 10 (Arduino Uno).
* Patched RXTX to include /dev/ttyACM* on Linux.

ARDUINO 0020 - 2010.09.27

* Added support for the Arduino Uno and Arduino Mega 2560.
* Including ATmega8U2 firmware used by Uno and Mega 2560.
* Including source code to optiboot bootloader used by the Uno.
* Including source code to the stk500v2 bootloader used by Mega 2560.
* New application icon (by ToDo).

ARDUINO 0019 - 2010.09.03

[core / libraries]

* Revised Ethernet library (by Christian Maglie).  This depends on the
  new SPI library, so existing sketches will need: #include <SPI.h>
  added to the top of their code.

* Added an SPI library (by Christian Maglie).
  http://code.google.com/p/arduino/issues/detail?id=240

* Added aliases for the analog input pins: A0, A1, etc.
  http://code.google.com/p/arduino/issues/detail?id=244

* Added a String class.  

* Added a shiftIn() function (from Wiring).
  http://code.google.com/p/arduino/issues/detail?id=280

* Updated version of Firmata supports Mega and capability querying.

* More accurate delay() function from BenF.
  http://code.google.com/p/arduino/issues/detail?id=237

* Re-enabling PWM after tone() ends.
  http://code.google.com/p/arduino/issues/detail?id=228

* Added Serial.peek() method.
  http://code.google.com/p/arduino/issues/detail?id=270

* Added Stream base class to Serial object (w/ available(), read() and
  the write(), print(), and println() functions from the Print class).
  http://code.google.com/p/arduino/issues/detail?id=60

* Disabling interrupts while digitalWrite() and pinMode() write to pins.
  http://code.google.com/p/arduino/issues/detail?id=146

* Replacing INTERNAL analog reference with INTERNAL1V1 AND INTERNAL2V56 on
  the Arduino Mega.  http://code.google.com/p/arduino/issues/detail?id=194
 
[environment]

* Added Arduino Fio to the boards menu.

* Added Arduino Pro and Pro Mini (5V / 16 MHz) to the boards menu.
  http://code.google.com/p/arduino/issues/detail?id=81

* Synchronized with the Processing 1.1 code base, bringing various changes.

* Modified the parsing of avr-gcc / avr-g++ output and error messages.

* Toggling RTS on upload for auto-reset with FTDI cables on Linux.
  http://code.google.com/p/arduino/issues/detail?id=309

* Adding control over scrolling in serial monitor.
  http://code.google.com/p/arduino/issues/detail?id=97

* Added drop-down for selecting line endings to the serial monitor.
  http://code.google.com/p/arduino/issues/detail?id=119

* Fixed problem with tabs of the same name but different extensions.
  http://code.google.com/p/arduino/issues/detail?id=191

* Allowing third-party hardware platforms to reference programmers defined
  in other platforms.  http://code.google.com/p/arduino/issues/detail?id=283

[examples]

* Re-organized and numbered for easier access and better progression.

ARDUINO 0018 - 2010.01.29

[core / libraries]

* Added tone() and noTone() functions for frequency generation.
* Added Serial.end() command.
* Added precision parameter for printing of floats / doubles.
* Incorporated latest version of Firmata.
* Fixed bug w/ disabling use of the RW pin in the LiquidCrystal library. 
* No longer disabling interrupts in delayMicroseconds().
* Fixed bug w/ micros() returning incorrect values from within an interrupt.
* Fixed bug that broke use of analog inputs 8-15 on the Mega.

[environment]

* Synchronized with the Processing 1.0.9 code base, bringing various fixes,
  including to a bug causing saving to fail when closing the last sketch.

* Added support for third-party hardware in the SKETCHBOOK/hardware folder,
  mirroring the current structure of the hardware folder in Arduino.

* Added Ctrl-Shift-M / Command-Shift-M shortcut for serial monitor.

* Hold down shift when pressing the Verify / Compile or Upload toolbar 
  buttons to generate verbose output (including command lines).

* Moving build (on upload) from the applet/ sub-folder of the sketch
  to a temporary directory (fixing problems with uploading examples from
  within the Mac OS X disk image or a Linux application directory).

* Fixed bug the prevented the inclusion of .cpp and .h (or .c and .h) files
  of the same name in a sketch.

* Improved the Mac OS X disk image (.dmg): added a shortcut to the
  Applications folder, a background image with arrow, and new FTDI drivers.

ARDUINO 0017 - 2009.07.25

[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).
  Thanks to gabebear.

[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.

ARDUINO 0016 - 2009.05.30

[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)

ARDUINO 0015 - 2009.03.26

[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.  (Thanks to William Westfield.)
* Fixing bug in copy for forum (thanks to eried).

ARDUINO 0014 - 2009.03.07

[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.

ARDUINO 0013 - 2009.02.06

[documentation / examples]
* Adding examples for Parallax Ping Sensor and Memsic 2125 accelerometer.

[core / libraries]
* 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.
* 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.
  
[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).

ARDUINO 0012 - 2008.09.18

* 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 <WProgram.h> to after any comments and #include
  statements in the main sketch file.  This means that an #include <stdlib.h>
  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).

ARDUINO 0011 - 2008.03.28

* 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.
  Thanks to Peter Sgouros.
* 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.

ARDUINO 0010 - 2007.10.11

* Support for the LilyPad Arduino.
* Vista support.
* Mac OS X universal distribution.
* Printing!
* Copy for discourse.
* New Board menu replaces the Microcontroller menu.
* New Burn Bootloader menu offers a choice of programmers.
* New and improved keyboard shortcuts.
* Fixed some find/replace bugs.
* Better auto-format.
* Improved error messages when uploading.
* Support for COM10 and higher on Windows.
* Fixed automatic refresh of the Serial Port menu under Windows.
* Quaqua look-and-feel on Mac OS X.
* Reorganization of the Arduino application directory.

ARDUINO 0009 - 2007.08.06

* Added support for the Arduino Diecimila.
* Switched to using avrdude (instead of uisp) for uploading sketches.
* Added the ability to burn NG and Diecimila bootlaoders (with an AVRISPmkII).
* Fixed a bug in SoftwareSerial (a hardware serial function was being called
  instead of the software serial equivalent).  Thanks to brianbr for the
  report and fix.

ARDUINO 0008 - 2007.06.09

* Updated examples (in distribution and on the website).
* Added an EEPROM library (see reference for details).
* Added a Stepper motor library (see reference).
* Patched to reduce binary sketch sizes by building the Arduino core as
  a library (.a) file - now only the needed parts of the core are linked into
  a sketch.  Originally written by Nicolas Roland, revised by Don Cross.
* Fixed bug in Serial.available().  Report and fix by Don Cross.
* Now recompiling libraries when switching microcontrollers.  Report by
  Julian Bleecker; fix by Nicholas Zambetti.
* Cleaned up core functions: moved pin definitions into program space to save
  RAM, and other minor improvements.  Contributed by Jim Studt.
* Lots of reference additions and fixes from Paul Badger.
* Changed default microcontroller to ATmega168 from ATmega8.
* Removed the delay from analogRead().
* Activating TWI/I2C pull-up resistors on the ATmega168 (in addition to the 
  ATmega8).

ARDUINO 0007 - 2006.12.25

* Smaller core (about 3.5 KB instead of 4.5 KB).
* Added a SoftwareSerial library (thanks to Antonio, Heather Dewey-Hagborg, and
  bigengineer for their help).
* Implemented a Serial.flush() routine; see reference for details.
* Digital pins 0 and 1 can be used for i/o until a call to Serial.begin().
* Replaced avr-lib's uart routines with custom code for handling serial
  communication and modified C++ serial commands to call the C serial commands;
  the code may behave slightly differently in border cases (e.g. non-standard
  speeds, or on overflow).
* Added attachInterrupt() and detachInterrupt() functions for handling of
  external interrupts on pins 2 and 3.
* Implemented shiftOut() routine; see reference for details.
* Defining binary constants: e.g. B1010 is 6.
* Mac versions no longer require running of the macosx_setup.command script.
* Windows version comes with the FTDI USB drivers already unzipped.
* New Linux binary distribution (still requires some programs to be
  pre-installed).

ARDUINO 0006 - 2006.10.21

* Mac version no longer requires Java 1.5, meaning it should run on 10.3.9.
* Added support for analog inputs 6 and 7 and PWM on pins 5 and 6 on the
  on the ATmega168 used in the Arduino Mini (extra analog inputs not available
  in DIP ATmega168s).
* You now select the baud rate for the serial monitor from within the editor
  status bar when the serial monitor is running instead of from the Tools menu.
* Pressing enter within the serial monitor edit box no longer appends a newline
  to the message sent to the board.
* Included the Wire (TWI) library from Wiring.
* Updated the reference.

ARDUINO 0005 - 2006.09.26

* Applied patch from Hans Steiner to improve Linux support by searching for avr
  tools in the user's path instead of expecting them at a fixed location.
* Added an upload.verbose preference for help in debugging.
* ATmega168 support!
* New Wiring-compatible randomSeed(), random(max) and random(min, max) functions
  (except operating on longs instead of floats).
* Fixed bug that sometimes caused uploading of old versions of a sketch.
* Serial monitor now includes an interface to send messages to the Arduino
  board.  Pressing return appends a newline, pushing the send button doesn't.
* Now displaying "burning bootloader..." and "compiling..." status messages.

ARDUINO 0004 - 2006.04.26

* Main sketch is now compiled as C++ (instead of C).
* Updated avr toolchain.
* printInteger(), printHex(), etc. now handle longs.
* millis() fixed (now overflows after days, not minutes)
* Fixed path to java in Windows run.bat.
* Added Matrix and Sprite libraries (written with Nicholas Zambetti).
* PWM now working on pin 11 (in addition to pins 9 and 10).
* Slowed PWM frequency (on all three PWM pins) to 1KHz.
* Now give an error if compiled sketch is too big.
* Fixed abs(), min(), max(), and constrain() macros.
* Added menu items to the IDE to burn bootloader.
* Now display binary sketch size on upload, and give error if too big.
* Added C++ serial library.
* Resynced with Processing/Wiring IDE code (improved auto-format, faster logging
  to serial monitor console, other bug fixes)
* New library system.
* Updated to latest version of the RXTX serial library; Mac users will need to
  rerun macosx_setup.command.

ARDUINO 0003 - 2006.01.16

API Changes
* Reversed the analog input pins to correspond to newer boards.  This means
  a call, for example, to analogRead(0) must be changed to analogRead(5) in
  order to read the same physical pin.
* Added a printNewline() function (which sends '\n' = ASCII 10).

New Stuff
* Reference is included (features native to C not yet documented).
* Serial monitor added (click the toolbar button to turn it on or off).  Baud
  rate is controlled by the Serial Monitor Baud Rate Menu, defaults to 9600.
  Icon and implementation from Wiring.
* Serial port menu now automatically refreshes when opened.
* New blue color scheme and icons courtesy of Noah Shibley (colors are hardcoded
  into the source to ensure consistency with image files).
* Keyspan and FTDI USB drivers included with Mac and Windows distributions.

Bug Fixes
* millis() now updates every millisecond instead of every second.
* Bootloader included with Windows distribution (it was already in the Mac
  dist).
* Updated icon of the Windows executable.
* Now flushing the serial port before uploading (should fix some errors).
* Improved accuracy of the delayMicroseconds() function.

Other
* Upload rate no longer selectable from a menu within the IDE.  Instead, edit
  the serial.download_rate item in the preferences.txt file.
* Created Xcode project for building Arduino on the Mac (doesn't yet regenerate
  the grammar files or package the distribution); active target should be "App".
* Removed unused or unimplemented items from menus.

ARDUINO 0002 - 2005.10.05

* New build process no longer uses makefiles; now controlled by preferences.txt.
* core/ replaced with targets/; can now link against Wiring libraries.
* Replaced print() with printString, printInteger, printHex, printByte, etc.
* Added menu for selecting serial port speed.
* Updated icon.
* Bootloader shrunk to less than 1 KB; fuses updated accordingly.
* Added serialRead(), serialAvailable(), and delayMicroseconds().

ARDUINO 0001 - 2005.08.25 

* This is the first released of the unified IDE + language library
  it's a terrible hack... but it works. at the moment it's in alpha stage
  but it can be used to work.
* The processing preprocessor is included but not used.
