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://arduino.cc/playground/Main/LanguagesIDE * Added preference for selecting the language in which to display the Arduino software. Defaults to the operating system locale. * New upload process for the Arduino Leonardo (ATmega32U4). * The editor font size preference now applies to the serial monitor and error / message console as well as the editor. (Paul Stoffregen) http://code.google.com/p/arduino/issues/detail?id=550 * Compilation has been speeded up by only compiling changed files. (All files are recompiled when a new board is selected.) (Paul Stoffregen) http://code.google.com/p/arduino/issues/detail?id=638 * Console log files (stdout.txt and stderr.txt) are now removed when the Arduino software exits. (Paul Stoffregen) * The minimum size for the Arduino software window has been reduced. http://code.google.com/p/arduino/issues/detail?id=52 * Improvements to the Find / Replace dialog. (Peter Lewis) http://code.google.com/p/arduino/issues/detail?id=825 * Support for selecting words (on double-click) and lines (triple-click) in the Arduino software. (Peter Lewis) http://code.google.com/p/arduino/issues/detail?id=824 * Don't insert newline when using serial monitor keyboard shortcut. (Lars J. Nielsen) http://code.google.com/p/arduino/issues/detail?id=279 * Added a preference for disabling verification on upload (for increased speed). (Nathan Seidle) http://code.google.com/p/arduino/issues/detail?id=842 * Added the gcc toolchain to the Linux distribution. (To use the toolchain already installed on your system, simply delete the one that comes with the Arduino software.) (Paul Stoffregen) http://code.google.com/p/arduino/issues/detail?id=300 * Updating Arduino Mini upload protocol to 'arduino' from 'stk500' (should fix problems with auto-reset not working). [core / libraries] * Updated (and official) support for the Arduino Leonardo (ATmega32U4). Includes new bootloader and various fixes to the core. * Adding overloads to Wire.write() (for Wire.write(0)). (Paul Stoffregen) http://code.google.com/p/arduino/issues/detail?id=527 * Fixing delayMicroseconds() for 20 MHz clocks (Erdem U. Altinyurt) http://code.google.com/p/arduino/issues/detail?id=306 * Support third external interrupt on ATmega1284P. (maniacbug) http://code.google.com/p/arduino/issues/detail?id=728 * Update reference voltage constants for ATmega1284P. (maniacbug) http://code.google.com/p/arduino/issues/detail?id=728 * Adding --relax linker flag for ATmega2560. (arducopter) http://code.google.com/p/arduino/issues/detail?id=729 * Fixing Ethernet library bug on avr-gcc 4.5.1 (SurferTim) http://code.google.com/p/arduino/issues/detail?id=605 * Fixed DHCP hostname generation. (peter) * Simplifying microseconds to clock cycles conversions (Rob Tillaart) http://code.google.com/p/arduino/issues/detail?id=675 * Fixed various warnings. (maniacbug) http://code.google.com/p/arduino/issues/detail?id=688 * Fixed bug w/ repeated initial characters in findUntil(). (Jeffery.zksun) http://code.google.com/p/arduino/issues/detail?id=768 * Added INPUT_PULLUP option for pinMode(). The INPUT mode now explicitly disables the pullup resistors. (Paul Stoffregen) http://code.google.com/p/arduino/issues/detail?id=246 * Fixing bug in the receiving of multiple UDP packets. (dylan and peter) http://code.google.com/p/arduino/issues/detail?id=669 * Added ability to generate repeated starts in the Wire library (in master mode). Extra boolean parameters to endTransmission() and requestFrom() control whether or not to send a stop (or a repeated start instead). (Todd Krein) http://code.google.com/p/arduino/issues/detail?id=663 * Added Ethernet.maintain() to renew DHCP leases. (Peter Magnusson) http://code.google.com/p/arduino/issues/detail?id=716 * Fix for CLOSE_WAIT bug that could cause Ethernet sketches to crash over time. (mr-russ and Johann Richard) * Fix to servo pulse timing calculation. (jwatte) http://code.google.com/p/arduino/issues/detail?id=908 * Added readString() and readStringUntil() functions. (Adrian McEwen) http://code.google.com/p/arduino/issues/detail?id=454 [examples] * Updated to latest ArduinoISP sketch. (rsbohn) http://code.google.com/p/arduino/issues/detail?id=378 * Fixed ArduinoISP sketch by lowering delay() in heartbeat. * Other updates. 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://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 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 to after any comments and #include statements in the main sketch file. This means that an #include now works. * Upgraded to newer versions of avr-gcc (4.3.0) and avr-libc (1.6). This provides support for newer Atmel chips, but may increase the size of sketches. * Allowing per-board specification of the upload.using preference, allowing upload via bootloader to some boards and via a programmer to others. * Added return values to some functions in the Wire library to allow for better error handling. * Fixed random() to work with long values. * Creation of an abstract Print base-class to allow Serial, SoftwareSerial, and LiquidCrystal to share code for print() and println(). * Incorporated ladyada's watchdog timer mods to the bootloader source, but only compiling them in for the Pro and Pro Mini (because they are included in the bootloader being burned on the boards by SparkFun). 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 pullup 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 nows include 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.