0102 arduino

Fix Linux make.sh, etc. scripts
Test on Linux.

AVR

Ethernet library:
 - integrate DHCP support
 - client.connect() returns 0 when connection is successful?  http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1238295170
 - call Server.begin() from Ethernet.begin() instead of in user's sketch?
 - add method for receiving notification of new client connections to a server
 - add method for receiving notification of data written to a client
 - add method for receiving notification of client disconnections
Incorporate mikalhart's new SoftwareSerial library.
Consider making abs() not a macro.  See: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1234908504
Improve shiftOut() performance: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1216659239/0
Add String library.
Add Encoder library.
Bootloader:
 - disable watch dog timer
 - fix eeprom writing: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1202157667/15
Support pin change interrupts.
Switch pwm output on pins 5 and 6 to phase-correct mode, if possible.
Add parameter to shiftOut() for specifying a number of bits.
Add parameter to Serial.print[ln](x, BIN) for specifying number of bits.
Support PROGMEM strings in Serial.print(): http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1227919972
Should Serial.print(b) send the ASCII digits of the byte?
Add weak attribute to signal handlers: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1203798214
Floating point support in the map() function.
Fix delayMicroseconds(0).
Add sleep function(s).
Add SPI library.
Add OneWire library.
Add pulseOut(), etc. functions from Wiring.
Switch to ServoTimer2 library?  http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1222201226/0#5
Add ContinuousServo class that inherits from Servo?
LiquidCrystal library:
 - support going to the next line with println().
Supporting EEMEM directive by changing compiler command line: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1202157667
Include Arduino as AVR-ISP sketch in hardware/firmwares.
Move type definitions into WConstants.h.
Change core and libraries to use Arduino types (e.g. byte, boolean).

COMPUTER

Clear serial monitor button when the serial monitor opens.
Disable checking for updates.
Test the upload.using parameter to upload with a programmer.
Add keyboard shortcut for opening the serial monitor.
Escape characters with copy as html.
Support libraries in the SKETCH/code folder?
Test bootloader burning w/ an AVRISP.
Enable verbose output if shift (or alt?) is held down when pressing run or upload.
Add support for third-party boards in the user's sketchbook folder.
Add support for third-party cores in the user's sketchbook folder.
Re-enable (and fix) the Commander.
Move selection of Linux look and feel from Base.java to arduino.sh script.
Check RAM usage of sketches: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1224729260/0#0
Improve preprocessing of sketches:
 - Better determine which header files are included (not commented out).
 - Remember the original locations of function prototypes to highlight the correct line on error.
Multiple sketch windows.
Avoid library conflicts by only linking in the library whose name matches that of the #included header file.
Easier library discovery and installation ("Add library..." menu item).
Easier board installation ("Add board..." menu item)
Comprehensive board management:
 - Enabled and disabled boards.
 - Dialog for enabling, disabling, adding, deleting, and possibly editing boards.
 - Board descriptions (e.g. explaining differences between boards).
Allow for libraries in <SKETCHBOOK>/libraries.
Allow for boards in <SKETCHBOOK>/boards.
Divide boards.txt into multiple text files.
Allow for core in <SKETCHBOOK>/cores.
Clean up Library and LibraryManager.
Compile libraries dynamically (with compilation of sketch and core files).
Library builds should respect build.verbose.
Detect dependencies between libraries.
Byte-based serial monitor.
Line termination options in the serial monitor.
Clear character should clear serial monitor.
Incorporate serial-net proxy.
Changing font size should change serial monitor font size.
Deal with shorter screens (e.g. ASUS EEPC).
Investigate method for auto-detecting serial port on Windows (javax.usb?)
 - http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1225226642
Guess serial port on the Mac and Linux.
Automatic detection of baud rate for serial monitor (based on the call to Serial.begin() in the current sketch).
Improve, generally, the upload experience (e.g. faster program start after upload, keep-alive messages to bootloader from IDE, shorter bootloader timeout if possible, progress bar)
Allow uploading of .hex files.
Allow for arbitrary compilation command line arguments.
Find in reference should give same message for missing page as for missing page association.
Test find in reference on libraries.
Change background color while using external editor: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1229567785

