Commit Graph

274 Commits

Author SHA1 Message Date
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 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 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 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 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 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
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 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
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 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 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 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 2622ad5580 Merge branch 'master' of github.com:arduino/Arduino into new-extension 2012-01-10 12:02:27 -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 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
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 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 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
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 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 76ed870de8 Merge branch 'new-extension' of github.com:arduino/Arduino into diskloader_reboot 2011-10-31 21:42:09 -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 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 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
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
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 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
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
David A. Mellis ca671fdc05 Fixing more warnings (Paul Stoffregen). 2011-10-10 11:28:44 -04:00
David A. Mellis 85c109f255 Fixing warnings in Stream (Paul Stoffregen)
http://code.google.com/p/arduino/issues/detail?id=208
2011-10-02 09:44:21 -04:00
David A. Mellis 6554ae653c Using alternate timer 0 overflow interrupt signal name for ATtiny24/44/84. 2011-09-30 11:24:44 -04:00
Zach Eveland d532d85059 added Mouse.isPressed() method 2011-09-16 16:59:14 -04:00
Zach Eveland 00c3631467 made some Keyboard methods private 2011-09-16 16:43:07 -04:00
Zach Eveland 30fc9919e1 added support for TIMER4D used for PWM on Leonardo and Micro D6 2011-09-16 16:36:42 -04:00
Zach Eveland 667da698d7 added automatic one-shot TX and RX LED control for sketch USB 2011-09-16 14:32:25 -04:00
Zach Eveland 6b7d24edb0 added to sketch iProduct and iManufacturer strings identifying board as either an "Arduino Leonardo" or "Arduino Micro" manufactured by "Arduino LLC" 2011-09-16 12:29:47 -04:00
Zach Eveland ab8fc5aab7 Merge branch 'new-extension' of https://github.com/arduino/Arduino into new-extension 2011-09-16 10:27:11 -04:00
Zach Eveland d4e9db463b fixed analog pin mapping for 32u4 2011-09-13 23:52:26 -04:00
Zach Eveland 18d76057fe fixed Mouse button assignments 2011-09-13 21:37:46 -04:00
Zach Eveland e3fa1ed039 made Mouse.buttons() private. removed MOUSE_ALL macro 2011-09-12 08:14:13 -04:00
David A. Mellis f3d8628c5e Don't consume trailing char in parseInt() and parseFloat (Paul Stoffregen).
http://code.google.com/p/arduino/issues/detail?id=624
2011-09-09 16:24:47 -04:00
Zach Eveland 94879d3ac6 Merge branch 'new-extension' of https://github.com/arduino/Arduino into new-extension
Conflicts:
	build/linux/dist/tools/avrdude.conf
2011-09-08 20:26:47 -04:00
Zach Eveland db7013f95c fixed bug where sketches over 28k caused subsequent auto-reset-and-upload attempts to fail. fixed bug in reboot routine, changed fuses to select 1024-word bootloader size, disabled hardware boot enable. 2011-09-08 19:31:18 -04:00
Zach Eveland e870f070db added compile-time definition of sketch PID. PID is pulled from variants/leonardo or the new variants/micro as appropriate. 2011-09-08 15:52:05 -04:00
Zach Eveland c295917fad Revert "support compile-time passing of PID to Leonardo/Micro sketches. PID comes from boards.txt - different for Micro and Leonardo"
This reverts commit 3e0d195492.
2011-09-08 15:39:17 -04:00
Zach Eveland 3e0d195492 support compile-time passing of PID to Leonardo/Micro sketches. PID comes from boards.txt - different for Micro and Leonardo 2011-09-08 11:23:55 -04:00
David A. Mellis 7d8d20894c Making Print::write(char *) non-virtual.
http://code.google.com/p/arduino/issues/detail?id=607
2011-09-07 18:41:05 -04:00
David A. Mellis ab36bd5dbb Changing to a simpler mental model for serialEvent (Paul Stoffregen).
http://code.google.com/p/arduino/issues/detail?id=626
2011-09-07 17:47:17 -04:00
Zach Eveland fa901e2ba4 changed auto-reset trigger condition to fix auto-reset-and-upload for Windows. now reboots when a port, opened at 1200 bps, is closed. 2011-09-06 20:58:00 -04:00
Zach Eveland 5e058a8aa3 changed baudrate for auto-reset-and-upload back to 1200 bps. specified arduino protocol for Leonardo avrdude upload. 2011-09-05 13:08:05 -04:00
Zach Eveland e24e9499cf Merge branch 'new-extension' of https://github.com/arduino/Arduino into new-extension
Conflicts:
	build/macosx/dist/tools-universal.zip
	build/windows/avr_tools.zip
	hardware/arduino/cores/arduino/HardwareSerial.cpp
2011-09-05 12:53:45 -04:00