Commit Graph

769 Commits

Author SHA1 Message Date
Martino Facchin 003d22f2a5 Send an USB remote wakeup if data need to be written
On Linux, setting autosuspend_delay_ms to N and control to auto allows the host pc to suspend the peripheral. Some Linux distro (Ubuntu, Mint) apply this behaviour by default.
If the sketch's prints where less frequent than N milliseconds the sketch prints would never arrive.
This patch allows sending a remote wakeup event to unsuspend the peripheral and allow the serial prints to be received.
2016-07-14 18:43:43 +02:00
Martino Facchin 28e10e95da [AVR][USB] fix IRQ flags clearing 2016-07-14 18:22:41 +02:00
Martino Facchin 40d7ab0dc5 configurable USB_VERSION string via define
to allow WebUSB development, provide a way to change the USB_VERSION reported
using an additional core.

The additional (webUSB) core will survive IDE and AVR core updates
2016-07-13 14:28:17 +02:00
Sandeep Mistry f49c7ae3de Make String::move of an invalidated String result in an invalidated String 2016-07-12 17:29:13 -04:00
Arturo Guadalupi bbd3ae274b Merge pull request #4864 from sandeepmistry/avr-usb-tx
Subtract one from USB_EP_SIZE in USB_SendSpace
2016-07-11 18:02:38 +02:00
Arturo Guadalupi 843ec70eae Merge pull request #4814 from sandeepmistry/avr-pin_
Add PIN_* defines to AVR variants
2016-07-07 17:51:31 +02:00
Ivan-Perez f68a722bde WString.h: allow modifying the string while iterating 2016-06-28 20:58:38 +02:00
Ivan-Perez 07fa22fd52 WString.h: Add const qualifier to `begin` and `end` functions 2016-06-28 20:58:38 +02:00
kellerkindt ab4e114624 Fix buffer being overwritten by multiple twi_transmit calls
Fixes that more complex methods (like Stream::print(float)) do not work properly.

Without this fix, Wire.print(1.01f); results in '1' because Print::printFloat(double, uint8_t) performs multiple print() and therefore twi_transmit calls. Also Wire.println("Heyho"); results only in a newline character.
2016-06-05 03:01:57 +02:00
Martino Facchin a73c18c1f4 Move Caterina_BL related defines into generic USBCore.h
In an excess of confidence, these defines were added to Leonardo's variant.h
3rd party boards sometimes avoid inheriting this variant but they still define USBCON, thus breaking the build
2016-05-18 14:23:40 +02:00
Brent Wilkins e8f9002e75 Fixing issue #4940 (typo) 2016-05-10 08:33:12 -06:00
Martino Facchin 271a1e4fbc update AVR core to 1.6.11 2016-05-10 10:18:15 +02:00
Martino Facchin 8807a0d1cd add support for remote upload on Yun shield 2016-05-10 10:13:51 +02:00
Cristian Maglie bca77163fb Merge branch 'upload-without-verify' of https://github.com/gh-megabit/Arduino 2016-04-28 15:09:27 +02:00
Cristian Maglie 9492d5ee05 Removed extra whitespaces in WString.h 2016-04-20 20:30:24 +02:00
Christopher Andrews 500a3fdbe7 Removed C++11 dependency for `begin()` and `end()`
As I was not able to base the return types of `begin()` & `end()` off the c_str() function, I have changed the source so the features can be used by C++98 code, while still allowing ranged loops in C++11.
2016-04-20 16:07:52 +02:00
Christopher Andrews 8e385bfbaf Updated String library to use C++11 iterators.
This will allow using the String library in a ranged for loop:

```C++
String s = "Hi, this is a test";

for( char c : s )
  Serial.print( c );
```
2016-04-20 16:07:52 +02:00
gh-megabit 4b64ef74ba Implement Do-Not-Verify-After-Upload preference for Serial Uploads 2016-04-15 21:15:34 +01:00
Sandeep Mistry 817d700a75 Subtract one from USB_EP_SIZE in USB_SendSpace
This avoids dealing with ZLP’s in USB_Send, because the max packet size
will be EP size - 1.
2016-04-14 10:06:47 -04:00
Martino Facchin 4c901d3f9f [AVR] Discover newer bootloader at runtime
Replaces #4280, only checks for the bootloader once

Tested with Hoodloader2, should work with every LUFA-derived bootloader released after 2014 (.apitable_signatures section must be placed at end of the flash)

BootloaderAPITable.S :

.global BootloaderAPI_Signatures
BootloaderAPI_Signatures:

    .long BOOT_START_ADDR ; Start address of the bootloader
    .word 0xDF00 ; Signature for the CDC class bootloader
    .word 0xDCFB ; Signature for a LUFA class bootloader

