Commit Graph

480 Commits

Author SHA1 Message Date
David A. Mellis 7e12aebbdb Updating USB core to work at 8 MHz (different PLLCSR value). 2012-10-18 15:03:23 -04:00
David A. Mellis 23c2a9618c Adding ATmega644P check to ATmega1284P check. 2012-10-09 13:53:09 -04:00
David A. Mellis 9dc3810f41 Merge branch 'master' of ../wifishield 2012-09-13 10:42:25 -04:00
David A. Mellis a536108ee2 Moving into firmwares directory. 2012-09-13 10:41:16 -04:00
David A. Mellis 8ea885bdf0 Moving ATmegaXXU2 firmwares into subdirectory. 2012-09-13 10:39:59 -04:00
David A. Mellis 532a46a74b Moving ATmega32U4 Timer 2 #undef's to Leonardo pins_arduino.h file. 2012-09-13 09:19:52 -04:00
David A. Mellis 47714c3d2c Merge pull request #102 from sgk/leonardoTone
Fix for tone() on Leonardo.
2012-09-13 06:07:10 -07:00
Peter Van Hoyweghen 6ab2a9f95e Avoid serial buffer overrun on leonardo 2012-09-13 08:46:45 -04:00
David A. Mellis a374e8b766 Changing setting of the UMSELn bits (for UART mode) and serial config values.
Before, the UMSELn1 bit was being to set to 1, putting the UART into a reserved mode. Now, we only set the high (0x80) bit to 1 for the ATmega8, which is needed to access UCSRnC (whose i/o address is shared with UBRRH).