Compiler.java
 - Eliminate the need to pass a Target into the compiler by having the Compiler determine the current target (by checking the preferences directly)?
 - Delete the unneeded static functions (for classpath translation, etc.) from the bottom of the file. 

Sketch.java
 - add system-wide include path in preprocess()?
 - should find libraries in the code/ sub-folder of the sketch folder
 - do sketches really need to get built in the applet/ sub-folder when uploading?

PreProcessor.java
 - split write() into writeHeader() and write() as in Processing?
 - add getExtraImports() function instead of having Sketch grab them directly.

Base.java
 - add keywords from libraries to the syntax coloring

Editor.java
 - allow the Board and Serial port to differ across editor windows.  This will require creating a separate instance of the menu for each window, and passing the selections into the sketch when compiling or uploading.
 - send the current board and serial port selections to the sketch (which will forward them to the compiler) when compiling or uploading (this should eliminate the need for the Target class, since the compiler will be able to find the target path and its source files itself)
 - remove references to the Runner and runtime

DEVELOPMENT

Revise the icon.
Don't recompile the Processing core if the work/ directory exists.
RXTX version patched to not hang with bluetooth serial ports: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1237179908
Add licenses for included open source libraries: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1234595391
Make run.bat not open a command line window: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1223883872
Update version of the FTDI drivers (Windows).
Remove AVR ISP and giveio drivers (Windows).
Include the executable installer for the FTDI drivers (Windows).
Revise fetch.sh to look for version specific pages (names suffixed with, e.g., "-0007")
Move to ant for build process.

DOCUMENTATION / SITE CONFIGURATION

Multi-language plugin.
Work on opening up website to public editing.
Create form for submitting workshops.
Create form for submitting projects.

DOCUMENTATION / META

Create community section of site.
List of examples we'd like to have.
Style guide for examples, references, and foundations.
Add a Nordic board to the forum.
Add a German board to the forum.

DOCUMENTATION / NAVIGATION

Create About section.
Remove Board page.
Move Environment into the Reference section (which should be renamed Programming).

DOCUMENTATION / FOUNDATIONS

Better documentation of the Arduino BT.
Tutorial about serial communication.

DOCUMENTATION / REFERENCE

Remove parameters from the function links on the reference page.
Document Matrix and Sprite libraries on the Arduino site.
Document Wire.endTransmission() return values: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1228240199

DOCUMENTATION / EXAMPLES

Photos:
 - Loop
 - Analog Input (potentiometer and LDR on analog input 0)
Consistency:
 - ledpin vs. ledPin
 - value vs. val
Add a Brightness example where an analog input controls the analog output.
Graph example should use an intermediate variable.
Button example says pin 7 but uses pin 2.
Split Loop example in two (one that does loops, another that does arrays).
Add LiquidCrystal library examples.
Add Ethernet library examples.
Add Wire library examples.
Add examples using specific hardware (simple analog sensors, optocouplers, etc.)
Examples should demonstrate use of functions.
Add I2C EEPROM example using Wire library.
Update pictures to use Arduino Diecimila.
Create diagrams and schematics for the examples.

DOCUMENTATION / GETTING STARTED

Arduino feature list (in Getting Started > Introduction).
Main "getting started" link should automatically load page for the user's operating system.
Consider deleting many of the pictures in the howto's as they just make it harder to see the instructions without adding much (e.g. the pictures of files in folders).
Tell people not to put the board on a Powerbook.
People don't know what a jumper is.
Add picture of the RX/TX LEDs flashing.
Show a picture of the LED flashing.

DOCUMENTATION / TROUBLESHOOTING

Add explanation of how to work around auto-reset.

DOCUMENTATION / HACKING

Burning bootloader without an AVRISP: http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html
Documentation for moving from Arduino to custom PCBs.
Write advanced library tutorial.