makefile:

BOOT_API_LD_FLAGS    += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures,  BootloaderAPI_Signatures,  8)
2016-04-06 17:41:06 +02:00
Bradley Luke Totaro 1e461ce5fb Update SoftwareSerial.cpp 2016-04-05 15:10:46 -04:00
Sandeep Mistry faf591339a Add PIN_* defines to AVR variants 2016-04-04 15:41:38 -04:00
Sandeep Mistry 509721213b Add comment for archive_file_path 2016-04-04 13:27:47 -04:00
Sandeep Mistry 6241459627 Merge pull request #4737 from per1234/recipe_ar_pattern-backwards-compatibility
AVR recipe.ar.pattern backwards compatibility
2016-04-04 13:26:05 -04:00
Sandeep Mistry ed9240d5e7 Merge pull request #4716 from asukiaaa/master
Corrected comments of rx and tx in a SoftwareSerial example.
2016-04-04 10:00:47 -04:00
Arturo Guadalupi a7ca976623 Merge pull request #4669 from sandeepmistry/software-serial-peek-cast
Add missing cast to SoftwareSerial::peek() when returning buffered value
2016-03-31 15:03:55 +02:00
per1234 efbc3640cc AVR recipe.ar.pattern backwards compatibility
Define archive_file_path in Arduino AVR Boards platform.txt to provide
backwards compatibility with IDE versions previous to 1.6.6. The
archive_file_path value set in platform.txt is overridden in IDE 1.6.6+.
This produces avr-ar commands identical to the previous behavior.
2016-03-22 03:31:10 -07:00
asukiaaa c2499b8377 Corrected comments of rx and tx for SoftwareSerial example. 2016-03-19 16:21:07 +09:00
mattb5906 5bfd17f231 Add getTimeout accessor method. 2016-03-18 22:26:37 +00:00
per1234 bd39621f46 Clean up comments in platform.txt
- Remove comment in Arduino AVR Boards platform.txt about -w flag. This
is no longer relevant since the compiler warning level is now set by the
user.
- Fix typos
2016-03-15 15:42:16 -07:00
Sandeep Mistry 98699dfa7c Make SoftwareSerial receive buffer a uint8_t array 2016-03-10 10:23:50 -05:00
Sandeep Mistry dfc3a64744 Add missing cast to SoftwareSerial::peek() when returning buffered value 2016-03-10 10:23:50 -05:00
Paolo Paolucci 26e25a4d58 Fix Wire register
Move TWBR register from Wire.cpp to twi.c file.
2016-03-09 15:47:55 -05:00
Benoît Blanchon 9509587472 Speed and size improvement in Print::printFloat()
Avoid using the overload of print() for signed integer since a negative value is not allowed here.
This results in a smaller (unless print(int) is used somewhere else in the program) and faster code because the overload for unsigned integer is simpler.
2016-03-08 22:13:10 +01:00
Sandeep Mistry 10ef7ef7e1 Move AVR Wire library utility folder under source 2016-03-04 17:11:56 -05:00
Cristian Maglie 576ac3ca30 AVR core version to 1.6.10 2016-03-04 14:56:09 +01:00
Sandeep Mistry 244b20b7cc Merge pull request #4646 from arduino/SimonePDA-patch-3
Update library.properties
2016-03-03 15:19:26 -05:00
Sandeep Mistry 391a015de0 Merge pull request #4645 from arduino/SimonePDA-patch-2
Update library.properties
2016-03-03 15:19:06 -05:00
SimonePDA 1eabcfbefa Update library.properties 2016-03-03 19:57:04 +01:00
SimonePDA 65eac8e892 Update library.properties 2016-03-03 19:34:02 +01:00
SimonePDA bb8ee5ac95 Update library.properties 2016-03-03 19:26:22 +01:00
SimonePDA 8bd908c446 Update library.properties 2016-03-03 19:13:25 +01:00
tico-tico 84f16283bb huh? i guess it's just 'modulo'. let's save even more 2016-03-03 10:53:25 -05:00
Alice Pintus d3065cbaeb add src folder when missing 2016-03-02 14:45:57 +01:00
Alice Pintus b9e83657b4 moved .h file in src folder 2016-03-02 10:49:39 +01:00
Alice Pintus 8d3c4dbfec update sentences 2016-03-01 16:09:50 +01:00
Paulo Costa 0ab9245f41 Boilerplate compression on ISR declaration
The current code is very verbose and a painful to maintain (Change ISR implementation in 20 different places? No Thanks!).

