aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-09-16Merge pull request #76 from dmadison/pluggable-unusedAlexander Entinger
Fix unused variable warning for non-pluggable USB in SendDescriptor
2019-09-16Merge pull request #103 from zakkie/fix/remove_ifAlexander Entinger
Removes unnecessary if branch (because length is checked in while statement below the if-clause).
2019-09-04remove unnecessary if branchAkihiro YAMAZAKI
checking `length` in below while statement
2019-08-16Update twi.cCombiesGit
Added __attribute__ ((fallthrough));
2019-08-02rename yunmini.bootloader.file on boards.txtGeonil Goh
2019-07-29Add null pointer test to String destructorJeff Rowberg
2019-07-21Cast pins to signed integers to avoid Wtype-limits compile warningJeff Rowberg
2019-06-08Do not claim AT-protocol in CDC interface descriptorMatthijs Kooijman
The CDC code presents itself as a virtual serial port. However, it also sets the "bFunctionProtocol" value to 1, which means it supports AT-commands, which is not actually the case. This might cause problems with some software, such as ModemManager. Originally, ModemManager would be very liberal with probing serial devices, using a blacklist to prevent probing non-modems such as Arduinos. Since version 1.7.990, it has supported a "strict" mode where it tries to be more restrained in what devices it probes. For CDC ACM devices, this means it will only probe devices that claim to support AT-commands. However, it also stopped applying the blacklist (intending to eventually remove the blacklist), meaning it would again probe Arduinos. This new strict policy is not the upstream default, but is enabled in Debian (since Buster) and Ubuntu (since bionic 18.04.2). The proper way to fix this, is to not claim AT comand support in the USB device descriptor, which is what this commit does. The Arduino will still show up as a virtual serial port, just not be probed by ModemManager in strict mode. For the commit that introduced the strict mode in ModemManager, see https://cgit.freedesktop.org/ModemManager/ModemManager/commit/src?id=ee570d44dc117dc69f23e83313dd877f76c5e3e0
2019-05-16Merge pull request #51 from florian-schweiger/patch-1Martino Facchin
Remove historic Arduino 0012 workaround in SoftwareSerial
2019-04-26Fixed shiftOut in MSBFIRST mode HIGH/LOWluca
2019-04-26Minor optimization in shiftOut functionluca
2019-02-17Define descriptor return var in pluggable blockDavid Madison
Avoids unused variable warning if USB is enabled but pluggable USB is not
2019-01-21Add parameters names to common prototypesPaul R. Nash
Putting the parameter names in these commonly used prototypes makes syntax help like VS Code's Intellisense work 99% more useful. Without them, it doesn't give you the names of the parameters and you have to remember the semantics yourself. :(
2019-01-07Merge pull request #59 from paulo-raca/wiring_private_i2cMartino Facchin
Remove commented out code for I2C interrupts on WInterrupts.c
2019-01-04Remove commented out code for I2C interrupts on WInterrupts.cPaulo Costa
These are currently implemented by the Wire library, on twi.c
2018-12-19Merge pull request #54 from algernon/pull/wakeup-suspend-hooksMartino Facchin
Add USBDevice.isSuspended()
2018-12-19Merge pull request #56 from per1234/arduino-as-isp-atmega32u4-programmerMartino Facchin
Add ATmega32U4-compatible Arduino as ISP programmer
2018-12-19Add ATmega32U4-compatible Arduino as ISP programmerper1234
Use of the stk500v1 protocol for Arduino as ISP does not work with native USB boards on Windows. The arduino protocol does. However, the arduino protocol makes it more likely that boards with an external USB interface chip will require the auto-reset circuitry to be disabled to allow them to be used as Arduino as ISP. That adds extra complexity to a process already difficult for the average Arduino user. For this reason, a new programmer using the arduino protocol is added specifically for using native USB boards as Arduino as ISP and the previous Arduino as ISP configuration is retained for use with all other boards.
2018-12-19Revert "Updated Arduino as ISP setting"per1234
This reverts commit b084848f2eaf9ccb3ac9a64ac5492d91df4706bf.
2018-12-11Add USBDevice.isSuspended()Gergely Nagy
Based on code originally by Rob van der Veer <rob.c.veer@gmail.com>, this adds USBDevice.isSuspended(), so user sketches can run custom code in their `loop` methods after checking if the device is suspended or not. Signed-off-by: Gergely Nagy <algernon@keyboard.io>
2018-11-26Removed historic Arduino-0012 workaroundFlorian Schweiger
Removed #undefs in SoftwareSerial.h that were marked as Arduino 0012 workaround and that broke several macros, including abs. See https://github.com/arduino/ArduinoCore-avr/issues/30
2018-10-26Add noexcept specifier to placement new operatorPharap
The standard mandates that placement new should be have a noexcept specifier.
2018-09-10Release 1.6.23Cristian Maglie
2018-09-03Fix compiler warnings about ignored 'const' in EEPROM.hBrian Park
2018-09-03Treat narrowing conversion as warning, not errorPaulStoffregen
2018-08-18Prevent possible compiler warningPharap
Casting to void is a well known trick for prevening 'unused parameter' warnings.
2018-08-18Add placement new operatorPharap
2018-08-11Add `bitToggle` macro to complement `bitSet` etcShriramana Sharma
2018-05-09Starting 1.6.22Martino Facchin
2018-04-12Update DigitalPotControl.inoSimonePDA
Fixing SPI communication with a delay as pointe out in #6395
2018-03-02Publish avr core 1.6.21 (maintenance release)Martino Facchin
2018-02-19Add menu for Nano with Optiboot bootloaderMartino Facchin
Since we are now factory flashing obtiboot, 115200 is the new default upload speed. Adding a new entry to CPU menu is more explicit than adding an "upload speed" menu, and the bootloader path can be updated too. Fixes https://github.com/arduino/Arduino/issues/4492
2017-12-18Fix MCUs without MPCM0 registerMartino Facchin
2017-11-13Fix flush hanging issueJohn Holman
Make write to UDR and clearing of TXC bit in flush() atomic to avoid race condition. Fixes #3745 (second different issue introduced later but discussed in the same issue)
2017-11-13Improve how TXCn bit is cleared in USCRnA registerJohn Holman
Preserve values of configuration bits MPCMn and U2Xn. Avoid setting other read-only bits for datasheet conformance. See #3745
2017-11-13Prevent buffer retransmission when transmit buffer is emptyJohn Holman
Moving the head buffer pointer and setting interrupt flag is now atomic in write(). Previously an intervening ISR could empty the buffer before the second ISR is triggered causing retransmission. Fixes: #3745 (original issue only)
2017-11-13Create macro to guard critical sections for large transmit buffersJohn Holman
New macro TX_BUFFER_ATOMIC makes the following code block atomic only if the transmit buffer is larger than 256 bytes. SREG is restored on completion. The macro is then used to simplify code for availableForWrite()
2017-11-13UnConfigured I2C Slave ISR Causing Rebootchuck todd
In a MultiMaster I2C environment, The Default value of 0xFE in the TWAR cause the Arduino to respond as an I2C Slave device at address 0x7f. If the Wire.h library was not configured as a I2C Slave, `Wire.begin(slaveID);` the Callbacks for `twi_onSlaveTransmit()` and `twi_onSlaveReceive()` are never initialized. But, they are called during servicing the TWI ISR. This causes a reboot of the Arduino by jumping to an uninitialized function address (0). So, this fix initializes them to the Default Wire.h handler which will respond correctly even during Master Mode operations. A MASTER MODE only Arduino will respond to all Slave Calls that match TWAR, Unless the TWEA bit is disabled outside of Master Transactions. Chuck. It also initialized the TWAR to the General Call ID (0x0) and Disables General Call responses. Chuck.
2017-11-13Always read key to check for new LUFA bootloaderScott Allen
Instead of checking for the NEW_LUFA_SIGNATURE once in program memory and then setting a flag which is used for further checks, a function is used that always checks program memory directly. If a flag is used, there's a slight chance that its location in RAM could fall on MAGIC_KEY_POS. In this case, an aborted USB auto-reset sequence may fail.
2017-11-13Don't use line coding to trigger USB auto-resetScott Allen
An auto-reset invoked using USB CDC is triggered by the port closing (when set to 1200 baud). Closing of the port is indicated by DTR going inactive. There is no need to have auto-reset invoked by a CDC_SET_LINE_CODING command. Only the CDC_SET_CONTROL_LINE_STATE command, which indicates a change in the state of DTR, should be used.
2017-11-13Save/restore the watchdog during USB auto-resetScott Allen
The state of the watchdog timer is saved during a USB auto-reset and then restored if the reset is aborted, in case the sketch is using the watchdog.
2017-11-13Fix save/restore of magic key location during resetScott Allen
In the USB CDC code to invoke an auto-reset, the magic key location could be restored before it had actually been saved. The sketch would then have a corrupted value at this location. This fix prevents the value from being restored if it hasn't previously been saved.
2017-11-13Updated Arduino as ISP settingNico
2017-11-13Create timer0 overflow interrupt service routine for all ATtinies not just ↵Torben Nielsen
24, 44 and 84
2017-11-13No fixed value for USB power current.Andreas Watterott
2017-11-13[WIRE] Remove extra line from digital_potentiometer exampleQuswar Mahmood Abid
2017-11-13Add extras folder for packagein and CIMartino Facchin
2017-08-18Update bundled avr core to 1.6.20Martino Facchin
2017-07-25Fixed Serial Port Argument That May Include SpacesVarun Mehta
Other paths in avrdude.upload.pattern are wrapped in double quotes, and this -P{serial.port} causes issues with some platforms. This allows serial port devices which include spaces and other characters. Without this fix a /dev/tty* or /dev/cu* device that includes a space in its name gets truncated when passed to avrdude. Error messages returned from avrdude are cryptic, and workarounds (symlinks) are prone to failure. Fixes #3693
2017-07-18Use correct part names in Tools > Processor menusper1234
It's ATmega328P, not ATmega328. Partially solves https://github.com/arduino/Arduino/issues/6369