|
| 1 | +ARDUINO 1.0 |
| 2 | + |
| 3 | +[environment] |
| 4 | + |
| 5 | +* The file extension for sketches has changed from .pde to .ino, to avoid |
| 6 | + conflicts with the Processing software ("ino" are the last three letters |
| 7 | + in "Arduino"). |
| 8 | + |
| 9 | +* There are a new set of toolbar icons, including a checkmark icon to |
| 10 | + verify (compile) a sketch and an arrow for upload. The serial monitor |
| 11 | + icon has moved to the right of the toolbar. Also, shift-clicking the |
| 12 | + upload icon now uploads using a programmer (selected in the Tools menu). |
| 13 | + You can still enable verbose output in the preferences dialog. (Icons |
| 14 | + were designed by Nicholas Zambetti.) |
| 15 | + |
| 16 | +* There’s a new color scheme and about image for the IDE (by ToDo.to.it). |
| 17 | + |
| 18 | +* The name of the currently selected board and serial port are now shown |
| 19 | + at the bottom of the editor. (Code from Wiring.) |
| 20 | + |
| 21 | +* A progress bar is displayed during compilation and upload. (from Wiring.) |
| 22 | + |
| 23 | +[core / libraries] |
| 24 | + |
| 25 | +* Serial transmission is now asynchronous - that is, calls to |
| 26 | + Serial.print(), etc. add data to an outgoing buffer which is transmitted |
| 27 | + in the background. Also, the Serial.flush() command has been repurposed |
| 28 | + to wait for outgoing data to be transmitted, rather than dropping |
| 29 | + received incoming data. |
| 30 | + |
| 31 | +* The behavior of Serial.print() on a byte has been changed to align it |
| 32 | + with the other numeric data types. In particular, it will now print |
| 33 | + the digits of its argument as separate ASCII digits (e.g. '1', '2', '3') |
| 34 | + rather than a single byte. The BYTE keyword has been removed. To send a |
| 35 | + single byte of data, use Serial.write() (which is present in Arduino 0022 |
| 36 | + as well). |
| 37 | + |
| 38 | +* The Serial class (as well as other classes inheriting from Stream, like |
| 39 | + EthernetClient, SoftwareSerial, Wire and more) now contains functions |
| 40 | + for parsing incoming data, based on the TextFinder library by Michael |
| 41 | + Margolis. They include find() and findUntil() to search for data, |
| 42 | + parseInt() and parseFloat() for converting incoming characters into |
| 43 | + numeric values, and readBytes() and readBytesUntil() for reading |
| 44 | + multiple bytes into a buffer. They use a timeout that can be set with the |
| 45 | + new setTimeout(). |
| 46 | + |
| 47 | +* The SoftwareSerial class has been reimplemented, using the code originally |
| 48 | + written for the NewSoftSerial library by Mikal Hart. This allows for |
| 49 | + multiple simultaneous instances, although only one can receive at a time. |
| 50 | + |
| 51 | +* Support has been added for printing strings stored in flash (program |
| 52 | + memory) rather than RAM. Wrap double-quoted strings in F() to indicate |
| 53 | + that they should be stored in flash, e.g. Serial.print(F("hello world")). |
| 54 | + |
| 55 | +* The String class has been reimplemented as well, by Paul Stoffregen. This |
| 56 | + new version is more memory-efficient and robust. Some functions which |
| 57 | + previously returned new string instances (e.g. trim() and toUpperCase()) |
| 58 | + have been changed to instead modify strings in place. |
| 59 | + |
| 60 | +* Support for DHCP and DNS has been added to the Ethernet library, thanks |
| 61 | + to integration by Adrian McEwen. Most classes in the Ethernet library |
| 62 | + have been renamed to add a "Ethernet" prefix and avoid conflicts with |
| 63 | + other networking libraries. In particular, "Client" is now |
| 64 | + "EthernetClient", "Server" is "EthernetServer", and "UDP" is |
| 65 | + "EthernetUDP". A new IPAddress class makes it easier to manipulate |
| 66 | + those values. |
| 67 | + |
| 68 | +* The UDP API has been changed to be more similar to other libraries. |
| 69 | + Outgoing packets are now constructed using calls to the standard write(), |
| 70 | + print(), and println() functions – bracketed by beginPacket() and |
| 71 | + endPacket(). The parsePacket() function checks for and parses an |
| 72 | + incoming packet, which can then be read using available(), read(), and |
| 73 | + peek(). The remoteIP() and remotePort() functions provide information |
| 74 | + about the packet’s origin. (Again, thanks to Adrian McEwen for the |
| 75 | + implementation.) |
| 76 | + |
| 77 | +* The Wire library has also been modified to use the standard read() and |
| 78 | + write() functions instead of send() and receive(). You can also use |
| 79 | + print() and println() for outgoing data. |
| 80 | + |
| 81 | +* The SD library now supports multiple simultaneous open files. It also |
| 82 | + provides the isDirectory(), openNextFile(), and rewindDirectory() |
| 83 | + functions for iterating through all the files in a directory. (Thanks |
| 84 | + to Limor Fried.) |
| 85 | + |
| 86 | +[boards / firmwares] |
| 87 | + |
| 88 | +* Added the Arduino Mini w/ ATmega328. |
| 89 | + |
| 90 | +* Added Windows drivers (.inf files) and 16U2 firmware (.hex files) for |
| 91 | + the rev. 3 boards (Uno, Mega, and Mega ADK). |
| 92 | + |
| 93 | +[internals] |
| 94 | + |
| 95 | +* The WProgram.h file, which provides declarations for the Arduino API, |
| 96 | + has been renamed to Arduino.h. To create a library that will work in |
| 97 | + both Arduino 0022 and Arduino 1.0, you can use an #ifdef that checks |
| 98 | + for the ARDUINO constant, which was 22 and is now 100. For example: |
| 99 | + |
| 100 | + #if defined(ARDUINO) && ARDUINO >= 100 |
| 101 | + #include "Arduino.h" |
| 102 | + #else |
| 103 | + #include "WProgram.h" |
| 104 | + #endif |
| 105 | + |
| 106 | +* The write(), print(), and println() functions in Stream now return a |
| 107 | + size_t (instead of void). This indicates the number of bytes actually |
| 108 | + written by the function. Any classes that inherit from Stream will need |
| 109 | + to change accordingly. Additionally the write(str) function has been |
| 110 | + given a concrete implementation – it calls write(buf, len) - so |
| 111 | + sub-classes don't need to (and shouldn't) implement it. |
| 112 | + |
| 113 | +* There are new abstract base-classes for Client, Server, and UDP to |
| 114 | + provide portability across networking libraries. |
| 115 | + |
| 116 | +* The pin definitions for the Arduino boards (i.e. the mappings from pin |
| 117 | + numbers to port register / bit pairs) is now stored in a sub-folder of |
| 118 | + a new variants/ folder in the hardware folder. The variant to use for |
| 119 | + a given board is specified by the BOARD.build.variant preference in the |
| 120 | + boards.txt file. |
| 121 | + |
| 122 | +* The new, variant-specific pins_arduino.h files now provides additional |
| 123 | + macros with information about the characteristics of the board (e.g. |
| 124 | + the locations of the SPI and TWI pins, and the number of digital and |
| 125 | + analog pins). |
| 126 | + |
| 127 | +* The avrdude included with the Mac and Windows versions of the Arduino |
| 128 | + software has been upgraded to avrdude 5.11 (from an Arduino-specific |
| 129 | + version of avrdude 5.4). The software now uses the "arduino" programmer |
| 130 | + type in place of "stk500v1" for uploading to most Arduino boards. |
| 131 | + |
1 | 132 | ARDUINO 0022 - 2010.12.24
|
2 | 133 |
|
3 | 134 | [core / libraries]
|
|
0 commit comments