(This was originally part of #4519, but we all agreeded it deserved it's own PR)
2016-02-03 22:43:57 -02:00
Brent Wilkins 7f13f63599 Fixed typo 2016-02-01 12:52:29 -07:00
Brent Wilkins 91df079b09 Update Wire.cpp
Removed implicit conversions from unsigned, to signed, back to unsigned.
2016-01-18 13:12:11 -07:00
vbextreme b1231c39e9 fix delay/yield on avr, if function called by yield takes more a millisecond the delay fails 2015-12-27 14:50:56 +01:00
Cristian Maglie d893aa0b65 Merge NicoHood's fix for USB_SendControl with len>64
Fix #4325
2015-12-23 15:35:08 +01:00
NicoHood 6367168925 Added >64 byte USB_RecvControl() support 2015-12-23 15:31:55 +01:00
NicoHood ced86a9c48 Added Long USB RecvControl call for >64 bytes 2015-12-19 01:53:24 +01:00
NicoHood bab9b6c4f7 Added HID_REPORT_TYPE definitions 2015-12-10 10:30:04 +01:00
Cristian Maglie 463046d691 Merge branch 'remove-wire-keywords' of https://github.com/per1234/Arduino 2015-11-30 10:20:10 +01:00
per1234 d21e054836 Remove unused keywords from Wire libraries keywords.txt
These functions have been replaced by read() and write() since Arduino
1.0.
2015-11-28 17:56:21 -08:00
per1234 ffbcfa781f eeprom_clear example: Set pinMode of LED pin 2015-11-24 16:23:16 -08:00
Cristian Maglie 4c2af08bb2 Merge branch 'led_fix' of https://github.com/NicoHood/Arduino 2015-11-24 16:44:51 +01:00
Cristian Maglie 1da7979984 Merge branch 'leonardo-usbserial' of https://github.com/cmaglie/Arduino 2015-11-24 16:34:27 +01:00
Sandeep Mistry 1b63cfa6a4 Cleanup some Stream compiler warnings from #3337 2015-11-23 16:45:29 -05:00
Chris--A 9f8feea8b7 Make protected Stream::parseInt/Float overloads public.
Stream::parseInt & Stream::parseFloat previously had protected
overloads which allowed skipping a custom character. This commit
brings this feature to the public interface.

To keep the public API simpler, the single paramter overload remains
protected. However its functionality is available in the public
interface using the two parameter overload.
2015-11-23 15:46:24 -05:00
Chris--A 7857216e69 This adds control of Stream::parseInt/float lookahead.
Its default is SKIP_ALL which reflects previous versions.
However SKIP_NONE, and SKIP_WHITESPACE can refine this behaviour.

A parameter used in the protected overloads of parseInt/Float has been
changed from `skipChar` to `ignore`.
2015-11-23 15:46:24 -05:00
Chris--A 12d0487258 This is a bug fix which prevents parseFloat from proceeding past
multiple decimals '.' in the stream. Only one can be accepted for
valid decimal numbers.
2015-11-23 15:46:24 -05:00
Chris--A 24a994019f This commit improves the parsing capability by allowing decimals only
prefixed by an '.' character. Previously the preceeding zero must be
present: '0.'
2015-11-23 15:46:23 -05:00
Cristian Maglie e46375c089 Added SerialUSB alias for Serial on 32u4 boards 2015-11-20 12:08:35 +01:00
Cristian Maglie ca5aff00e8 Merge branch 'fix-flush' of https://github.com/cmaglie/Arduino 2015-11-18 10:06:01 +01:00
Federico Fissore 802c745690 Modified AVR preproc recipe to match the one used by arduino-builder 2015-11-18 09:34:33 +01:00
agdl cdd925b58d Added defines for gemma
As pointed out in #4063
2015-11-17 15:04:11 +01:00
Cristian Maglie 934475b75b SoftwareSerial: fix flush() behaviour
Fix #4029
2015-11-11 16:28:48 +01:00
Sandeep Mistry 7380750a69 Remove tx_pin_write from SoftwareSerial.h
It’s not implemented anywhere and unused.
2015-11-05 15:39:11 -05:00
Sandeep Mistry 6318f1bf2a Remove unused param warning 2015-11-05 14:28:40 -05:00
Sandeep Mistry 12ebdfe8a0 Add inline to recv and setRxIntMsk to remove warning (#4078) 2015-11-05 14:28:29 -05:00
Cristian Maglie 9b070aa90f Updated avr core version to 1.6.9 2015-11-03 11:34:03 +01:00
Cristian Maglie 21168e1b5d [PUSB] Fixed return value for HID_::SendReport 2015-10-30 13:00:33 +01:00
Nico 741d5dff9e [PHID] send data if report ID was sent successful
If the first sending was not successful it is better to abort. Then we get a return value of -1 (instead of -2 if the 2nd call will also fail) and we do not need to block even longer, with another timeout.
2015-10-30 12:58:14 +01:00
NicoHood cf4d7e1ffb Added return value to HID SendReport 2015-10-30 12:58:14 +01:00
Cristian Maglie 9552cc6ce2 Merge branch 'arduinoGemmaInterrupts' of https://github.com/agdl/Arduino 2015-10-23 11:00:25 +02:00
Arturo Guadalupi d52b5a87ba Gemma digitalPinToInterrupt support
Added support for Arduino Gemma as required in #3929
2015-10-23 10:44:02 +02:00
Nico 6fe9294368 Increased 32u4 maximum pin number 2015-10-23 10:41:56 +02:00
Arturo Guadalupi e3351f6fb1 Ethernet digitalPinToInterrupt support
Added support for Arduino Ethernet as required in #3929
2015-10-23 10:16:43 +02:00
Sandeep Mistry c71f5e9f88 check TWWC (Write Collision Flag) bit after setting TWDR
as suggested by @earlyprogrammer in #2173, to ensure TWDR value is set
if there is a write collision
2015-10-22 16:33:00 +02:00
Sandeep Mistry 48ff3a10ad release TWI bus right after stop or repeated start is condition
this resolves timing issues seen in #1477
2015-10-22 16:29:43 +02:00
Cristian Maglie c102995e92 Merge remote-tracking branch 'arduino/master' into HEAD 2015-10-21 15:53:59 +02:00
Martino Facchin b945df9220 [USB] use plugged modules name to create iSerial field 2015-10-21 15:23:56 +02:00
NicoHood 9fe2023c28 [PHID] Fixes protocol on reenumeration 2015-10-12 18:05:34 +02:00
Cristian Maglie a151349a01 [HID] renamed HIDDescriptorListNode to HIDSubDescriptor 2015-10-12 12:24:07 +02:00
Cristian Maglie 11440d3fd7 [PUSB] Renamed PUSBListNode to PluggableUSBModule 2015-10-12 12:14:07 +02:00
Cristian Maglie 80b79002fd [HID] made HIDDescriptorListNode.length constant 2015-10-12 11:59:08 +02:00
NicoHood e69021550e [PHID] Added missing GET_IDLE Request 2015-10-11 14:39:36 +02:00
NicoHood 5e813b314b [PHID] Added some hints for further optional implementations 2015-10-10 13:11:31 +02:00
NicoHood 14ddc8b0bf Added official HID definitions
Since the HID library adds some general HID definitions and structs, it is very useful to also include this in a custom library.
If you dupe the information you have problems of redeclaration.
Having those defintions inside the official HID library is essential for a good working additional  HID API.
2015-10-10 12:49:45 +02:00
Nico 2cc3bb605b [PUSB] Minor Style change 2015-10-09 22:10:45 +02:00
Nico 79f5715c21 Remove unnecessary include
Its included by HID.h anyways.
2015-10-08 17:24:09 +02:00
Cristian Maglie fb4f5066bf [HID] Improved checks in getDescriptor() method 2015-10-08 16:38:57 +02:00
NicoHood 05477fc85d [PUSB] Removed unnecessary endpoint and interface function 2015-10-07 20:39:50 +02:00
NicoHood c8867462a8 [PHID] Added SetReport function
This commit just shows other that this option is available and not implemented.
You may use this to determine the Led Lights state of a keyboard or transmit data via RAWHID from the PC.

Quick usage guide:
int length = ((setup.wValueH << 8) | setup.wLength);
USB_RecvControl((uint8_t* data, USB_EP_SIZE); // Needs to be splitted into USB_EP_SIZE packets, not shown here. See HID Project.
2015-10-07 20:37:05 +02:00
NicoHood 0f9f63f2a5 [PUSB] Made getDescriptor() and setup() more flexible
Alternatively we can only pass the wIndex to getDescriptor but I suggest to just pass the pointer aka reference of the whole setup.
In guess (havent tested this) that this results in more or less the code size but its a) idential with the other functions and b) we late have more flexibility here.
The Code got a quick SerialKeyboard.ino test
2015-10-07 19:02:40 +02:00
NicoHood 6151972b74 [PUSB] Changed Interface + Endpoint to unsigned variables
The iterations in the for loop also use unsigned and the setup struct etc as well.
There was no change in HID required since we just init the inherited variables via constructor and the type is never mentioned.
2015-10-07 18:45:10 +02:00
Cristian Maglie 5b1b0330b2 [PUSB] renamed some parameters 2015-10-07 13:21:21 +02:00
NicoHood 8bc21f7e36 Small return value error check correction 2015-10-07 12:39:18 +02:00