root/readme.txt

Revision 0:e6c45a1aa571, 18.0 KB (checked in by sgk@…, 6 months ago)

Arduino 0018 from  http://code.google.com/p/arduino/

Line 
1Arduino is an open-source physical computing platform based on a simple i/o
2board and a development environment that implements the Processing/Wiring
3language. Arduino can be used to develop stand-alone interactive objects or
4can be connected to software on your computer (e.g. Flash, Processing, MaxMSP).
5The boards can be assembled by hand or purchased preassembled; the open-source
6IDE can be downloaded for free.
7
8For more information, see the website at: http://www.arduino.cc/
9or the forums at: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl
10
11To report a bug or a make a suggestions, go to:
12[hardware] http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?board=hwbugs
13[software] http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?board=swbugs
14
15INSTALLATION
16Detailed instructions are in reference/Guide_Windows.html and
17reference/Guide_MacOSX.html.  For Linux, see the Arduino playground:
18http://www.arduino.cc/playground/Learning/Linux
19
20If you are using a USB Arduino, you will need to install the drivers for the
21FTDI chip on the board. These can be found in the drivers/ directory.
22
23* On Windows, plug in the Arduino board and point the Windows Add Hardware
24  wizard to the drivers/FTDI USB Drivers sub-directory of the Arduino
25  application directory.
26
27* On the Mac, install the FTDIUSBSerialDriver_10_4_10_5_10_6.mpkg package.
28 
29* On Linux, drivers are included in kernel versions 2.4.20 or greater.
30
31CREDITS
32Arduino is an open source project, supported by many.
33
34The Arduino team is composed of Massimo Banzi, David Cuartielles, Tom Igoe,
35Gianluca Martino, and David A. Mellis.
36
37Arduino uses the GNU avr-gcc toolchain, avrdude, avr-libc, and code from
38Processing and Wiring.
39
40Icon Design and Artwork created by Thomas Glaser (envis precisely).
41
42UPDATES
43
440018
45
46[core / libraries]
47
48* Added tone() and noTone() functions for frequency generation.
49* Added Serial.end() command.
50* Added precision parameter for printing of floats / doubles.
51* Incorporated latest version of Firmata.
52* Fixed bug w/ disabling use of the RW pin in the LiquidCrystal library.
53* No longer disabling interrupts in delayMicroseconds().
54* Fixed bug w/ micros() returning incorrect values from within an interrupt.
55* Fixed bug that broke use of analog inputs 8-15 on the Mega.
56
57[environment]
58
59* Synchronized with the Processing 1.0.9 code base, bringing various fixes,
60  including to a bug causing saving to fail when closing the last sketch.
61
62* Added support for third-party hardware in the SKETCHBOOK/hardware folder,
63  mirroring the current structure of the hardware folder in Arduino.
64
65* Added Ctrl-Shift-M / Command-Shift-M shortcut for serial monitor.
66
67* Hold down shift when pressing the Verify / Compile or Upload toolbar
68  buttons to generate verbose output (including command lines).
69
70* Moving build (on upload) from the applet/ sub-folder of the sketch
71  to a temporary directory (fixing problems with uploading examples from
72  within the Mac OS X disk image or a Linux application directory).
73
74* Fixed bug the prevented the inclusion of .cpp and .h (or .c and .h) files
75  of the same name in a sketch.
76
77* Improved the Mac OS X disk image (.dmg): added a shortcut to the
78  Applications folder, a background image with arrow, and new FTDI drivers.
79
800017 - 2009.07.25
81
82[documentation / examples]
83* Many new and revised examples from Tom Igoe.
84
85[core / libraries]
86* Updated LiquidCrystal library by Limor Fried.  See reference for details.
87* Updated Firmata library to version 2.1 (rev. 25).
88* Replaced the Servo library with one (MegaServo) by Michael Margolis.
89  Supports up to 12 servos on most Arduino boards and 48 on the Mega.
90* Improving the accuracy of the baud rate calculations for serial
91  communication (fixing double-speed problems on 8 MHz Arduino boards).
92  Thanks to gabebear.
93
94[environment]
95* Synchronized with the Processing 1.0.3 code base (rev. 5503), bringing
96  many improvements (listed below).
97* New icons and about image by Thomas Glaser (envis precisely).
98* Support for multiple sketch windows.
99* The serial monitor now has its own window.
100* Comment / Uncomment menu item (in Edit) and keyboard shortcut.
101* Increase and Decrease Indent menu items (in Edit) and keyboard shortcuts.
102* Support for third-party libraries in the SKETCHBOOK/libraries folder.
103* Libraries are now compiled with the sketch, eliminating the delay when
104  switching boards and the need to delete .o files when changing library
105  source code.
106* Arduino now comes as an app file (in a dmg) on the Mac.
107* Adding the Arduino Nano w/ ATmega328 to the Tools > Board menu.
108
1090016 - 2009.05.30
110
111[documentation / examples]
112* New communication examples (w/ corresponding Processing and Max/MSP code) by
113  Tom Igoe.
114
115[core / libraries]
116* Adding support for the Arduino Pro and Pro Mini 3.3V / 8 MHz w/ ATmega328.
117* Adding support for the LilyPad Arduino w/ ATmega328.
118* Adding write(str) and write(buf, size) methods to Print, Serial, and the
119  Ethernet library Client and Server classes.  This allows for more efficient
120  (fewer packet) Ethernet communication.  (Thanks to mikalhart.)
121* Improvements to the way the Ethernet library Client class connects and
122  disconnects.  Should reduce or eliminate failed connections and long
123  timeouts.  (Thanks to Bruce Luckcuck.)
124* Optimizing the timer0 overflow interrupt handler (used for millis() and
125  micros()).  Thanks to westfw and mikalhart.
126* Fixing bug that limited the bit() macro to 15 bits.  Thanks to Paul Badger.
127* Adding ARDUINO version constant (thanks to prodding from mikalhart).
128 
129[environment]
130* Ordering the items in the Tools > Board menu.
131* Adding "Copy as HTML" command to the Tools menu.
132* Eliminating (maybe) the occasional "Couldn't determine program size" errors.
133  Thanks to the Clever Monkey.
134* Moving selection of Linux look-and-feel into the arduino script so it can
135  be changed by users.  Thanks to Eberhard Fahle.
136 
137[tools]
138* Adding automatic dependency generation to the Makefile.  (Lars Immisch)
139
1400015 - 2009.03.26
141
142[core / libraries]
143* Adding support for the Arduino Mega (ATmega1280).
144
145[environment]
146* Reinstating use of core.a library in the build process, slightly shrinking
147  compiled sketch sizes.  (Thanks to William Westfield.)
148* Fixing bug in copy for forum (thanks to eried).
149
1500014 - 2009.03.07
151
152[core / libraries]
153* Fixing bug that prevented multiple outgoing Client connections with the
154  ethernet library.
155 
156[environment]
157* Clarifying ATmega168 vs. ATmega328 in the Tools > Boards menu.
158
159[tools]
160* Updating the Mac OS X AVR tools to AVR MacPack 20081213.  This includes
161  avr-gcc 4.3.2, which should fix problems with functions called from
162  within interrupts.
163
1640013 - 2009.02.06
165
166[documentation / examples]
167* Adding examples for Parallax Ping Sensor and Memsic 2125 accelerometer.
168
169[core / libraries]
170* Adding support for the ATmega328.  The upload speed is 57600 baud, so you
171  may need to edit boards.txt or reburn your bootloader if you bought an
172  ATmega328 w/ bootloader from adafruit or other supplier.
173* Adding support for printing floats to Print class (meaning that it works
174  in the Serial, Ethernet, and LiquidCrystal classes too).  Includes two
175  decimal places.
176* Added word, word(), bitRead(), bitWrite(), bitSet(), bitClear(), bit(),
177  lowByte(), and highByte(); see reference for details.
178* Working around problem that caused PWM output on pins 5 and 6 to never go
179  to 0 (causing, for example, an LED to continue to glow faintly).
180* Removing cast macros, since function-style casts are a feature of C++.  This
181  should fix contributed libraries that broke in Arduino 0012.
182* Modifying pulseIn() to wait for a transition to start timing (i.e. ignoring
183  any pulse that had already started when the function was called).
184* Fixing bug in random() that limited the ranges of values generated.  Thanks
185  to Mikal Hart.
186* Modifying delay() to pause for at least the given number of milliseconds.
187* Fixing bug in Ethernet library that interfered with use of pins 8 and 9.
188* Originating each outgoing network connection from a different port (in the
189  Client class of the Ethernet library).  Thanks to Paul and joquer.
190* Updating ATmega168 bootloader to work with standard distributions of avrdude
191  (responding to signature requests made with the universal SPI command) and
192  correctly store EEPROM data.  Thanks to ladyada.
193 
194[environment]
195* Omitting unused functions from compiled sketches, reducing their size.
196* Changing compilation process to allow for use of EEMEM directive (although
197  not yet uploading EEPROM data).
198
1990012 - 2008.09.18
200
201* Added Arduino Nano to the boards menu.
202* Arduino Pro or Pro Mini (8 MHz) to the boards menu.
203* Added Firmata library by Hans Steiner and others.  This provides a standard
204  protocol for communicating with software on the computer.
205* Added an Ethernet library for use with the Arduino Ethernet Shield.
206* Added a Servo library based on the work of Jim Studt.
207* Added a LiquidCrystal library based on the work in the playground.  It
208  supports both 4- and 8-bit modes.
209* Improved millis(): it now overflows after 49 days instead of 9 hours, but
210  now uses slightly more processing power.
211* Fixed reversing direction bug in Stepper library.  (Thanks to Wayne Holder.)
212* Moved insertion of #include <WProgram.h> to after any comments and #include
213  statements in the main sketch file.  This means that an #include <stdlib.h>
214  now works.
215* Upgraded to newer versions of avr-gcc (4.3.0) and avr-libc (1.6).  This
216  provides support for newer Atmel chips, but may increase the size
217  of sketches.
218* Allowing per-board specification of the upload.using preference, allowing
219  upload via bootloader to some boards and via a programmer to others.
220* Added return values to some functions in the Wire library to allow for
221  better error handling.
222* Fixed random() to work with long values.
223* Creation of an abstract Print base-class to allow Serial, SoftwareSerial,
224  and LiquidCrystal to share code for print() and println().
225* Incorporated ladyada's watchdog timer mods to the bootloader source, but
226  only compiling them in for the Pro and Pro Mini (because they are included
227  in the bootloader being burned on the boards by SparkFun).
228
2290011 - 2008.03.28
230
231* Fixed Find in Reference.
232* Added map() function for mapping values from one range to another.
233* Added analogReference() function.
234* Added interrupts() and noInterrupts() functions.
235* Added degrees() and radians() functions.
236* Added timeout parameter (in microseconds) to pulseIn(); default is 1 second.
237* Support for uploading sketch using a programmer.
238* Improved detection of functions that need prototyping.
239* Placing function prototypes after #include's and #define's.
240* No longer moving #include statements to the top of the sketch.
241* Can now drag .pde files onto the Arduino dock icon on Mac OS X.
242  Thanks to Peter Sgouros.
243* New script for downloading the reference from Tom Pollard.  Thanks Tom!
244* Miscellaneous Mac OS X and other patches from Wim Lewis.  Thanks Wim!
245* Updated Mac OS X FTDI drivers.
246
2470010 - 2007.10.11
248
249* Support for the LilyPad Arduino.
250* Vista support.
251* Mac OS X universal distribution.
252* Printing!
253* Copy for discourse.
254* New Board menu replaces the Microcontroller menu.
255* New Burn Bootloader menu offers a choice of programmers.
256* New and improved keyboard shortcuts.
257* Fixed some find/replace bugs.
258* Better auto-format.
259* Improved error messages when uploading.
260* Support for COM10 and higher on Windows.
261* Fixed automatic refresh of the Serial Port menu under Windows.
262* Quaqua look-and-feel on Mac OS X.
263* Reorganization of the Arduino application directory.
264
2650009 - 2007.08.06
266
267* Added support for the Arduino Diecimila.
268* Switched to using avrdude (instead of uisp) for uploading sketches.
269* Added the ability to burn NG and Diecimila bootlaoders (with an AVRISPmkII).
270* Fixed a bug in SoftwareSerial (a hardware serial function was being called
271  instead of the software serial equivalent).  Thanks to brianbr for the
272  report and fix.
273
2740008 - 2007.06.09
275
276* Updated examples (in distribution and on the website).
277* Added an EEPROM library (see reference for details).
278* Added a Stepper motor library (see reference).
279* Patched to reduce binary sketch sizes by building the Arduino core as
280  a library (.a) file - now only the needed parts of the core are linked into
281  a sketch.  Originally written by Nicolas Roland, revised by Don Cross.
282* Fixed bug in Serial.available().  Report and fix by Don Cross.
283* Now recompiling libraries when switching microcontrollers.  Report by
284  Julian Bleecker; fix by Nicholas Zambetti.
285* Cleaned up core functions: moved pin definitions into program space to save
286  RAM, and other minor improvements.  Contributed by Jim Studt.
287* Lots of reference additions and fixes from Paul Badger.
288* Changed default microcontroller to ATmega168 from ATmega8.
289* Removed the delay from analogRead().
290* Activating TWI/I2C pullup resistors on the ATmega168 (in addition to the
291  ATmega8).
292
2930007 - 2006.12.25
294
295* Smaller core (about 3.5 KB instead of 4.5 KB).
296* Added a SoftwareSerial library (thanks to Antonio, Heather Dewey-Hagborg, and
297  bigengineer for their help).
298* Implemented a Serial.flush() routine; see reference for details.
299* Digital pins 0 and 1 can be used for i/o until a call to Serial.begin().
300* Replaced avr-lib's uart routines with custom code for handling serial
301  communication and modified C++ serial commands to call the C serial commands;
302  the code may behave slightly differently in border cases (e.g. non-standard
303  speeds, or on overflow).
304* Added attachInterrupt() and detachInterrupt() functions for handling of
305  external interrupts on pins 2 and 3.
306* Implemented shiftOut() routine; see reference for details.
307* Defining binary constants: e.g. B1010 is 6.
308* Mac versions no longer require running of the macosx_setup.command script.
309* Windows version comes with the FTDI USB drivers already unzipped.
310* New Linux binary distribution (still requires some programs to be
311  pre-installed).
312
3130006 - 2006.10.21
314
315* Mac version no longer requires Java 1.5, meaning it should run on 10.3.9.
316* Added support for analog inputs 6 and 7 and pwm on pins 5 and 6 on the
317  on the ATmega168 used in the Arduino Mini (extra analog inputs not available
318  in DIP ATmega168s).
319* You now select the baud rate for the serial monitor from within the editor
320  status bar when the serial monitor is running instead of from the Tools menu.
321* Pressing enter within the serial monitor edit box no longer appends a newline
322  to the message sent to the board.
323* Included the Wire (TWI) library from Wiring.
324* Updated the reference.
325
3260005 - 2006.09.26
327
328* Applied patch from Hans Steiner to improve Linux support by searching for avr
329  tools in the user's path instead of expecting them at a fixed location.
330* Added an upload.verbose preference for help in debugging.
331* ATmega168 support!
332* New Wiring-compatible randomSeed(), random(max) and random(min, max) functions
333  (except operating on longs instead of floats).
334* Fixed bug that sometimes caused uploading of old versions of a sketch.
335* Serial monitor nows include an interface to send messages to the Arduino
336  board.  Pressing return appends a newline, pushing the send button doesn't.
337* Now displaying "burning bootloader..." and "compiling..." status messages.
338
3390004 - 2006.04.26
340
341* Main sketch is now compiled as C++ (instead of C).
342* Updated avr toolchain.
343* printInteger(), printHex(), etc. now handle longs.
344* millis() fixed (now overflows after days, not minutes)
345* Fixed path to java in Windows run.bat.
346* Added Matrix and Sprite libraries (written with Nicholas Zambetti).
347* PWM now working on pin 11 (in addition to pins 9 and 10).
348* Slowed PWM frequency (on all three PWM pins) to 1KHz.
349* Now give an error if compiled sketch is too big.
350* Fixed abs(), min(), max(), and constrain() macros.
351* Added menu items to the IDE to burn bootloader.
352* Now display binary sketch size on upload, and give error if too big.
353* Added C++ serial library.
354* Resynced with Processing/Wiring IDE code (improved auto-format, faster logging
355  to serial monitor console, other bug fixes)
356* New library system.
357* Updated to latest version of the RXTX serial library; Mac users will need to
358  rerun macosx_setup.command.
359
3600003 - 2006.01.16
361
362API Changes
363* Reversed the analog input pins to correspond to newer boards.  This means
364  a call, for example, to analogRead(0) must be changed to analogRead(5) in
365  order to read the same physical pin.
366* Added a printNewline() function (which sends '\n' = ASCII 10).
367
368New Stuff
369* Reference is included (features native to C not yet documented).
370* Serial monitor added (click the toolbar button to turn it on or off).  Baud
371  rate is controlled by the Serial Monitor Baud Rate Menu, defaults to 9600.
372  Icon and implementation from Wiring.
373* Serial port menu now automatically refreshes when opened.
374* New blue color scheme and icons courtesy of Noah Shibley (colors are hardcoded
375  into the source to ensure consistency with image files).
376* Keyspan and FTDI USB drivers included with Mac and Windows distributions.
377
378Bug Fixes
379* millis() now updates every millisecond instead of every second.
380* Bootloader included with Windows distribution (it was already in the Mac
381  dist).
382* Updated icon of the Windows executable.
383* Now flushing the serial port before uploading (should fix some errors).
384* Improved accuracy of the delayMicroseconds() function.
385
386Other
387* Upload rate no longer selectable from a menu within the IDE.  Instead, edit
388  the serial.download_rate item in the preferences.txt file.
389* Created Xcode project for building Arduino on the Mac (doesn't yet regenerate
390  the grammar files or package the distribution); active target should be "App".
391* Removed unused or unimplemented items from menus.
392
3930002 - 2005.10.05
394
395* New build process no longer uses makefiles; now controlled by preferences.txt.
396* core/ replaced with targets/; can now link against Wiring libraries.
397* Replaced print() with printString, printInteger, printHex, printByte, etc.
398* Added menu for selecting serial port speed.
399* Updated icon.
400* Bootloader shrunk to less than 1 KB; fuses updated accordingly.
401* Added serialRead(), serialAvailable(), and delayMicroseconds().
402
4030001 - 2005.08.25
404
405* This is the first released of the unified IDE + language library
406  it's a terrible hack... but it works. at the moment it's in alpha stage
407  but it can be used to work.
408* The processing preprocessor is included but not used.
Note: See TracBrowser for help on using the browser.