I assume folks have noticed the new Arduino UNO: http://arduino.cc/en/Main/ArduinoBoardUno
The on board silk screen seems to be much clearer. (I like the '~" for PWM!)
The FTDI USB-to-USART has been replaced by an Atmel ATmega8U2, which has on-board USB.
IMHO, this is the most significant improvement, it removes the need to install any drivers on a host PC.
IMHO this is where I believe Maple, Maple Native, Mini, Oak, needs to get to.
Some schools, and universities, I work with either can't, or won't install new device drivers onto their networks of PC's.
The Arduino UNO uses Dean Camera's LUFA on an ATmega8U2 for the USB interface.
Arduino UNO interprets DTR to 'auto-reset' the main ATmega328 Arduino processor into the Arduino bootloader.
I've communicated with Dean in the past, and he believes DTR is available on the key platforms (Windows, Mac OS X and Linux). Though he has not done detailed testing himself, some of the LUFA users have tried different platforms and report success.
So, may I ask LeafLabs to consider this?
Let's modify the Maple bootloader to remove the DFU USB device, and only use the USB serial device.
This removes the need to install a DFU driver on the host.
It also removes the need to re-enumerate USB devices to switch between upload and operation.
We can ponder on the bootloader load protocol, but I believe the DFU upload protocol should be okay as the Python program doesn't seem to care.
In this model, Maple-ets (Maple, Native, Mini, ...) would look like a USB serial device all the time (unless the user wrote their own USB device implementation), and DTR would be used to trigger the bootloader.
Possible benefits:
a. print/println will work in setup() because their is no USB re-enumeration
b. slightly smaller bootloader
c. easier to write dumb host programs to talk to programs running on Maple as their is no need for anything to 'escape' or interpret bytes coming over the connection, and the host program has a simple way to reset the Maple to a known state (wiggle DTR).
d. might be easier to connect to other USB hosts, and even USB On-The-Go devices and they act as a USB host for Maple-ets (i.e. no need to port DFU driver to Google phones, iPad, Blackberry, XBox, PlayStation, Wii, ... :-)
e. users may have fewer issues with their OS interfacing to the USB serial, rather than two USB devices.
I realise LeafLabs have put significant effort into the bootloader, but I feel the UNO has changed the ground rules, and IMHO, for the better.
EDIT: Added word 'Bootloader' to title as another thread has started, and it might be nice to keep similar ideas in a thread.