Commit Graph

134 Commits

Author SHA1 Message Date
Zach Eveland d755d0035d changed PID values for Leonardo bootloader and sketch
done to avoid driver problems for users who installed the pre-release bootloader and driver
2012-04-25 15:56:18 -04:00
Zach Eveland 764f94d0f1 merged Caterina with Blink 2012-04-11 23:24:04 -04:00
Zach Eveland 49f7fb00fd fixed logic bug in Caterina that could stop the bootloader from entering self-programming mode 2012-04-11 23:19:05 -04:00
Zach Eveland e2e0260094 Micro I hardly knew ye 2012-04-09 10:12:14 -04:00
Zach Eveland f9a4a4362d Micro and Leonardo bootloaders for distribution are now merged with Blink sketch 2012-04-09 08:08:34 -04:00
Zach Eveland afedb5a92b PID and VID are no longer hard-coded in bootloader. instead they are passed in at compile-time from makefile. also added and renamed built bootloader images for Micro and Leonardo 2012-04-09 08:03:56 -04:00
Zach Eveland 083f7c8891 bugfix for Caterina not starting sketch if "verify upload" turned off in IDE.
Previously, if avrdude skipped the upload step the read while write memory might never be reenabled.  This would prevent the bootloader from ending and the sketch from starting - the bootloader just continued to run even after a successful upload.  Now enable RWW when we receive the AVR109 "Exit bootloader" 'E' command.  Had to disable lock bit changing support in the bootloader to free up flash for the change - will anyone miss it?
2012-03-14 17:48:11 -04:00
Zach Eveland cd0db83a66 changed Caterina timeout after self-programming to 500 ms (from 250 ms)
attempt to fix bug reported by Dave Mellis:
"avrdude: ser_close(): can’t reset attributes for device: Invalid argument"
is thrown after attempting an upload in the IDE (though the upload seems to be successful)
2012-03-14 17:07:14 -04:00
Zach Eveland 75da79ad76 give Leonardo bootloader 250 ms to finish housekeeping before leaving self-programming mode
Earlier approach had bootloader end as soon as it was told to.  On Linux this caused problems with avrdude because the microcontroller never had a chance to send an acknowledgement.
2012-03-08 14:20:12 -05:00
Zach Eveland 53e51de832 removed old version of Leonardo's caterina bootloader, replaced with LUFA-based caterina 2012-03-08 13:47:42 -05:00
Zach Eveland 351817af47 reduced Caterina timeout to 8 seconds from 16 2012-03-01 08:51:47 -05:00
Zach Eveland 7948125208 Leonardo now checks whether bootloader should be run after a WDT event.
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-14 12:17:30 -05:00
Zach Eveland b28e6c2f9c Leonardo bootloader jumps straight to sketch for a power-on reset.
Disconnect programmer after burning bootloader to get the full effect.  ICSP and JTAG programmers do a hardware reset after any reset condition, confusing the firmware a little.
2012-02-14 09:59:48 -05:00
Zach Eveland ac3aca0acf changed Leonardo bootloader and sketch PID values again (now 0x0701 for bootloader, 0x0801 for sketch) 2012-02-13 00:10:16 -05:00
Zach Eveland 35bbf80ba9 adjusting descriptors - trying to prevent sketch and bootloader from grabbing different COM numbers on Windows 2012-02-08 01:16:56 -05:00
Zach Eveland 3191583476 changed Caterina descriptors - Arduino LLC VID, new PID, manufacturer string, and serial number 2012-02-07 23:52:55 -05:00
Zach Eveland 12e2af9cd7 fixed bug in Caterina which caused some programming instructions to fail
Timer 1 interrupts were trashing self-programming timing.  Now disable Timer 1 compare match before doing Flash tasks and reenable afterward.
2012-02-07 23:46:31 -05:00
Zach Eveland e720ffb81d increased Leonardo bootloader timeout to 16 seconds 2012-02-06 15:23:41 -05:00
Zach Eveland 4544fb1a1f proper bootloader timeout and LED control in Leonardo bootloader 2012-02-03 23:15:04 -05:00
Zach Eveland 45d3b10295 Caterina now cleanly hands off operation to the sketch
had to remove TIMER1 operation from bootloader - was interfering with normal sketch operation
2012-01-24 18:04:10 -05:00
Zach Eveland 014466a788 move interrupt vector table to application section before jumping to it after upload finished. 2012-01-21 16:51:55 -05:00
Zach Eveland 0d8f865d9b Leonardo bootloader checks reason for reset and jumps immediately to sketch if reset was caused by WDT 2012-01-21 16:39:06 -05:00
Zach Eveland 98a50871fb stripped all LUFA LED control. from LUFA-based Caterina 2012-01-19 21:31:51 -05:00
Zach Eveland e650b85ca5 changed fuses to select 4k bootloader for LUFA-based Caterina 2012-01-19 21:18:07 -05:00
Zach Eveland d8cc8cdf4a added Board/LEDs.h to LUFA-based Caterina 2012-01-19 21:17:12 -05:00
Zach Eveland 1133482716 superficial changes to stock LUFA CDC bootloader - renamed project, removed unnecessary files 2012-01-19 20:31:35 -05:00
Zach Eveland 58090a259c initial checkin of LUFA 111009 CDC bootloader 2012-01-19 20:04:55 -05:00
Zach Eveland 73b46de27b made Leonardo and Micro bootloader PIDs same as sketch PIDs 2012-01-10 21:23:01 -05:00
Zach Eveland 385679caf2 restored composite and non-composite device descriptors (removed in 4b05c3fc7529477fb7031d42103c15b50a6b58be)
Windows wants to see both types of device descriptors.
2012-01-10 20:52:57 -05:00
Zach Eveland 29e4d73a55 reenabled HID to force Leonardo bootloader to enumerate as a composite device 2012-01-10 17:04:32 -05:00
Zach Eveland 0ed2d3c953 renamed DiskLoader to Caterina (after Leonardo's mom) 2012-01-10 16:29:47 -05:00
Zach Eveland 63a86b67ca changed USB PID for Leonardo and Micro bootloaders
sketch and bootloader will use different PIDs to distinguish one from the other.
2012-01-10 16:09:56 -05:00
Zach Eveland 0ea882bc24 fixed warning when comparing pgm_read_word(0) to -1 (thanks, Limor Fried and Phillip Torrone) 2012-01-10 16:00:46 -05:00
Zach Eveland 94443a2a77 got rid of u8, u16, u32 typedefs in Diskloader
done to bring types in line with others in Arduino core
2012-01-10 15:51:44 -05:00
Zach Eveland dbec0f0058 made the bootloader's LED control macro names less offensive
TX_LED_OFF() instead of TXLED0, etc.
2012-01-10 15:38:26 -05:00
Zach Eveland 648dd85e94 added conditional compilation for HID, removed conditional compilation for CDC (is always used). disabled HID by default. also always enumerates as composite now.
the bootloader must always have a CDC interface.  HID is optional and not even complete to reduce size.
2012-01-10 15:31:56 -05:00
Zach Eveland 59ef51d752 fix bug in handling of long descriptors for bootloader USB (thank you, Todd Krein, Limor Fried, and Phillip Torrone)
descriptors longer than 255 bytes were being shortened, causing problems with enumeration under Windows
2012-01-10 14:25:40 -05:00
Zach Eveland 28e9e122af reset the Leonardo board when leaving the bootloader, before starting the sketch
Done so all IO and other registers are properly reinitialized when a new sketch is uploaded or when an existing sketch is started.  Uses a watchdog timeout with a 15 ms period to accomplish the reset.  Bootloader checks the reason for reset and only enumerates as bootloader and enters the programming loop if reset was NOT caused by WDT.
2011-12-31 12:19:08 -05:00
Zach Eveland 80b02232e4 bootloader merged with blink sketch
full set of descriptors in sketch fixes driver installation issue on Win7.
2011-12-26 17:19:48 -05:00
David A. Mellis 266d3aaaf5 Correcting Arduino Mini w/ ATmega328 bootloader file and fuses (untested). 2011-11-25 19:26:01 -06:00
Zach Eveland 36513f8362 Leonardo bootloader now sends iSerial string during enumeration. Seems to satisfy Windows' composite device requirements. 2011-11-16 16:38:22 -05:00
Zach Eveland 4b7771a815 restored original non-interrupt-driven DiskLoader
Interrupt-driven version was a dead-end - too many bugs with that approach.
2011-11-09 14:04:59 -05:00
Zach Eveland 75cc55d917 changed Leonardo PID to 0x0032 for Diskloader testing. updated .inf to match. 2011-10-31 23:44:32 -04:00
Zach Eveland 0a69d10b37 check to see if a sketch has been loaded before jumping out of bootloader 2011-10-31 21:36:29 -04:00
Zach Eveland 3524f2ff0b Revert "Merge branch 'master' of github.com:arduino/Arduino into diskloader_reboot"
This reverts commit df9835efafd13685251749bc210c0b96a18a96a5, reversing
changes made to ec45af8bfa9222a807c075dd1db4b5aa798bba03.

Conflicts:

	hardware/arduino/variants/mega/pins_arduino.h
	libraries/Ethernet/examples/PachubeClientString/PachubeClientString.ino
2011-10-27 11:45:13 -04:00
Zach Eveland 2b13fd3b40 bootloader runs sketch after timeout, added bootloader LED breathing 2011-10-27 11:27:24 -04:00
Zach Eveland 71879e53fe cosmetic changes - remove old comments, unused code 2011-10-27 10:54:21 -04:00
Zach Eveland 5d976f8b1d removed conditional compilation checks for CDC_ENABLED
bootloader must always have CDC enabled
2011-10-27 10:48:26 -04:00
Zach Eveland 0ab2cb1c69 removed old comments and unused USB core code 2011-10-27 10:45:13 -04:00
Zach Eveland da03595c32 brought nuevo_diskloader changes over to diskloader
Moved nuevo_diskloader files into diskloader directory.  Changed back to real PID for Leonardo
2011-10-27 10:23:06 -04:00