Also, no longer bitwise-or the new config with the existing register value, because we're actually configuring all the settings in the register. (We're not using UCPOL, but it's supposed to be 0 in asynchronous mode.)
2012-08-30 08:47:35 -04:00
David A. Mellis ae9b90603b Renaming serial config constants to, e.g., SERIAL_8N1. 2012-08-30 08:21:12 -04:00
David A. Mellis a72d05b2de Merge pull request #109 from Alarus/master
Serial.begin() parameter to set data bits, parity, stop bits.
2012-08-30 05:08:28 -07:00
David A. Mellis cd43ca3f7f Fixing Serial.flush() breakage on Leonardo (WestFW).
http://code.google.com/p/arduino/issues/detail?id=1020
2012-08-30 07:44:25 -04:00
David A. Mellis 24c8bf8081 Fixing ATmega8 breakage from flush() change. (WestFW)
http://code.google.com/p/arduino/issues/detail?id=1019
2012-08-29 20:52:30 -04:00
David A. Mellis 222d51e383 Adding overloads so Serial.write(0) works.
http://code.google.com/p/arduino/issues/detail?id=1006
2012-08-29 16:32:05 -04:00
David A. Mellis f9f1d3af3c Serial.flush() waits for last character to be transmitted (michele.mazzucchi)
http://code.google.com/p/arduino/issues/detail?id=871
2012-08-28 08:02:54 -04:00
Adam Dunlap e223f8eb9c Fix issue 866
Fix issue 866 by adding a const qualifier to what the F macro casts to.
2012-08-16 20:59:33 -07:00
Alarus 76850b1a0a Update hardware/arduino/cores/arduino/HardwareSerial.cpp
New Serial.begin(baud, config);
2012-08-14 19:55:13 +06:00
Alarus 39bdce82cf Update hardware/arduino/cores/arduino/HardwareSerial.h
New Serial.begin(baud, config);
2012-08-14 19:52:00 +06:00
Alarus 295337d9ba Update hardware/arduino/cores/arduino/HardwareSerial.cpp
New Serial.begin(baud, config);
2012-08-14 19:50:36 +06:00
Alarus 655ca80b29 Update hardware/arduino/cores/arduino/HardwareSerial.cpp
Adding advanced begin (); with the ability to specify the length of bits, parity, stop bits.
2012-08-12 22:07:42 +06:00
Alarus 5a420c034e Update hardware/arduino/cores/arduino/HardwareSerial.cpp
Adding advanced begin (); with the ability to specify the length of bits, parity, stop bits.
2012-08-12 21:35:48 +06:00
Alarus c8490c9f7b Update hardware/arduino/cores/arduino/HardwareSerial.cpp
Adding advanced begin (); with the ability to specify the length of bits, parity, stop bits.
2012-08-12 20:57:57 +06:00
Alarus 0b44fb7f73 Update hardware/arduino/cores/arduino/HardwareSerial.h
Adding advanced begin (); with the ability to specify the length of bits, parity, stop bits.
2012-08-12 20:23:00 +06:00
Alarus 5aa4dafe21 Update hardware/arduino/cores/arduino/HardwareSerial.h
Adding advanced begin (); with the ability to specify the length of bits, parity, stop bits.
2012-08-12 20:18:50 +06:00
Shigeru KANEMOTO 44556206a8 Fix for tone() on Leonardo. 2012-08-08 18:27:40 +09:00
David A. Mellis d83543cff1 Use "wiring" (not "stk500v2") avrdude protocol for uploads to Mega 2560.
It performs the auto-reset in avrdude.  Otherwise, some uploads seem to fail (possibly because it takes too long to launch avrdude from the IDE, so there's too much of a delay between the auto-reset done by the IDE and the upload).

http://code.google.com/p/arduino/issues/detail?id=806
2012-07-15 09:12:08 -04:00
David A. Mellis 6036846ce3 Print "ovf" if float to be printed doesn't fit in a long.
http://code.google.com/p/arduino/issues/detail?id=967
2012-06-28 23:20:56 -04:00
David A. Mellis 71a615c65d Print "inf" for infinite floating point numbers (using isinf()).
http://code.google.com/p/arduino/issues/detail?id=961
2012-06-23 10:37:35 -05:00
David A. Mellis f833374312 Adding write(str) and write(buf, size) for USB CDC.
So that they work on the Leonardo.

http://code.google.com/p/arduino/issues/detail?id=958
2012-06-14 15:54:13 +01:00
David A. Mellis 308d907694 Printing NaN values as "nan" in printFloat().
http://code.google.com/p/arduino/issues/detail?id=946
2012-06-04 23:30:41 -04:00
David A. Mellis b787982eec Check for NULL pointer in Print.write().
Otherwise, trying to print(NULL) or write(NULL) could print a random
character.

http://code.google.com/p/arduino/issues/detail?id=941
2012-06-03 07:48:32 -04:00
Kristian Lauszus dab4d8dee6 Added support for interrupt on INT2 and INT3 on the Leonardo 2012-06-02 20:08:46 +02:00
David A. Mellis 2cbde219c1 Merge remote-tracking branch 'upstream/master' 2012-05-21 09:31:54 -07:00
David A. Mellis 81edb9064a Updating SoftwareSerial pin mapping (pin change interrupts) for Leonardo. 2012-05-20 15:56:49 -07:00
Zach Eveland 5c77b0ee3b added pin change interrupt defines for Leonardo. fix for broken software serial on Leonardo 2012-05-19 22:05:46 -04:00
David A. Mellis 39eed5acc2 Adding readString() and readStringUntil() to Stream (Adrian McEwen).
This isn't necessarily a particularly efficient implementation (it
allocates memory one character at a time and so may lead to
fragmentation) but it seems to work.

