0014 arduino


AVR

Change delayMicroseconds(2000) to delay(2) in LiquidCrystal library: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1234577802
Consider making abs() not a macro.  See: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1234908504
Allow hardcoding of R/W line to ground with LiquidCrystal library.
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
Add support for ATmega1280 (e.g. timers, external interrupts, multiple serial ports).
Add weak attribute to signal handlers: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1203798214
Incorporate ladyada's new SoftwareSerial library.
Floating point support in the map() function.
Should Serial.print(b) send the ASCII digits of the byte?
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 library that inherits from Servo?
LiquidCrystal library: support going to the next line with println().
Ethernet library:
 - 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
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).
Fix millis() so it never increments by two.
Consider moving millis() to timer 1, and configuring it so the interrupt is generated once a millisecond.

COMPUTER

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

DEVELOPMENT

Upgrade AVR tools to latest AVR MacPack - includes avr-gcc 4.3.2, which should fix interrupt problems.
Upgrade AVR tools to latest WinAVR - includes avr-gcc 4.3.2.
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).
Include newer version of avr-gcc (one that supports the ATmega1280).
Revise fetch.sh to look for version specific pages (names suffixed with, e.g., "-0007")
If possible, install bug tracking and svn on arduino.cc.
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.
