aboutsummaryrefslogtreecommitdiff
path: root/cores/arduino/CDC.cpp
AgeCommit message (Collapse)Author
2012-09-13Avoid serial buffer overrun on leonardoPeter Van Hoyweghen
2012-04-11fixed logic bug in Caterina that could stop the bootloader from entering ↵Zach Eveland
self-programming mode
2012-04-06Revert "Revert "added a short delay and comment to boolean operator in CDC""Zach Eveland
This reverts commit 200eefb4e2ac7796c5c901e8fd9369c85ec544c5.
2012-04-06Revert "added a short delay and comment to boolean operator in CDC"Federico Vanzati
This reverts commit ade4893f585e3e94fa6cf683620e1d12afc88ecd.
2012-04-03added a short delay and comment to boolean operator in CDCZach Eveland
Delay fixes problem where the port has been configured but not quite opened. Federico found that 10 ms was the minimum time needed to avoid problems.
2012-04-01added Boolean operators to HardwareSerial and CDC to test whether the port ↵Zach Eveland
is ready to send data. Mostly useful for Leonardo - simple way to test whether the port is actually opened by an application and ready to receive data. For Serial objects attached to real UARTs always returns true.
2012-03-14reduced delay before starting the Leonardo bootloaderZach Eveland
Since we use a magic RAM flag to signal to the bootloader there's a risk of the sketch overwriting the magic RAM location before the bootloader starts. By reducing the watchdog timeout we reduce the chance of this happening.
2012-03-01changed auto-reset logic for Leonardo. only do WDT manipulation if the port ↵Zach Eveland
is opened at 1200 bps. (Dave Mellis)
2012-02-27Autoreset 1200 bps fix.Cristian Maglie
2012-02-22shortened the watchdog period for resetting Leonardo from 2 s to 250 ms. ↵Zach Eveland
Reset into bootloader is much snappier.
2012-02-14Leonardo now checks whether bootloader should be run after a WDT event.Zach Eveland
Before the sketch initiates an auto-reset for upload it pokes a magic word into a specific RAM address. On starting the bootloader checks this address. If it finds the magic word it knows the bootloader code should run. If not it jumps straight back to sketch. Test in a sketch by adding to setup(): wdt_enable(WDTO_2S); Sketch should upload, start, run for two seconds, WDT, and sketch should restart (not bootloader). Had to cut out unused descriptor code to make the bootloader still fit in 4k.
2012-02-13Leonardo auto-reset-and-upload changes for Windows (explanation below)Zach Eveland
On Windows COM port changes when board switched between bootloader and sketch. No way to prevent this so now Windows users have to select the upload port separate from the comm port. Also, handling of reset into bootloader was broken on Windows. Would occasionally leave the original COM port completely unusable. Changed the way this reset is initiated. Finally, had to add upload.disable.flushing=true flag to boards.txt so IDE wouldn't try to flush the original COM port after it disappeared.
2012-02-03fixed starting Leonardo bootloader from sketchZach Eveland
AvrdudeUploader class opens and closes Leonardo port at the magic baudrate before starting avrdude; reduced reset timeout from 250 ms to 15 ms
2012-01-24Caterina now cleanly hands off operation to the sketchZach Eveland
had to remove TIMER1 operation from bootloader - was interfering with normal sketch operation
2011-12-18added asynchronous buffering of received CDC charactersZach Eveland
This fixes the issue Federico reported where bytes written by host but not read by sketch would cause serial connection to lock up. Ring buffer implementation is based on HardwareSerial.cpp. Adds public accept() method to CDC.
2011-11-09restored original non-interrupt-driven DiskLoaderZach Eveland
Interrupt-driven version was a dead-end - too many bugs with that approach.
2011-10-27changes in core and boards.txt to support new bootloaderZach Eveland
old bootloader could fit in only 2 kB of flash. new version has to have a 4 kB block - jump-to address and boards.txt must reflect this.
2011-09-08fixed bug where sketches over 28k caused subsequent auto-reset-and-upload ↵Zach Eveland
attempts to fail. fixed bug in reboot routine, changed fuses to select 1024-word bootloader size, disabled hardware boot enable.
2011-09-06changed auto-reset trigger condition to fix auto-reset-and-upload for ↵Zach Eveland
Windows. now reboots when a port, opened at 1200 bps, is closed.
2011-09-05changed baudrate for auto-reset-and-upload back to 1200 bps. specified ↵Zach Eveland
arduino protocol for Leonardo avrdude upload.
2011-08-30on a CDC or HID write() error, call setWriteError(). better handling of ↵Zach Eveland
USB_Send errors in CDC.
2011-08-30support for non-Leonardo boards is back!Zach Eveland
2011-08-30CDC and HID write() routines now return non-void - brought in line with new ↵Zach Eveland
write behavior
2011-08-27auto-upload-and-reset works now at 300 bps. patched avrdude for Mac to ↵Zach Eveland
support 300 bps connection, changed core and boards.txt to match
2011-08-24bugfix - Serial.write() would try to send even if no CDC connection was open.Zach Eveland
2011-08-24changed auto-reset method for upload: now triggered by opening port at 1200 bpsZach Eveland
2011-08-16Temporary fix for auto-reset from IDE. Will reset chip when DTR is ↵Zach Eveland
asserted, no matter what CDC baud rate is selected.
2011-08-14Serial via USB worksZach Eveland
Integrated rest of Peter's USB implementation