http://code.google.com/p/arduino/issues/detail?id=454
2012-05-16 15:39:34 -04:00
Zach Eveland b29ae7a249 Mouse.isPressed() now checks only for left button by default
if no argument is given now checks left button by default to be consistent with press() and release() (thanks, David Mellis)
2012-05-15 15:48:51 -04:00
Zach Eveland 9520a531de renamed Leonardo USB_ class to USBDevice_ to be unambiguous. renamed "USB" object to "USBDevice" to prevent conflict with USB Host library (thanks Massimo) 2012-05-01 11:18:15 -04:00
Zach Eveland 2e575db249 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 4fb17c47cd bugfix for configuring PWM on D6 and D13 too early. (thanks to Limor Fried)
was starting PWM on these pins too soon - in init() instead of when analogWrite() was called.  as a result doing output on port registers directly failed.
2012-04-19 15:52:16 -04:00
Zach Eveland 9904a6f497 bugfix for boards with a timer 4 but no channel D
compilation failed for Mega because the COM4D1 and OCR4D registers are defined for 32U4 but not for Mega
2012-04-19 15:46:32 -04:00
Zach Eveland bb9a4f89cc merged Caterina with Blink 2012-04-11 23:24:04 -04:00
Zach Eveland 7e235dbff8 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 d3a8e450ee Micro I hardly knew ye 2012-04-09 10:12:14 -04:00
Zach Eveland 3f6342e9bb Micro and Leonardo bootloaders for distribution are now merged with Blink sketch 2012-04-09 08:08:34 -04:00
Zach Eveland caeaa4571c sketch USB VID and PID values are passed in from boards.txt at compile time now. changed sketch PIDs to final values. also uncommented Micro section in boards.txt 2012-04-09 08:06:35 -04:00
Zach Eveland d02e4481d3 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 437025c6ee Revert "Revert "added a short delay and comment to boolean operator in CDC""
This reverts commit 200eefb4e2.
2012-04-06 21:23:17 -04:00
Federico Vanzati 200eefb4e2 Revert "added a short delay and comment to boolean operator in CDC"
This reverts commit ade4893f58.
2012-04-06 17:36:09 +02:00
Zach Eveland ade4893f58 added a short delay and comment to boolean operator in CDC
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-03 10:52:38 -04:00
Zach Eveland b685aef6ec added Boolean operators to HardwareSerial and CDC to test whether the port 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-04-01 12:54:35 -04:00
Zach Eveland 97d9ce93ca fixed logic error in Keyboard.release() - now removes every occurrence of a key if it's present more than once 2012-03-28 19:46:32 -04:00
Zach Eveland b86ec2723a removed horrible multi-key Keyboard.press() and Keyboard.release() methods
Saves 924 bytes of Flash
2012-03-28 18:46:10 -04:00
Zach Eveland 3d15f3781a eliminated Keyboard.type() - unnecessary duplication of Keyboard.write() (David Mellis). Also edit KeyboardReprogram example which was the only example using type() 2012-03-28 18:35:26 -04:00
Zach Eveland 259a2f18b3 added methods to Keyboard to handle multiple simultaneous key presses or releases (up to six each) 2012-03-26 17:28:02 -04:00
Zach Eveland 63fdb8ef7a Keyboard.type() now just presses and releases the key indicated - doesn't releaseAll() 2012-03-26 17:00:16 -04:00
Zach Eveland 2e140e4950 added stub methods for begin() and end() to Mouse and Keyboard 2012-03-26 16:02:40 -04:00
Zach Eveland a0f1f1a930 Merge branch 'master' of github.com:arduino/Arduino into LUFA_bootloader 2012-03-24 09:30:17 -04:00
David A. Mellis 13e0b9335c Putting ArduinoISP back to 19200 baud.
From 9600.  And lowering the delay in the heartbeat from 40 to 20,
which seems to fix things again.
2012-03-15 19:02:08 -04:00
Zach Eveland 067cca7baa reduced delay before starting the Leonardo bootloader
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-14 18:17:22 -04:00
Zach Eveland a05a0d531b 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 2a19c327bb 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 30421143f9 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 33116711b0 removed old version of Leonardo's caterina bootloader, replaced with LUFA-based caterina 2012-03-08 13:47:42 -05:00
Cristian Maglie 177746aa7f Fix for some strange behaviours during board reset 2012-03-07 16:21:04 +01:00
Zach Eveland 18f08bc7d4 Added Keyboard support for all modifier and all common non-printing keys. 2012-03-03 23:37:39 -05:00
Zach Eveland aec3752e52 Removed support for key mapping in Keyboard.
Was no longer being used and would be damn near impossible to support with the new scheme for handling modifiers and non-printing keyboard characters.
2012-03-03 23:06:44 -05:00
Zach Eveland db82ab90eb added Keyboard methods press(), release(), and releaseAll()
Changes mean that a single, persistent key report must be used so keys can be added or removed.  Also reimplemented type() using the new methods.
2012-03-03 22:54:45 -05:00
Zach Eveland 8a35793794 Merge branch 'master' of github.com:arduino/Arduino into LUFA_bootloader
Conflicts:
	.gitignore
