1
0
mirror of https://github.com/arduino/Arduino.git synced 2024-11-29 10:24:12 +01:00
Arduino/todo.txt

234 lines
10 KiB
Plaintext
Raw Normal View History

0017 arduino
PROCESSING 5503 SYNC
Add library keyword highlighting.
Don't allow in-place modification of user-installed library examples.
Test the FTDI drivers in the arduino.dmg.
Test bootloader burning w/ an AVRISP and a parallel programmer.
Add the Serial monitor.
Change the colors.
Revise the icon.
Check that I'm not requiring the JDK (as opposed to JRE) unnecessarily.
Don't recompile the Processing core if the work/ directory exists.
Fix Windows make.sh, etc. scripts.
Test on Windows.
Fix Linux make.sh, etc. scripts
Test on Linux.
Add support for third-party boards in the user's sketchbook folder.
Add support for third-party cores in the user's sketchbook folder.
Test the upload.using parameter to upload with a programmer.
Re-enable (and fix) the Commander.
Compiler.java
- Collect the target object files (.o) into a static library (.a) and link the other object files (from the sketch and libraries) against it.
- Build each library separately, with its own include path and destination (for .o files) so they don't collide with each other.
- 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
PreProcessor.java
- split write() into writeHeader() and write() as in Processing?
- add getExtraImports() function instead of having Sketch grab them directly.
- don't use oro.jar
Base.java
- add keywords from libraries to the syntax coloring
- remove "examples" folder from the examples and toolbar menus for the libraries.
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)
Preferences.java
- get rid of unused preferences in the dialog box
AVR
Servo library:
- patch for the Mega (pins 11 and 12, not 9 and 10)
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.
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 weak attribute to signal handlers: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1203798214
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().
- proper software initialization of the LCD: http://web.alfredstate.edu/weimandn/arduino/liquidCrystal_library/liquidCrystal.cpp
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
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
DEVELOPMENT
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.