Zach Eveland
98b0491fbd
superficial changes to stock LUFA CDC bootloader - renamed project, removed unnecessary files
2012-01-19 20:31:35 -05:00
Zach Eveland
9c0352b22a
initial checkin of LUFA 111009 CDC bootloader
2012-01-19 20:04:55 -05:00
Zach Eveland
0fc76a6b87
made Leonardo and Micro bootloader PIDs same as sketch PIDs
2012-01-10 21:23:01 -05:00
Zach Eveland
2dfb0dce2c
restored composite and non-composite device descriptors (removed in 4b05c3fc75
)
...
Windows wants to see both types of device descriptors.
2012-01-10 20:52:57 -05:00
Zach Eveland
77b40e6bba
reenabled HID to force Leonardo bootloader to enumerate as a composite device
2012-01-10 17:04:32 -05:00
Zach Eveland
932afb8428
renamed DiskLoader to Caterina (after Leonardo's mom)
2012-01-10 16:29:47 -05:00
Zach Eveland
99fea13f84
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
48ed974834
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
e3b89d178d
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
f403b001a2
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
4b05c3fc75
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
015044add5
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
2622ad5580
Merge branch 'master' of github.com:arduino/Arduino into new-extension
2012-01-10 12:02:27 -05:00
David A. Mellis
11281ec77e
Adding links to documentation of boards.txt and programmers.txt files.
2012-01-04 16:01:52 -05:00
David A. Mellis
76c964d32b
Adding INPUT_PULLUP option pinMode(). (Paul Stoffregen).
...
This also changes pinMode(pin, INPUT); to explicitly disable the pull-up resistor, even if it was previously set.
http://code.google.com/p/arduino/issues/detail?id=246
2012-01-02 14:20:28 -05:00
David A. Mellis
5088b09f2d
Fixing findUntil() problem with repeated initial characters. (Jeffery.zksun)
...
http://code.google.com/p/arduino/issues/detail?id=768
2012-01-02 13:49:59 -05:00
David A. Mellis
cce4ef7c69
Fixing warnings (unsigned comparisons to 0). (maniacbug)
2012-01-02 12:57:23 -05:00
David A. Mellis
c441bc1a0d
Fixing static is not at beginning of declaration warnings (maniacbug).
2012-01-02 12:38:23 -05:00
Zach Eveland
f39ec37722
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
8f9ec88f57
Merge branch 'master' of github.com:arduino/Arduino into new-extension
2011-12-31 11:21:44 -05:00
David A. Mellis
f520bb5051
Simplifying microseconds <-> clock cycles conversions. (Rob Tillaart)
...
This should fix problems with overflows in pulseIn(). It may make millis() slightly less precise for clock speeds that aren't multiple of 1 million, but we don't really support those anyway.
http://code.google.com/p/arduino/issues/detail?id=675
2011-12-30 18:05:12 -05:00
David A. Mellis
80a2154279
Fixing ArduinoISP sketch by lowering baud rate to 9600 (from 19200).
...
http://code.google.com/p/arduino/issues/detail?id=661
2011-12-28 18:43:36 -05:00
Zach Eveland
bdf7107507
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
Zach Eveland
20e7f2d354
changed Keyboard write() method to type(). Made write() an alias for type() to allow subclassing by Stream.
2011-12-20 17:09:44 -05:00
Zach Eveland
20564fb1d0
Revert "changed Keyboard write() method to type(). Made write() an alias for type() to allow subclassing by Stream."
...
This reverts commit de1d5fc0cb
.
2011-12-20 17:08:07 -05:00
Zach Eveland
de1d5fc0cb
changed Keyboard write() method to type(). Made write() an alias for type() to allow subclassing by Stream.
2011-12-20 17:00:19 -05:00
Zach Eveland
d874bc9832
fixed attachInterrupt() on Leonardo
...
had to define a separate block for the 32U4 since it looks like a Mega-series board based on a simple register trick. Only two useable HW interrupts though, compared to the Megas' 8, and numbering differs.
2011-12-19 15:40:12 -05:00
Zach Eveland
fd28193336
added asynchronous buffering of received CDC characters
...
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-12-18 17:52:35 -05:00
Zach Eveland
6a44faedbb
fixed digitalWrite on timer 4 pins (D6 and D13)
2011-12-18 14:18:38 -05:00
Zach Eveland
4b358f21d9
fix bootloader size in boards.txt - 2 kB instead of 4 kB
2011-12-18 12:52:30 -05:00
Zach Eveland
699315c359
fixed TIMER4 use on Leonardo
...
ATMEGA32U4 has major differences in TIMER4 registers compared to ATMEGA1280 and 2560. turnOffPWM, analogWrite, and initialize routines had wrong registers, bit names, etc.
2011-12-11 19:56:50 -05:00
David A. Mellis
eb380de972
Updated reference voltage defines for ATmega1284P.
...
http://code.google.com/p/arduino/issues/detail?id=728
2011-12-02 17:18:15 -05:00
David A. Mellis
d7d0e304d5
Support 3rd external interrupt on ATmega1284P (maniacbug)
...
http://code.google.com/p/arduino/issues/detail?id=728
2011-12-02 17:17:27 -05:00
David A. Mellis
0d70c7272e
Fixing delayMicroseconds() timing for 20 MHz clocks. (Erdem U. Altinyurt)
...
http://code.google.com/p/arduino/issues/detail?id=306
2011-12-02 17:04:20 -05:00
David A. Mellis
dca1dc429a
Removing Leonardo (and Mouse/Keyboard examples) for Arduino 1.0 release.
...
These will return, but the code isn't finished yet so I don't want to include it.
2011-11-28 18:47:45 -05:00
David A. Mellis
3df132aea9
Correcting Arduino Mini w/ ATmega328 bootloader file and fuses (untested).
2011-11-25 19:26:01 -06:00
David A. Mellis
ed48d17e20
readBytes() and readBytesUntil() handle zero bytes and return # of bytes read.
...
http://code.google.com/p/arduino/issues/detail?id=586
2011-11-19 16:23:19 -05:00
David A. Mellis
4119b9089b
Adding Arduino Mini w/ ATmega328.
...
http://code.google.com/p/arduino/issues/detail?id=710
2011-11-19 16:22:46 -05:00
Zach Eveland
75eb722759
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
9b58072423
Fixed size of const array mapping digital pin number to bit mask.
2011-11-16 12:15:57 -05:00
Zach Eveland
21ee685489
Updated digital pin and port mapping constants in pins_arduino.h for Leonardo.
...
Changed digital_pin_to_port_PGM[] and digital_pin_to_bit_mask_PGM[] to reflect changes to constants for SPI and analog pins
2011-11-16 11:20:38 -05:00
Zach Eveland
5f574b3634
Swapped Dx assignment for MISO and SS to make numbering more sane (Dave Mellis). Also updated comments on pin numbers.
2011-11-16 11:00:21 -05:00
Zach Eveland
ba5d66c26f
Fixed handling of Ax constants on Leonardo
...
Fixed mistake in assignment and handling of A6-A11 constants. Renumbered constants for all Ax channels.
2011-11-16 10:49:41 -05:00
Zach Eveland
3ee847c8e2
updated pins_arduino.h for Leonardo to reflect final mapping of A6-A11
2011-11-15 09:48:09 -05:00
Zach Eveland
56d06e15ed
Merge branch 'new-extension' of github.com:arduino/Arduino into new-extension
2011-11-15 09:33:11 -05:00
Cristian Maglie
6ceb9a19de
Added latest firmware for usbserial (not combined with DFU)
2011-11-12 12:57:30 +01:00
Cristian Maglie
17adbbcfc5
Added latest firmware for atmega16u2 on R3 boards
2011-11-11 11:38:04 -05:00
Zach Eveland
cd6aa2b1f3
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
f0801e61e6
updated analog pin assignments and declared TWI/I2C pins
...
Fixed analog pin to ADC channel mapping to match new scheme. Changed mapping of analog pins to digital channels so that A6-A11 point back to the correct digital pins. Declared SDA and SCL pins.
(All from Federico Vanzati's comments)
2011-11-08 22:06:15 -05:00
Zach Eveland
42fadb6f6d
added 12th ADC channel for Leonardo. cleaned up and corrected comments for pin functions.
2011-11-02 07:37:39 -04:00
Zach Eveland
c8f495ba7f
changed Leonardo PID to 0x0032 for Diskloader testing. updated .inf to match.
2011-10-31 23:44:32 -04:00
Zach Eveland
76ed870de8
Merge branch 'new-extension' of github.com:arduino/Arduino into diskloader_reboot
2011-10-31 21:42:09 -04:00
Zach Eveland
4a77aea4e5
check to see if a sketch has been loaded before jumping out of bootloader
2011-10-31 21:36:29 -04:00
David A. Mellis
10001866e6
Protecting the version of parseInt() and parseFloat(). (Paul Stoffregen)
...
This should allow us more flexibility in determining how to handle these functions later. For example, in specifying that initial characters shouldn't be skipped.
http://code.google.com/p/arduino/issues/detail?id=698
2011-10-29 17:40:23 -04:00
Zach Eveland
a6381bb564
renamed bootloader file
2011-10-27 11:52:10 -04:00
Zach Eveland
a6a59f1783
Revert "Merge branch 'master' of github.com:arduino/Arduino into diskloader_reboot"
...
This reverts commit df9835efaf
, reversing
changes made to ec45af8bfa
.
Conflicts:
hardware/arduino/variants/mega/pins_arduino.h
libraries/Ethernet/examples/PachubeClientString/PachubeClientString.ino
2011-10-27 11:45:13 -04:00
Zach Eveland
f2bd8a5394
Merge branch 'new-extension' of github.com:arduino/Arduino into diskloader_reboot
...
Conflicts:
hardware/arduino/variants/mega/pins_arduino.h
libraries/Ethernet/examples/PachubeClient/PachubeClient.ino
libraries/Ethernet/examples/PachubeClientString/PachubeClientString.ino
2011-10-27 11:41:02 -04:00
Zach Eveland
03e1515a51
changes in core and boards.txt to support new bootloader
...
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-10-27 11:36:10 -04:00
Zach Eveland
be51da6b0d
bootloader runs sketch after timeout, added bootloader LED breathing
2011-10-27 11:27:24 -04:00
Zach Eveland
b70f79ea2c
cosmetic changes - remove old comments, unused code
2011-10-27 10:54:21 -04:00
Zach Eveland
040a469f79
removed conditional compilation checks for CDC_ENABLED
...
bootloader must always have CDC enabled
2011-10-27 10:48:26 -04:00
Zach Eveland
9dc9e60704
removed old comments and unused USB core code
2011-10-27 10:45:13 -04:00
Zach Eveland
3d848a5b9a
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
Zach Eveland
df9835efaf
Merge branch 'master' of github.com:arduino/Arduino into diskloader_reboot
...
Conflicts:
app/src/processing/app/Editor.java
app/src/processing/app/Sketch.java
build/shared/examples/4.Communication/SerialCallResponse/SerialCallResponse.pde
build/shared/lib/theme/theme.txt
hardware/arduino/cores/arduino/HardwareSerial.h
hardware/arduino/cores/arduino/Print.cpp
hardware/arduino/cores/arduino/WString.h
hardware/arduino/variants/mega/pins_arduino.h
libraries/Ethernet/examples/PachubeClient/PachubeClient.ino
libraries/Ethernet/examples/PachubeClientString/PachubeClientString.ino
libraries/Firmata/examples/EchoString/EchoString.ino
libraries/SD/File.cpp
libraries/SoftwareSerial/SoftwareSerial.cpp
libraries/SoftwareSerial/SoftwareSerial.h
libraries/SoftwareSerial/examples/SoftwareSerialExample/SoftwareSerialExample.ino
libraries/SoftwareSerial/keywords.txt
2011-10-27 09:32:27 -04:00
Zach Eveland
ec45af8bfa
working bootloader. had to move interrupts back to application section. NOTE: need to have sketch CDC jump to appropriate place for bootloader - 4k from end instead of 2k
2011-10-26 16:51:42 -04:00
Zach Eveland
32614bf841
working (?!?!?!) bootloader. doesn't yet restart chip after upload completes.
2011-10-26 12:53:57 -04:00
Zach Eveland
e806be8c2a
uploading now completes using RC2 on Win7
2011-10-26 11:28:07 -04:00
Zach Eveland
9e72b06a75
closer still - now up to 4680
2011-10-25 19:04:31 -04:00
Zach Eveland
d50b95eac1
progress on bootloader bug - have implemented blocking USB_Recv. avrdude makes it to flash programming address 0400 or so before hanging
2011-10-25 18:56:10 -04:00
David A. Mellis
d9f9676d23
Bug fix in replace().
...
http://code.google.com/p/arduino/issues/detail?id=694
2011-10-25 11:15:14 -04:00
Zach Eveland
cca9401589
fixed logic bug in waiting for synch. stripped out all Serial stuff
2011-10-24 22:12:45 -04:00
Zach Eveland
55178d9b8d
removed old comments
2011-10-24 21:36:06 -04:00
David A. Mellis
f729e0321b
Moving ARDUINO_MAIN from main.cpp to wiring_digital.c and hiding PA, PB, etc.
...
http://code.google.com/p/arduino/issues/detail?id=677
http://code.google.com/p/arduino/issues/detail?id=691
2011-10-24 16:50:15 -04:00
David A. Mellis
18838fb44a
Renaming LED to LED_BUILTIN.
...
http://code.google.com/p/arduino/issues/detail?id=651
2011-10-24 16:45:44 -04:00
David A. Mellis
8336c88211
Correcting analogReference() constants for ATtiny24/44/84 and 25/45/85.
...
DEFAULT, EXTERNAL, and INTERNAL have different values on those processors.
2011-10-24 15:44:01 -04:00
Zach Eveland
3e775af6d8
bootloader responds properly now. nearly there - still have an issue with it falling out of sync after completing most operations
2011-10-23 16:49:36 -04:00
Zach Eveland
fa26e288a5
more attempts to get parameter sending to work
2011-10-21 20:30:55 -04:00
Zach Eveland
44b90b9f6a
some progress on responding to parameter requests
2011-10-21 20:06:17 -04:00
Zach Eveland
79dbae2eb7
avrdude communication starting to work - responds to sync, fails when trying to respond to STK_GET_PARAMETER
2011-10-21 19:36:53 -04:00
Zach Eveland
e12b578462
continuing to port programming code. temporarily changed PID to test on Windows (it works)
2011-10-21 18:21:04 -04:00
Zach Eveland
6ca5bf3acb
starting to port bootloader programming code - testing as I go
2011-10-21 18:03:34 -04:00
Zach Eveland
2d8ced65d1
added and modified Program() routine
2011-10-21 17:51:04 -04:00
Zach Eveland
0dc5f19ea9
cleaning up code and comments in main - getting rid of leftover stuff from experiments
2011-10-21 17:25:59 -04:00
Zach Eveland
f59451b04d
Enumerates! used inline ASM for operation which moves interrupts to boot section
2011-10-21 17:16:48 -04:00
Zach Eveland
2f46c2a6e6
can now enable interrupts but EORSTE or SOFE in USB_::attach() still cause bootloader to hang
2011-10-21 16:51:25 -04:00
Zach Eveland
bc669c14f8
added more USB source adapted from sketch core. still not enumerating.
2011-10-21 16:33:52 -04:00
David A. Mellis
ec09ead6ac
Lowering timer 1 prescale factor (to 8 from 64) for F_CPU less than 8 MHz.
...
Otherwise, you can see flicker on an LED.
2011-10-21 11:54:11 -04:00
Zach Eveland
b86ce43044
initial commit of new Diskloader-based bootloader experiment
2011-10-21 08:02:17 -04:00
David A. Mellis
e7ff928762
Putting the Uno lock bits back.
2011-10-10 12:28:09 -04:00
WestfW
8efc3920f9
Explicitly set the SHELL variable when OS=windows, so that we'll use
...
the same shell regardless of whether other shells are installed
(different shells have different behavior WRT directory component
separators, so this matters.
http://code.google.com/p/arduino/issues/detail?id=667 )
(cherry picked from commit fc8cacb9a3
)
2011-10-10 12:11:18 -04:00
WestfW
de4d73511d
Oops. Add atmega8.lst/hex and atmega168.lst/hex to controlled files.
...
(cherry picked from commit c56a1293d7
)
2011-10-10 12:11:18 -04:00
WestfW
b2c43c2e55
Allow the READ PARAMETER command to return our version number.
...
(significant size impact: 14 bytes!)
Initialized "address" to eliminate compiler warning (4 bytes!)
Add "atmega168" as a more accurate target name than "diecimila"
(keep diecimila as well for backward compatibility)
Reduce the .hex and .lst targets that are stored in source control
to the three basics: atmega8, atmega168, atmega328. The other
targets remain in the makefile and makeall, but will need to be
built from source if wanted. Which should be less of a problem
now that the source is buildable without installing crosspack.
(cherry picked from commit 7b1ee0f1b0
)
2011-10-10 12:11:17 -04:00
WestfW
61e4d16675
Modify Uno "lock" bits in boards.txt to make bootloader readable by
...
sketches. Part of http://code.google.com/p/arduino/issues/detail?id=554
(cherry picked from commit 39a496616f
)
2011-10-10 12:11:17 -04:00
WestfW
a57d315e4b
http://code.google.com/p/arduino/issues/detail?id=368
...
Optiboot does not support ArduinoasISP programmer.
When avrdude runs and talks to an arduino running ArduinoISP,
it needs the optiboot (entered due to auto-reset) to abort and
start the ArduinoISP "application" when it sees communications
at the wrong serial speed. Unfortunately, optiboot treats all
unrecognized command characters as "no-ops" and responds/loops
for more commands, leading to a nice loop that never gets to
the sketch. This patch causes characters received with Framing
errors (the most likely error for speed mis-matches) to NOT
reset the watchdog timer (normally done in getch()), which will
cause the application to start if it continues for "a while."
(tested. Works! Running ArduinoISP at speeds as high as 57600
still causes the bootloader to start the sketch (although it fails
later on for other reasons.))
(cherry picked from commit e81c1123b6
)
2011-10-10 12:11:16 -04:00
WestfW
1bbded4f34
(make sure .hex and .lst are updated as well.)
...
(cherry picked from commit ece29c3805
)
2011-10-10 12:11:16 -04:00
WestfW
091dc9a7f9
Fix errors in LDSECTIONS refactoring
...
(found during atmega8 testing.)
(cherry picked from commit 422398e08c
)
2011-10-10 12:11:16 -04:00
WestfW
93f7515ecf
Update version to reflect previous edit. Sigh.
...
(cherry picked from commit e28b716f88
)
2011-10-10 12:11:15 -04:00
WestfW
07a88dc998
Shrink code by using registers for variables "length" and "address"
...
http://code.google.com/p/optiboot/issues/detail?id=33
Fix high-value watchdog timeouts on ATmega8
http://code.google.com/p/optiboot/issues/detail?id=38
Change "start app on bad commands" code to start the app via the
watchdog timer, so that the app is always started with the chip
in fully reset state.
http://code.google.com/p/optiboot/issues/detail?id=37
(cherry picked from commit 6f7687b0f9
)
2011-10-10 12:11:15 -04:00
WestfW
10019bb0df
Add a version number to the optiboot source and binary.
...
http://code.google.com/p/arduino/issues/detail?id=554
end of flash memory where they can be read (at least in theory) by
device programmers, hex-file examination, or application programs.
This is done by putting the version number in a separate section
(".version"), and using linker/objcopy magic to locate that section as
appropriate for the target chip. (See
http://lists.gnu.org/archive/html/avr-gcc-list/2011-02/msg00016.html
for some discussion on the details.)
Start the version at 4.1 (the last "packaged" version of optiboot was
called version 3, so the "top of source" would be 4.0, and adding the
version number makes 4.1)
Refactor LDSECTION in the Makefile to LDSECTIONS so that multiple
section start addresses can be defined.
Change the _isp makefile definitions to make the bootloader section
readable (but not writable) by the application section. (This would
need to be done elsewhere as well to handle all bootloader programming
techniques. Notably Arduino's boards.txt
Note that this change does not change the "code" portion of optiboot
at all. The only diffs in the .hex files are the added version word
at the end of flash memory.
(cherry picked from commit 00706284de
)
2011-10-10 12:11:15 -04:00
WestfW
287aae6b42
Update shell script makeall
...
(cherry picked from commit d4632cb095
)
2011-10-10 12:11:14 -04:00