2012-03-03 13:28:39 -05:00
Zach Eveland 7387db0673 fixed minor compilation warnings for Leonardo 2012-03-03 13:26:57 -05:00
David A. Mellis f4f62f9a12 Small changes for the ATmega1284.
http://code.google.com/p/arduino/issues/detail?id=736
2012-03-02 18:58:53 -05:00
Zach Eveland 09aa8bd678 reduced Caterina timeout to 8 seconds from 16 2012-03-01 08:51:47 -05:00
Zach Eveland 93a47f884d changed auto-reset logic for Leonardo. only do WDT manipulation if the port is opened at 1200 bps. (Dave Mellis) 2012-03-01 08:51:16 -05:00
Zach Eveland f505a3da4c Merge branch 'master' of github.com:arduino/Arduino into LUFA_bootloader 2012-03-01 08:32:21 -05:00
David A. Mellis 7ab140700b Switching Mini w/ ATmega328 upload protocol from stk500 to arduino. 2012-02-29 17:25:46 -05:00
Cristian Maglie 5eef4ca79c Autoreset 1200 bps fix. 2012-02-27 17:41:38 +01:00
Zach Eveland ae23ed0570 shortened the watchdog period for resetting Leonardo from 2 s to 250 ms. Reset into bootloader is much snappier. 2012-02-22 22:33:44 -05:00
Zach Eveland 65ddc6c43b Merge branch 'master' of github.com:arduino/Arduino into LUFA_bootloader 2012-02-22 15:19:32 -05:00
Zach Eveland 4c3aa52258 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 94c09c2618 Changed Leonardo fuses to select longer clock startup time.
Done with the aim of discriminating more reliably between reset sources.
2012-02-14 10:00:55 -05:00
Zach Eveland 52b0c7214b 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 bab3c5eade Leonardo auto-reset-and-upload changes for Windows (explanation below)
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-13 00:56:06 -05:00
Zach Eveland 25a4fe8607 changed Leonardo bootloader and sketch PID values again (now 0x0701 for bootloader, 0x0801 for sketch) 2012-02-13 00:10:16 -05:00
David A. Mellis 0acebeeff4 prog_char -> char PROGMEM in Print.cpp
http://code.google.com/p/arduino/issues/detail?id=795
2012-02-12 19:52:03 -05:00
Zach Eveland c39793001c 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 4ee57f12e9 changed Caterina descriptors - Arduino LLC VID, new PID, manufacturer string, and serial number 2012-02-07 23:52:55 -05:00
Zach Eveland 5d53eed01a 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 f2d5ea87ad increased Leonardo bootloader timeout to 16 seconds 2012-02-06 15:23:41 -05:00
Zach Eveland 5483adf8fe proper bootloader timeout and LED control in Leonardo bootloader 2012-02-03 23:15:04 -05:00
Zach Eveland 1e0700b536 fixed starting Leonardo bootloader from sketch
AvrdudeUploader class opens and closes Leonardo port at the magic baudrate before starting avrdude; reduced reset timeout from 250 ms to 15 ms
2012-02-03 21:42:46 -05:00
Zach Eveland 086ed6382c modify boards.txt with new settings for Caterina_LUFA 2012-02-03 20:24:24 -05:00
Zach Eveland 5eb7ad154b Merge branch 'master' of github.com:arduino/Arduino into LUFA_bootloader 2012-02-03 19:54:33 -05:00
David A. Mellis 915e4889e4 Making head and tail unsigned to avoid division in serial ISR.
http://code.google.com/p/arduino/issues/detail?id=776
2012-02-03 17:24:29 -05:00
Zach Eveland 1303b6fbba 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 6498b66059 move interrupt vector table to application section before jumping to it after upload finished. 2012-01-21 16:51:55 -05:00
Zach Eveland 73f6f2edd5 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 371b72c681 stripped all LUFA LED control. from LUFA-based Caterina 2012-01-19 21:31:51 -05:00
Zach Eveland 83c9f21667 changed fuses to select 4k bootloader for LUFA-based Caterina 2012-01-19 21:18:07 -05:00
Zach Eveland db397d5b35 added Board/LEDs.h to LUFA-based Caterina 2012-01-19 21:17:12 -05:00
Zach Eveland 98b0491fbd superficial changes to stock LUFA CDC bootloader - renamed project, removed unnecessary files 2012-01-19 20:31:35 -05:00