From 6ad770e86f2758995ed8730505c9ae165ed8ef59 Mon Sep 17 00:00:00 2001 From: Andreas Watterott Date: Mon, 13 Nov 2017 12:49:06 +0100 Subject: [PATCH 01/29] No fixed value for USB power current. --- cores/arduino/USBCore.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cores/arduino/USBCore.h b/cores/arduino/USBCore.h index 18560b6b..5e0c7b34 100644 --- a/cores/arduino/USBCore.h +++ b/cores/arduino/USBCore.h @@ -97,6 +97,9 @@ // bMaxPower in Configuration Descriptor #define USB_CONFIG_POWER_MA(mA) ((mA)/2) +#ifndef USB_CONFIG_POWER + #define USB_CONFIG_POWER (500) +#endif // bEndpointAddress in Endpoint Descriptor #define USB_ENDPOINT_DIRECTION_MASK 0x80 @@ -267,7 +270,7 @@ typedef struct { 18, 1, USB_VERSION, _class,_subClass,_proto,_packetSize0,_vid,_pid,_version,_im,_ip,_is,_configs } #define D_CONFIG(_totalLength,_interfaces) \ - { 9, 2, _totalLength,_interfaces, 1, 0, USB_CONFIG_BUS_POWERED | USB_CONFIG_REMOTE_WAKEUP, USB_CONFIG_POWER_MA(500) } + { 9, 2, _totalLength,_interfaces, 1, 0, USB_CONFIG_BUS_POWERED | USB_CONFIG_REMOTE_WAKEUP, USB_CONFIG_POWER_MA(USB_CONFIG_POWER) } #define D_INTERFACE(_n,_numEndpoints,_class,_subClass,_protocol) \ { 9, 4, _n, 0, _numEndpoints, _class,_subClass, _protocol, 0 } From 0c5aa78ff40d208a1341b3dae84166e837901070 Mon Sep 17 00:00:00 2001 From: Shriramana Sharma Date: Sat, 11 Aug 2018 11:11:01 +0530 Subject: [PATCH 02/29] Add `bitToggle` macro to complement `bitSet` etc --- cores/arduino/Arduino.h | 1 + 1 file changed, 1 insertion(+) diff --git a/cores/arduino/Arduino.h b/cores/arduino/Arduino.h index 09c14489..808ff195 100644 --- a/cores/arduino/Arduino.h +++ b/cores/arduino/Arduino.h @@ -111,6 +111,7 @@ void yield(void); #define bitRead(value, bit) (((value) >> (bit)) & 0x01) #define bitSet(value, bit) ((value) |= (1UL << (bit))) #define bitClear(value, bit) ((value) &= ~(1UL << (bit))) +#define bitToggle(value, bit) ((value) ^= (1UL << (bit))) #define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) // avr-libc defines _NOP() since 1.6.2 From c6ce36d56cd5e874e60c3ba8a36cc77c307df718 Mon Sep 17 00:00:00 2001 From: Pharap <2933055+Pharap@users.noreply.github.com> Date: Sat, 18 Aug 2018 09:09:15 +0100 Subject: [PATCH 03/29] Add placement new operator --- cores/arduino/new.cpp | 4 ++++ cores/arduino/new.h | 1 + 2 files changed, 5 insertions(+) diff --git a/cores/arduino/new.cpp b/cores/arduino/new.cpp index cf6f89c1..bfb219d0 100644 --- a/cores/arduino/new.cpp +++ b/cores/arduino/new.cpp @@ -26,6 +26,10 @@ void *operator new[](size_t size) { return malloc(size); } +void * operator new(size_t size, void * ptr) { + return ptr; +} + void operator delete(void * ptr) { free(ptr); } diff --git a/cores/arduino/new.h b/cores/arduino/new.h index 6e1b68f0..76909112 100644 --- a/cores/arduino/new.h +++ b/cores/arduino/new.h @@ -23,6 +23,7 @@ void * operator new(size_t size); void * operator new[](size_t size); +void * operator new(size_t size, void * ptr); void operator delete(void * ptr); void operator delete[](void * ptr); From b410611ffcdcb822d69c828f01dd6216c1ef3348 Mon Sep 17 00:00:00 2001 From: Pharap <2933055+Pharap@users.noreply.github.com> Date: Sat, 18 Aug 2018 09:27:06 +0100 Subject: [PATCH 04/29] Prevent possible compiler warning Casting to void is a well known trick for prevening 'unused parameter' warnings. --- cores/arduino/new.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/cores/arduino/new.cpp b/cores/arduino/new.cpp index bfb219d0..86a1fa55 100644 --- a/cores/arduino/new.cpp +++ b/cores/arduino/new.cpp @@ -27,6 +27,7 @@ void *operator new[](size_t size) { } void * operator new(size_t size, void * ptr) { + (void)size; return ptr; } From 6a717473175cc7d900fe67bc071f7e7c72f01e29 Mon Sep 17 00:00:00 2001 From: Pharap <2933055+Pharap@users.noreply.github.com> Date: Fri, 26 Oct 2018 19:34:34 +0100 Subject: [PATCH 05/29] Add noexcept specifier to placement new operator The standard mandates that placement new should be have a noexcept specifier. --- cores/arduino/new.cpp | 2 +- cores/arduino/new.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cores/arduino/new.cpp b/cores/arduino/new.cpp index 86a1fa55..fc30cf88 100644 --- a/cores/arduino/new.cpp +++ b/cores/arduino/new.cpp @@ -26,7 +26,7 @@ void *operator new[](size_t size) { return malloc(size); } -void * operator new(size_t size, void * ptr) { +void * operator new(size_t size, void * ptr) noexcept { (void)size; return ptr; } diff --git a/cores/arduino/new.h b/cores/arduino/new.h index 76909112..763f5cca 100644 --- a/cores/arduino/new.h +++ b/cores/arduino/new.h @@ -23,7 +23,7 @@ void * operator new(size_t size); void * operator new[](size_t size); -void * operator new(size_t size, void * ptr); +void * operator new(size_t size, void * ptr) noexcept; void operator delete(void * ptr); void operator delete[](void * ptr); From d518be6797790a6055deeb1a00f4a7c20773b970 Mon Sep 17 00:00:00 2001 From: Florian Schweiger Date: Mon, 26 Nov 2018 09:12:24 +0000 Subject: [PATCH 06/29] Removed historic Arduino-0012 workaround 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 --- libraries/SoftwareSerial/src/SoftwareSerial.h | 9 --------- 1 file changed, 9 deletions(-) diff --git a/libraries/SoftwareSerial/src/SoftwareSerial.h b/libraries/SoftwareSerial/src/SoftwareSerial.h index b1a37c4a..d8b88cea 100644 --- a/libraries/SoftwareSerial/src/SoftwareSerial.h +++ b/libraries/SoftwareSerial/src/SoftwareSerial.h @@ -111,13 +111,4 @@ class SoftwareSerial : public Stream static inline void handle_interrupt() __attribute__((__always_inline__)); }; -// Arduino 0012 workaround -#undef int -#undef char -#undef long -#undef byte -#undef float -#undef abs -#undef round - #endif From c87bc7ba9a94cbeca3b652ea068c4bdb38c76b6c Mon Sep 17 00:00:00 2001 From: Gergely Nagy Date: Tue, 11 Dec 2018 00:01:57 +0100 Subject: [PATCH 07/29] Add USBDevice.isSuspended() Based on code originally by Rob van der Veer , 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 --- cores/arduino/USBAPI.h | 2 ++ cores/arduino/USBCore.cpp | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/cores/arduino/USBAPI.h b/cores/arduino/USBAPI.h index 479ced9c..701a14f7 100644 --- a/cores/arduino/USBAPI.h +++ b/cores/arduino/USBAPI.h @@ -65,6 +65,8 @@ class USBDevice_ void detach(); // Serial port goes down too... void poll(); bool wakeupHost(); // returns false, when wakeup cannot be processed + + bool isSuspended(); }; extern USBDevice_ USBDevice; diff --git a/cores/arduino/USBCore.cpp b/cores/arduino/USBCore.cpp index 81f689d2..c0a4c7cc 100644 --- a/cores/arduino/USBCore.cpp +++ b/cores/arduino/USBCore.cpp @@ -855,4 +855,10 @@ bool USBDevice_::wakeupHost() return false; } +bool USBDevice_::isSuspended() +{ + return (_usbSuspendState & (1 << SUSPI)); +} + + #endif /* if defined(USBCON) */ From a901b081aed0c60e97777c9c92350d354b721094 Mon Sep 17 00:00:00 2001 From: per1234 Date: Wed, 19 Dec 2018 01:12:26 -0800 Subject: [PATCH 08/29] Revert "Updated Arduino as ISP setting" This reverts commit b084848f2eaf9ccb3ac9a64ac5492d91df4706bf. --- programmers.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/programmers.txt b/programmers.txt index d0d2cc17..c100e84b 100644 --- a/programmers.txt +++ b/programmers.txt @@ -43,9 +43,9 @@ parallel.program.extra_params=-F arduinoasisp.name=Arduino as ISP arduinoasisp.communication=serial -arduinoasisp.protocol=arduino +arduinoasisp.protocol=stk500v1 arduinoasisp.speed=19200 -arduinoasisp.program.protocol=arduino +arduinoasisp.program.protocol=stk500v1 arduinoasisp.program.speed=19200 arduinoasisp.program.tool=avrdude arduinoasisp.program.extra_params=-P{serial.port} -b{program.speed} From 98c8a138c18592e7385feb800e30165a403802d9 Mon Sep 17 00:00:00 2001 From: per1234 Date: Wed, 19 Dec 2018 01:45:56 -0800 Subject: [PATCH 09/29] Add ATmega32U4-compatible Arduino as ISP programmer 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. --- programmers.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/programmers.txt b/programmers.txt index c100e84b..69ddf692 100644 --- a/programmers.txt +++ b/programmers.txt @@ -50,6 +50,15 @@ arduinoasisp.program.speed=19200 arduinoasisp.program.tool=avrdude arduinoasisp.program.extra_params=-P{serial.port} -b{program.speed} +arduinoasispatmega32u4.name=Arduino as ISP (ATmega32U4) +arduinoasispatmega32u4.communication=serial +arduinoasispatmega32u4.protocol=arduino +arduinoasispatmega32u4.speed=19200 +arduinoasispatmega32u4.program.protocol=arduino +arduinoasispatmega32u4.program.speed=19200 +arduinoasispatmega32u4.program.tool=avrdude +arduinoasispatmega32u4.program.extra_params=-P{serial.port} -b{program.speed} + usbGemma.name=Arduino Gemma usbGemma.protocol=arduinogemma usbGemma.program.tool=avrdude From c27aef0ed6638a635d92fcb97412dbd3e65e8c31 Mon Sep 17 00:00:00 2001 From: Paulo Costa Date: Fri, 4 Jan 2019 15:41:14 -0200 Subject: [PATCH 10/29] Remove commented out code for I2C interrupts on WInterrupts.c These are currently implemented by the Wire library, on twi.c --- cores/arduino/WInterrupts.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/cores/arduino/WInterrupts.c b/cores/arduino/WInterrupts.c index cef1106e..ac72dda4 100644 --- a/cores/arduino/WInterrupts.c +++ b/cores/arduino/WInterrupts.c @@ -65,7 +65,6 @@ static volatile voidFuncPtr intFunc[EXTERNAL_NUM_INTERRUPTS] = { nothing, #endif }; -// volatile static voidFuncPtr twiIntFunc; void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode) { if(interruptNum < EXTERNAL_NUM_INTERRUPTS) { @@ -274,11 +273,6 @@ void detachInterrupt(uint8_t interruptNum) { } } -/* -void attachInterruptTwi(void (*userFunc)(void) ) { - twiIntFunc = userFunc; -} -*/ #define IMPLEMENT_ISR(vect, interrupt) \ ISR(vect) { \ @@ -314,11 +308,3 @@ IMPLEMENT_ISR(INT2_vect, EXTERNAL_INT_2) #endif #endif - -/* -ISR(TWI_vect) { - if(twiIntFunc) - twiIntFunc(); -} -*/ - From 8f752bf8c2785049eca2b546f8105ff856a06f48 Mon Sep 17 00:00:00 2001 From: "Paul R. Nash" Date: Mon, 21 Jan 2019 17:23:44 -0800 Subject: [PATCH 11/29] Add parameters names to common prototypes 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. :( --- cores/arduino/Arduino.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/cores/arduino/Arduino.h b/cores/arduino/Arduino.h index 09c14489..e178cf4f 100644 --- a/cores/arduino/Arduino.h +++ b/cores/arduino/Arduino.h @@ -130,16 +130,16 @@ void initVariant(void); int atexit(void (*func)()) __attribute__((weak)); -void pinMode(uint8_t, uint8_t); -void digitalWrite(uint8_t, uint8_t); -int digitalRead(uint8_t); -int analogRead(uint8_t); +void pinMode(uint8_t pin, uint8_t mode); +void digitalWrite(uint8_t pin, uint8_t val); +int digitalRead(uint8_t pin); +int analogRead(uint8_t pin); void analogReference(uint8_t mode); -void analogWrite(uint8_t, int); +void analogWrite(uint8_t pin, int val); unsigned long millis(void); unsigned long micros(void); -void delay(unsigned long); +void delay(unsigned long ms); void delayMicroseconds(unsigned int us); unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout); unsigned long pulseInLong(uint8_t pin, uint8_t state, unsigned long timeout); @@ -147,8 +147,8 @@ unsigned long pulseInLong(uint8_t pin, uint8_t state, unsigned long timeout); void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val); uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder); -void attachInterrupt(uint8_t, void (*)(void), int mode); -void detachInterrupt(uint8_t); +void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode); +void detachInterrupt(uint8_t interruptNum); void setup(void); void loop(void); From 9e9f54d34dbab45e152d8163e048a879d736eedf Mon Sep 17 00:00:00 2001 From: David Madison Date: Sun, 17 Feb 2019 12:07:22 -0500 Subject: [PATCH 12/29] Define descriptor return var in pluggable block Avoids unused variable warning if USB is enabled but pluggable USB is not --- cores/arduino/USBCore.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cores/arduino/USBCore.cpp b/cores/arduino/USBCore.cpp index c0a4c7cc..dc6bc387 100644 --- a/cores/arduino/USBCore.cpp +++ b/cores/arduino/USBCore.cpp @@ -496,14 +496,13 @@ bool SendConfiguration(int maxlen) static bool SendDescriptor(USBSetup& setup) { - int ret; u8 t = setup.wValueH; if (USB_CONFIGURATION_DESCRIPTOR_TYPE == t) return SendConfiguration(setup.wLength); InitControl(setup.wLength); #ifdef PLUGGABLE_USB_ENABLED - ret = PluggableUSB().getDescriptor(setup); + int ret = PluggableUSB().getDescriptor(setup); if (ret != 0) { return (ret > 0 ? true : false); } From 649f978224d79947d679612e4bcb326280f4f963 Mon Sep 17 00:00:00 2001 From: luca Date: Fri, 26 Apr 2019 14:32:43 +0200 Subject: [PATCH 13/29] Minor optimization in shiftOut function --- cores/arduino/wiring_shift.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/cores/arduino/wiring_shift.c b/cores/arduino/wiring_shift.c index 2b6f7a81..042a95af 100644 --- a/cores/arduino/wiring_shift.c +++ b/cores/arduino/wiring_shift.c @@ -42,10 +42,13 @@ void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val) uint8_t i; for (i = 0; i < 8; i++) { - if (bitOrder == LSBFIRST) - digitalWrite(dataPin, !!(val & (1 << i))); - else - digitalWrite(dataPin, !!(val & (1 << (7 - i)))); + if (bitOrder == LSBFIRST) { + digitalWrite(dataPin, val & 1); + val >>= 1; + } else { + digitalWrite(dataPin, val & 128); + val <<= 1; + } digitalWrite(clockPin, HIGH); digitalWrite(clockPin, LOW); From 4d074e8a54d5395cafbb2c860f55304b329d83ab Mon Sep 17 00:00:00 2001 From: luca Date: Fri, 26 Apr 2019 20:21:27 +0200 Subject: [PATCH 14/29] Fixed shiftOut in MSBFIRST mode HIGH/LOW --- cores/arduino/wiring_shift.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/arduino/wiring_shift.c b/cores/arduino/wiring_shift.c index 042a95af..a9b3be5f 100644 --- a/cores/arduino/wiring_shift.c +++ b/cores/arduino/wiring_shift.c @@ -46,7 +46,7 @@ void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val) digitalWrite(dataPin, val & 1); val >>= 1; } else { - digitalWrite(dataPin, val & 128); + digitalWrite(dataPin, (val & 128) != 0); val <<= 1; } From b237dcc8e23abb9e79228e3a175a5286131f9f7a Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 8 Jun 2019 21:50:17 +0200 Subject: [PATCH 15/29] Do not claim AT-protocol in CDC interface descriptor 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 --- cores/arduino/CDC.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/arduino/CDC.cpp b/cores/arduino/CDC.cpp index 142f8f66..4ff6b9b4 100644 --- a/cores/arduino/CDC.cpp +++ b/cores/arduino/CDC.cpp @@ -41,7 +41,7 @@ static u8 wdtcsr_save; extern const CDCDescriptor _cdcInterface PROGMEM; const CDCDescriptor _cdcInterface = { - D_IAD(0,2,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,1), + D_IAD(0,2,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,0), // CDC communication interface D_INTERFACE(CDC_ACM_INTERFACE,1,CDC_COMMUNICATION_INTERFACE_CLASS,CDC_ABSTRACT_CONTROL_MODEL,0), From e715ebfdc9b5d1ca5122eda1dac45023727532b1 Mon Sep 17 00:00:00 2001 From: Jeff Rowberg Date: Sun, 21 Jul 2019 21:05:24 -0400 Subject: [PATCH 16/29] Cast pins to signed integers to avoid Wtype-limits compile warning --- libraries/SoftwareSerial/src/SoftwareSerial.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/SoftwareSerial/src/SoftwareSerial.cpp b/libraries/SoftwareSerial/src/SoftwareSerial.cpp index 474fe4a2..3163d7a3 100644 --- a/libraries/SoftwareSerial/src/SoftwareSerial.cpp +++ b/libraries/SoftwareSerial/src/SoftwareSerial.cpp @@ -316,7 +316,7 @@ void SoftwareSerial::begin(long speed) _tx_delay = subtract_cap(bit_delay, 15 / 4); // Only setup rx when we have a valid PCINT for this pin - if (digitalPinToPCICR(_receivePin)) { + if (digitalPinToPCICR((int8_t)_receivePin)) { #if GCC_VERSION > 40800 // Timings counted from gcc 4.8.2 output. This works up to 115200 on // 16Mhz and 57600 on 8Mhz. @@ -357,7 +357,7 @@ void SoftwareSerial::begin(long speed) // Enable the PCINT for the entire port here, but never disable it // (others might also need it, so we disable the interrupt by using // the per-pin PCMSK register). - *digitalPinToPCICR(_receivePin) |= _BV(digitalPinToPCICRbit(_receivePin)); + *digitalPinToPCICR((int8_t)_receivePin) |= _BV(digitalPinToPCICRbit(_receivePin)); // Precalculate the pcint mask register and value, so setRxIntMask // can be used inside the ISR without costing too much time. _pcint_maskreg = digitalPinToPCMSK(_receivePin); From c270eaabf4b7e85b0cfbb96c57817af5995b5ad8 Mon Sep 17 00:00:00 2001 From: Jeff Rowberg Date: Mon, 29 Jul 2019 12:16:41 -0400 Subject: [PATCH 17/29] Add null pointer test to String destructor --- cores/arduino/WString.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/arduino/WString.cpp b/cores/arduino/WString.cpp index f2572d60..043fda7c 100644 --- a/cores/arduino/WString.cpp +++ b/cores/arduino/WString.cpp @@ -121,7 +121,7 @@ String::String(double value, unsigned char decimalPlaces) String::~String() { - free(buffer); + if (buffer) free(buffer); } /*********************************************/ From d908f32489ae8eff37484b4b51cb5b36add7ed12 Mon Sep 17 00:00:00 2001 From: Geonil Goh Date: Fri, 2 Aug 2019 23:00:08 +0900 Subject: [PATCH 18/29] rename yunmini.bootloader.file on boards.txt --- boards.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boards.txt b/boards.txt index e2f3707c..b72374dd 100644 --- a/boards.txt +++ b/boards.txt @@ -946,7 +946,7 @@ yunmini.bootloader.tool=avrdude yunmini.bootloader.low_fuses=0xff yunmini.bootloader.high_fuses=0xd8 yunmini.bootloader.extended_fuses=0xfb -yunmini.bootloader.file=caterina/Caterina-Yunmini.hex +yunmini.bootloader.file=caterina/Caterina-YunMini.hex yunmini.bootloader.unlock_bits=0x3F yunmini.bootloader.lock_bits=0x2F From 13bace4bb9e37af02c36e52951399c739563f549 Mon Sep 17 00:00:00 2001 From: CombiesGit Date: Fri, 16 Aug 2019 08:53:43 +0200 Subject: [PATCH 19/29] Update twi.c Added __attribute__ ((fallthrough)); --- libraries/Wire/src/utility/twi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libraries/Wire/src/utility/twi.c b/libraries/Wire/src/utility/twi.c index 171af730..1a351463 100644 --- a/libraries/Wire/src/utility/twi.c +++ b/libraries/Wire/src/utility/twi.c @@ -445,6 +445,7 @@ ISR(TWI_vect) case TW_MR_DATA_ACK: // data received, ack sent // put byte into buffer twi_masterBuffer[twi_masterBufferIndex++] = TWDR; + __attribute__ ((fallthrough)); case TW_MR_SLA_ACK: // address sent, ack received // ack if more bytes are expected, otherwise nack if(twi_masterBufferIndex < twi_masterBufferLength){ @@ -530,6 +531,7 @@ ISR(TWI_vect) twi_txBufferLength = 1; twi_txBuffer[0] = 0x00; } + __attribute__ ((fallthrough)); // transmit first byte from buffer, fall case TW_ST_DATA_ACK: // byte sent, ack returned // copy data to output register From 29bfd08cd7fc1399f897255f81804595a4776d16 Mon Sep 17 00:00:00 2001 From: Akihiro YAMAZAKI Date: Wed, 4 Sep 2019 20:04:45 +0900 Subject: [PATCH 20/29] remove unnecessary if branch checking `length` in below while statement --- cores/arduino/Stream.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/cores/arduino/Stream.cpp b/cores/arduino/Stream.cpp index d2846316..9eff6638 100644 --- a/cores/arduino/Stream.cpp +++ b/cores/arduino/Stream.cpp @@ -218,7 +218,6 @@ size_t Stream::readBytes(char *buffer, size_t length) size_t Stream::readBytesUntil(char terminator, char *buffer, size_t length) { - if (length < 1) return 0; size_t index = 0; while (index < length) { int c = timedRead(); From becb995388d7cbdd5f9cfbd41b82c7152ef6513f Mon Sep 17 00:00:00 2001 From: Alexander Entinger Date: Mon, 16 Sep 2019 09:58:35 +0200 Subject: [PATCH 21/29] Adding parenthesis around 'bitvalue' allowing correct macro expansion when using with ternary operator such as bitWrite(value, bit, some_computed_value == 5 ? 1: 0);' --- cores/arduino/Arduino.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/arduino/Arduino.h b/cores/arduino/Arduino.h index 09c14489..d1a46d09 100644 --- a/cores/arduino/Arduino.h +++ b/cores/arduino/Arduino.h @@ -111,7 +111,7 @@ void yield(void); #define bitRead(value, bit) (((value) >> (bit)) & 0x01) #define bitSet(value, bit) ((value) |= (1UL << (bit))) #define bitClear(value, bit) ((value) &= ~(1UL << (bit))) -#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) +#define bitWrite(value, bit, bitvalue) ((bitvalue) ? bitSet(value, bit) : bitClear(value, bit)) // avr-libc defines _NOP() since 1.6.2 #ifndef _NOP From 41f15a1359943ccb3ec9666a2e28a2d15e9581fc Mon Sep 17 00:00:00 2001 From: Corjan85 <34415116+Corjan85@users.noreply.github.com> Date: Mon, 16 Sep 2019 13:47:22 +0200 Subject: [PATCH 22/29] =?UTF-8?q?Changed=20linking=20order,=20so=20precomp?= =?UTF-8?q?iled=20libraries=20can=20use=20the=20Arduino=20c=E2=80=A6=20(#5?= =?UTF-8?q?2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Changed linking order, so precompiled libraries can use the Arduino code functions. * Added 'compiler.libraries.ldflags', reverted object order in previous commit --- platform.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.txt b/platform.txt index cb486985..9d18d7b6 100644 --- a/platform.txt +++ b/platform.txt @@ -65,7 +65,7 @@ archive_file_path={build.path}/{archive_file} recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}" ## Combine gc-sections, archives, and objects -recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mmcu={build.mcu} {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "-L{build.path}" -lm +recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mmcu={build.mcu} {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" {object_files} {compiler.libraries.ldflags} "{build.path}/{archive_file}" "-L{build.path}" -lm ## Create output files (.eep and .hex) recipe.objcopy.eep.pattern="{compiler.path}{compiler.objcopy.cmd}" {compiler.objcopy.eep.flags} {compiler.objcopy.eep.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.eep" From 319be020ed0cd445d3ab5ea4a6c76acef0646598 Mon Sep 17 00:00:00 2001 From: Asuki Kono Date: Mon, 16 Sep 2019 20:51:40 +0900 Subject: [PATCH 23/29] Add i2c_scanner to example of Wire (#93) --- .../Wire/examples/i2c_scanner/i2c_scanner.ino | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 libraries/Wire/examples/i2c_scanner/i2c_scanner.ino diff --git a/libraries/Wire/examples/i2c_scanner/i2c_scanner.ino b/libraries/Wire/examples/i2c_scanner/i2c_scanner.ino new file mode 100644 index 00000000..3febbf44 --- /dev/null +++ b/libraries/Wire/examples/i2c_scanner/i2c_scanner.ino @@ -0,0 +1,75 @@ +// -------------------------------------- +// i2c_scanner +// +// Version 1 +// This program (or code that looks like it) +// can be found in many places. +// For example on the Arduino.cc forum. +// The original author is not know. +// Version 2, Juni 2012, Using Arduino 1.0.1 +// Adapted to be as simple as possible by Arduino.cc user Krodal +// Version 3, Feb 26 2013 +// V3 by louarnold +// Version 4, March 3, 2013, Using Arduino 1.0.3 +// by Arduino.cc user Krodal. +// Changes by louarnold removed. +// Scanning addresses changed from 0...127 to 1...119, +// according to the i2c scanner by Nick Gammon +// https://www.gammon.com.au/forum/?id=10896 +// Version 5, March 28, 2013 +// As version 4, but address scans now to 127. +// A sensor seems to use address 120. +// Version 6, November 27, 2015. +// Added waiting for the Leonardo serial communication. +// +// +// This sketch tests the standard 7-bit addresses +// Devices with higher bit address might not be seen properly. +// + +#include + +void setup() { + Wire.begin(); + + Serial.begin(9600); + while (!Serial); // Leonardo: wait for serial monitor + Serial.println("\nI2C Scanner"); +} + +void loop() { + int nDevices = 0; + + Serial.println("Scanning..."); + + for (byte address = 1; address < 127; ++address) { + // The i2c_scanner uses the return value of + // the Write.endTransmisstion to see if + // a device did acknowledge to the address. + Wire.beginTransmission(address); + byte error = Wire.endTransmission(); + + if (error == 0) { + Serial.print("I2C device found at address 0x"); + if (address < 16) { + Serial.print("0"); + } + Serial.print(address, HEX); + Serial.println(" !"); + + ++nDevices; + } else if (error == 4) { + Serial.print("Unknown error at address 0x"); + if (address < 16) { + Serial.print("0"); + } + Serial.println(address, HEX); + } + } + if (nDevices == 0) { + Serial.println("No I2C devices found\n"); + } else { + Serial.println("done\n"); + } + delay(5000); // Wait 5 seconds for next scan +} From 56486abd766c569020f6456690201a844a4184a2 Mon Sep 17 00:00:00 2001 From: Alexander Entinger Date: Wed, 18 Sep 2019 13:25:16 +0200 Subject: [PATCH 24/29] =?UTF-8?q?Revert=20"Changed=20linking=20order,=20so?= =?UTF-8?q?=20precompiled=20libraries=20can=20use=20the=20Arduino=20c?= =?UTF-8?q?=E2=80=A6=20(#52)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 41f15a1359943ccb3ec9666a2e28a2d15e9581fc. --- platform.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.txt b/platform.txt index 9d18d7b6..cb486985 100644 --- a/platform.txt +++ b/platform.txt @@ -65,7 +65,7 @@ archive_file_path={build.path}/{archive_file} recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}" ## Combine gc-sections, archives, and objects -recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mmcu={build.mcu} {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" {object_files} {compiler.libraries.ldflags} "{build.path}/{archive_file}" "-L{build.path}" -lm +recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mmcu={build.mcu} {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" {object_files} "{build.path}/{archive_file}" "-L{build.path}" -lm ## Create output files (.eep and .hex) recipe.objcopy.eep.pattern="{compiler.path}{compiler.objcopy.cmd}" {compiler.objcopy.eep.flags} {compiler.objcopy.eep.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.eep" From 71c366f41a8fdd851f801d604015a233367da0a0 Mon Sep 17 00:00:00 2001 From: Luca Cipriani Date: Thu, 19 Sep 2019 15:45:09 +0200 Subject: [PATCH 25/29] Remove Genuino Occurrences --- boards.txt | 12 ++++++------ extras/package_index.json.Hourly.template | 6 +++--- extras/package_index.json.PR.template | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/boards.txt b/boards.txt index b72374dd..1a0f34df 100644 --- a/boards.txt +++ b/boards.txt @@ -46,7 +46,7 @@ yun.build.extra_flags={build.usb_flags} ############################################################## -uno.name=Arduino/Genuino Uno +uno.name=Arduino Uno uno.vid.0=0x2341 uno.pid.0=0x0043 @@ -185,7 +185,7 @@ nano.menu.cpu.atmega168.build.mcu=atmega168 ############################################################## -mega.name=Arduino/Genuino Mega or Mega 2560 +mega.name=Arduino Mega or Mega 2560 mega.vid.0=0x2341 mega.pid.0=0x0010 @@ -214,7 +214,7 @@ mega.build.variant=mega # default board may be overridden by the cpu menu mega.build.board=AVR_MEGA2560 -## Arduino/Genuino Mega w/ ATmega2560 +## Arduino Mega w/ ATmega2560 ## ------------------------- mega.menu.cpu.atmega2560=ATmega2560 (Mega 2560) @@ -353,7 +353,7 @@ leonardoeth.build.extra_flags={build.usb_flags} ############################################################## -micro.name=Arduino/Genuino Micro +micro.name=Arduino Micro micro.vid.0=0x2341 micro.pid.0=0x0037 @@ -370,7 +370,7 @@ micro.pid.4=0x0237 # other parameters as well micro.vid.4.build.vid=0x2341 micro.vid.4.build.pid=0x8237 -micro.vid.4.build.usb_product="Genuino Micro" +micro.vid.4.build.usb_product="Arduino Micro" micro.vid.4.bootloader.file=caterina/Caterina-Genuino-Micro.hex micro.vid.5=0x2341 @@ -379,7 +379,7 @@ micro.pid.5=0x8237 # other paramters as well micro.vid.5.build.vid=0x2341 micro.vid.5.build.pid=0x8237 -micro.vid.5.build.usb_product="Genuino Micro" +micro.vid.5.build.usb_product="Arduino Micro" micro.vid.5.bootloader.file=caterina/Caterina-Genuino-Micro.hex micro.upload.tool=avrdude diff --git a/extras/package_index.json.Hourly.template b/extras/package_index.json.Hourly.template index 49c71dd5..85c3665b 100644 --- a/extras/package_index.json.Hourly.template +++ b/extras/package_index.json.Hourly.template @@ -20,15 +20,15 @@ "size": "%%SIZE%%", "boards": [ {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, + {"name": "Arduino Uno"}, {"name": "Arduino Uno WiFi"}, {"name": "Arduino Diecimila"}, {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, + {"name": "Arduino Mega"}, {"name": "Arduino MegaADK"}, {"name": "Arduino Leonardo"}, {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino/Genuino Micro"}, + {"name": "Arduino Micro"}, {"name": "Arduino Esplora"}, {"name": "Arduino Mini"}, {"name": "Arduino Ethernet"}, diff --git a/extras/package_index.json.PR.template b/extras/package_index.json.PR.template index 17cfa502..f1d21f31 100644 --- a/extras/package_index.json.PR.template +++ b/extras/package_index.json.PR.template @@ -20,15 +20,15 @@ "size": "%%SIZE%%", "boards": [ {"name": "Arduino Yún"}, - {"name": "Arduino/Genuino Uno"}, + {"name": "Arduino Uno"}, {"name": "Arduino Uno WiFi"}, {"name": "Arduino Diecimila"}, {"name": "Arduino Nano"}, - {"name": "Arduino/Genuino Mega"}, + {"name": "Arduino Mega"}, {"name": "Arduino MegaADK"}, {"name": "Arduino Leonardo"}, {"name": "Arduino Leonardo Ethernet"}, - {"name": "Arduino/Genuino Micro"}, + {"name": "Arduino Micro"}, {"name": "Arduino Esplora"}, {"name": "Arduino Mini"}, {"name": "Arduino Ethernet"}, From 95867b5ed1da4773a87bcca08bad05f9d893a51c Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Fri, 20 Sep 2019 11:36:35 +0200 Subject: [PATCH 26/29] Removed Genuino Micro and set to replace it with Arduino Micro on upload --- boards.txt | 14 - .../caterina/Caterina-Genuino-Micro.hex | 257 ------------------ .../caterina/Caterina-Genuino-Micro.txt | 19 -- 3 files changed, 290 deletions(-) delete mode 100644 bootloaders/caterina/Caterina-Genuino-Micro.hex delete mode 100644 bootloaders/caterina/Caterina-Genuino-Micro.txt diff --git a/boards.txt b/boards.txt index 1a0f34df..1344fbb5 100644 --- a/boards.txt +++ b/boards.txt @@ -363,24 +363,10 @@ micro.vid.2=0x2A03 micro.pid.2=0x0037 micro.vid.3=0x2A03 micro.pid.3=0x8037 - micro.vid.4=0x2341 micro.pid.4=0x0237 -# If the board is a 2341:0237 use 2341:8237 for build and set -# other parameters as well -micro.vid.4.build.vid=0x2341 -micro.vid.4.build.pid=0x8237 -micro.vid.4.build.usb_product="Arduino Micro" -micro.vid.4.bootloader.file=caterina/Caterina-Genuino-Micro.hex - micro.vid.5=0x2341 micro.pid.5=0x8237 -# If the board is a 2341:8237 use 2341:8237 for build and set -# other paramters as well -micro.vid.5.build.vid=0x2341 -micro.vid.5.build.pid=0x8237 -micro.vid.5.build.usb_product="Arduino Micro" -micro.vid.5.bootloader.file=caterina/Caterina-Genuino-Micro.hex micro.upload.tool=avrdude micro.upload.protocol=avr109 diff --git a/bootloaders/caterina/Caterina-Genuino-Micro.hex b/bootloaders/caterina/Caterina-Genuino-Micro.hex deleted file mode 100644 index b658b286..00000000 --- a/bootloaders/caterina/Caterina-Genuino-Micro.hex +++ /dev/null @@ -1,257 +0,0 @@ -:1070000055C000006EC000006CC000006AC00000E7 -:1070100068C0000066C0000064C0000062C00000DC -:1070200060C000005EC00000F2C400005AC0000052 -:1070300058C0000056C0000054C0000052C00000FC -:1070400050C0000078C000004CC000004AC00000E2 -:1070500048C0000046C0000044C0000042C000001C -:1070600040C000003EC000003CC000003AC000002C -:1070700038C0000036C0000034C0000032C000003C -:1070800030C000002EC000002CC000002AC000004C -:1070900028C0000026C0000024C0000022C000005C -:1070A00020C000001EC000001CC0000011241FBE34 -:1070B000CFEFDAE0DEBFCDBF11E0A0E0B1E0E2E368 -:1070C000FFE702C005900D92A83AB107D9F711E089 -:1070D000A8EAB1E001C01D92AE3BB107E1F78FD342 -:1070E00026C78ECFF89410926F00109281001092F4 -:1070F00085001092840081E085BF15BE47985D9899 -:1071000028980C94000008952091B2013091B301A9 -:107110002F5F3F4F3093B3012093B201932F37FF7E -:1071200003C08EEF831B982F990F921710F4479886 -:107130000895479A08951F920F920FB60F92112447 -:107140002F938F939F93EF93FF931092850010924C -:1071500084008091A8019091A901009741F00197C6 -:107160009093A9018093A801892B09F45D988091DF -:10717000AA019091AB01009741F001979093AB0168 -:107180008093AA01892B09F42898E0E0F0E085912A -:1071900094918F5F9F4F49F08091AC019091AD0128 -:1071A00001969093AD018093AC01FF91EF919F9177 -:1071B0008F912F910F900FBE0F901F90189584E024 -:1071C0008093E9000DC08091E8008B778093E80000 -:1071D00003C08EB3882351F08091E80082FFF9CF7D -:1071E0008091E80085FFEFCF8091F1000895982FFE -:1071F00083E08093E9008091E80085FD0DC08091D7 -:10720000E8008E778093E80003C08EB3882369F08E -:107210008091E80080FFF9CF9093F1005D9A84E6B9 -:1072200090E09093A9018093A80108954F925F92F6 -:107230006F927F928F929F92AF92BF92CF92DF9286 -:10724000EF92FF920F931F93CF93DF9384E080938D -:10725000E9008091E80082FF57C2289A84E690E016 -:107260009093AB018093AA01AADF182F853481F493 -:107270008CE49DE19093AD018093AC0107B600FCD6 -:10728000FDCFF999FECF81E180935700E89503C0C7 -:10729000843519F494DF8DE00DC28C34E1F3803530 -:1072A000D1F3843721F484E4A2DF80E003C2813685 -:1072B00011F489E5FFC18134B1F481DF182F7FDF3C -:1072C00090E0880F991FAA2797FDA095BA2F312F1C -:1072D000330F20E0442737FD4095542F822B932B0A -:1072E000A42BB52BB8C1803711F483E5E3C18335F6 -:1072F00049F4C0E0D1E089917ADF21E0C730D207BC -:10730000D1F7D9C1863521F481E371DF80E3D2C1A1 -:10731000833731F487E86BDF85E969DF8EE1CAC125 -:107320008536B9F4E0E0F0E093E085E09093570013 -:10733000E89507B600FCFDCF80935700E89507B6A7 -:1073400000FCFDCFE058FF4FA0E7E030FA0771F7EF -:10735000A2CF823739F4E1E0F0E089E08093570072 -:107360008491A8C1863439F4E0E0F0E089E08093AC -:10737000570084919FC18E3439F4E3E0F0E089E056 -:1073800080935700849196C1813539F4E2E0F0E0B2 -:1073900089E08093570084918DC1823631F489E56C -:1073A00026DF80E024DF80E885C1823419F087364B -:1073B00009F0E5C01092AD011092AC0100DF082F7A -:1073C000FEDEF82EFCDE682E8554823008F071C196 -:1073D000902F80E0CF2DD0E0C82BD92B10926F00DA -:1073E000173609F04BC081E180935700E895DD2402 -:1073F000CC24C3943FC0E090AE01F090AF01009167 -:10740000B0011091B101B6E46B16D9F4ED2DF0E0A6 -:10741000EE29FF29E4918E2FEADEDD2081F082E063 -:1074200090E0A0E0B0E0E80EF91E0A1F1B1FE092FA -:10743000AE01F092AF010093B0011093B101DC24D2 -:1074400018C0D801C701B695A7959795879559D5C6 -:10745000CEDE82E090E0A0E0B0E0E80EF91E0A1F68 -:107460001B1FE092AE01F092AF010093B0011093A8 -:10747000B1012197209709F0BECF7DC08090AE0169 -:107480009090AF01A090B001B090B10196E4691660 -:1074900009F05DC083E0F40180935700E89507B6DA -:1074A00000FCFDCF54C0F6E46F1661F5772031F192 -:1074B000E090AE01F090AF010091B0011091B101E8 -:1074C0007EDED82ECC24852D90E08C299D29F701D5 -:1074D0000C0140925700E895112482E090E0A0E072 -:1074E000B0E0E80EF91E0A1F1B1FE092AE01F092F9 -:1074F000AF010093B0011093B10102C060DE582EBD -:10750000742423C0E090AE01F090AF010091B0016F -:107510001091B10116950795F794E79450DE682F06 -:10752000C701F7D48091AE019091AF01A091B00155 -:10753000B091B1010296A11DB11D8093AE0190934F -:10754000AF01A093B001B093B101219704C05524BD -:10755000772444244394209709F0A5CF96E4691634 -:1075600041F485E0F40180935700E89507B600FCEC -:10757000FDCF8DE03CDE82E080936F009CC08334C1 -:1075800071F40091AE011091AF0119DE90E021E09D -:10759000F8010C0120935700E89511247CCE833626 -:1075A00019F5E090AE01F090AF010091B00110919B -:1075B000B10105DEF701E16090E021E00C012093CC -:1075C0005700E895112482E090E0A0E0B0E0E80EDA -:1075D000F91E0A1F1B1FE092AE01F092AF0100934B -:1075E000B0011093B10157CE8D3661F4E091AE0138 -:1075F000F091AF0185E080935700E89507B600FC55 -:10760000FDCF49CE823551F4E091AE01F091AF014A -:1076100005911491812FEBDD802F4CC0843421F52E -:10762000E090AE01F090AF010091B0011091B10176 -:1076300016950795F794E794C2DD682FC70169D4C2 -:107640008091AE019091AF01A091B001B091B101D4 -:107650000296A11DB11D8093AE019093AF01A0933E -:10766000B001B093B10117CE843609F5E090AE01B8 -:10767000F090AF010091B0011091B101D801C701A4 -:10768000B695A795979587953CD4B1DD82E090E0BB -:10769000A0E0B0E0E80EF91E0A1F1B1FE092AE0149 -:1076A000F092AF010093B0011093B10104C08B318F -:1076B00011F08FE39CDD83E08093E9009091E80076 -:1076C0008091E8008E778093E80095FF04C010C099 -:1076D0008EB38823C9F08091E80080FFF9CF8091B4 -:1076E000E8008E778093E80003C08EB3882361F0B2 -:1076F0008091E80080FFF9CF84E08093E9008091D9 -:10770000E8008B778093E800DF91CF911F910F9174 -:10771000FF90EF90DF90CF90BF90AF909F908F90B1 -:107720007F906F905F904F9008959091B601892F50 -:107730008F77813249F58091B7018032A1F0813293 -:1077400019F5913A09F58091E800877F8093E80068 -:107750008DE091E067E070E00BD28091E8008B77DC -:107760008093E8000895913279F48091E800877F52 -:107770008093E8008DE091E067E070E05DD2809159 -:10778000E8008E778093E800089582E061EC42E0A3 -:10779000B5D083E061E842E1B1D084E060E842E145 -:1077A000ADC084B7877F84BF88E10FB6F89480931B -:1077B0006000109260000FBE20E880E090E00FB6FD -:1077C000F89420936100809361000FBE81E085BF33 -:1077D00092E095BF3F9A209A559AE1E6F0E0208327 -:1077E000108247985D982898109289008AEF8093BC -:1077F000880090936F0083E080938100F0C04091F7 -:10780000000850910108109201081092000894B7E6 -:1078100014BE88E10FB6F894809360001092600067 -:107820000FBE292F30E0F901E270F07091FD18C011 -:1078300090FF05C0859194918F5F9F4F81F423FF46 -:107840000FC08091090190910A014817590741F032 -:10785000E0E0F0E0859194918F5F9F4F09F042DC6A -:10786000A0DF78941092AD011092AC010CC0DEDC68 -:1078700036D38091AC019091AD0181549F4110F0BD -:107880001092140141DC80911401882381F78091CA -:10789000E00081608093E00025DC80E090E00895C6 -:1078A000FA01923049F0933061F09130F9F485E1BA -:1078B00091E022E130E01EC087E291E02EE330E06B -:1078C00019C0882329F485E691E024E030E012C055 -:1078D000813029F489E691E022E230E00BC0823069 -:1078E00029F48DE891E028E130E004C080E090E0E8 -:1078F00020E030E091838083C90108958093E900FE -:107900008091EB0081608093EB001092ED0060931A -:10791000EC004093ED008091EE00881F8827881FBF -:1079200008958091B60188238CF403C08EB3882318 -:10793000B1F08091E80082FFF9CF8091E8008B7769 -:107940008093E80008958EB3882349F08091E80081 -:1079500080FFF9CF8091E8008E778093E80008954A -:10796000EF92FF920F931F9345D04CD008ED10E09B -:10797000F80180818F778083808180688083808117 -:107980008F7D808319BC1EBA1092B40180EEE82E60 -:10799000F12CF70180818B7F8083F80180818160E9 -:1079A000808380E060E042E0A9DFE1EEF0E08081EA -:1079B0008E7F8083E2EEF0E0808181608083808131 -:1079C00088608083F70180818E7F8083F8018081C9 -:1079D000806180831F910F91FF90EF900895E7EDF4 -:1079E000F0E08081816080838AE482BF81E08093BF -:1079F000B501B6CFE8EDF0E080818E7F80831092F4 -:107A0000E20008951092DA001092E10008951F92AA -:107A10000F920FB60F9211242F933F934F935F93C2 -:107A20006F937F938F939F93AF93BF93EF93FF9346 -:107A30008091DA0080FF1BC08091D80080FF17C0C2 -:107A40008091DA008E7F8093DA008091D90080FFE8 -:107A50000BC080E189BD82E189BD09B400FEFDCF84 -:107A600081E08EBB3BD203C019BC1EBA37D28091D5 -:107A7000E10080FF17C08091E20080FF13C0809179 -:107A8000E2008E7F8093E2008091E200806180932B -:107A9000E2008091D80080628093D80019BC85E014 -:107AA0008EBB1CD28091E10084FF2CC08091E2004B -:107AB00084FF28C080E189BD82E189BD09B400FE50 -:107AC000FDCF8091D8008F7D8093D8008091E10018 -:107AD0008F7E8093E1008091E2008F7E8093E200B0 -:107AE0008091E20081608093E2008091B40188235C -:107AF00031F48091E30087FD02C081E001C084E0A1 -:107B00008EBBECD18091E10083FF21C08091E20027 -:107B100083FF1DC08091E100877F8093E10082E0B8 -:107B20008EBB1092B4018091E1008E7F8093E100C2 -:107B30008091E2008E7F8093E2008091E20080617C -:107B40008093E20080E060E042E0D8DEC7D1FF91A0 -:107B5000EF91BF91AF919F918F917F916F915F91C5 -:107B60004F913F912F910F900FBE0F901F9018953E -:107B70009C014091BC015091BD014617570718F474 -:107B8000F90190E044C06115710511F0AB01F8CF27 -:107B90008091E8008E778093E80040E050E0F0CFDD -:107BA0008EB3882309F444C0853009F443C0809122 -:107BB000E80083FF02C081E008958091E80082FD23 -:107BC00031C08091E80080FF22C08091F300909145 -:107BD000F200782F60E0292F30E0262B372B07C0EA -:107BE00081918093F100415050402F5F3F4F4115EC -:107BF000510519F02830310598F390E0283031050F -:107C000009F491E08091E8008E778093E8004115B7 -:107C1000510531F6992321F605C08EB3882341F032 -:107C2000853041F08091E80082FFF7CF80E0089531 -:107C300082E0089583E008959C016115710529F49F -:107C40008091E8008B778093E800F90126C08EB31D -:107C5000882391F1853091F18091E80083FF02C083 -:107C600081E008958091E80082FFF1CF06C0809105 -:107C7000F10081936150704059F02091F3008091A0 -:107C8000F200322F20E090E0822B932B892B79F7A2 -:107C90008091E8008B778093E80061157105B9F653 -:107CA00005C08EB3882341F0853041F08091E80013 -:107CB00080FFF7CF80E0089582E0089583E0089583 -:107CC0000F931F93DF93CF9300D0CDB7DEB7E6EBD2 -:107CD000F1E08091F100819381E0EE3BF807C9F774 -:107CE00024DD8091E80083FFE4C08091B60190918B -:107CF000B701953009F46DC0963040F4913081F1B0 -:107D0000913070F0933009F0D4C02AC0983009F453 -:107D1000A3C0993009F4B2C0963009F0CAC07CC043 -:107D2000803809F4C6C0823809F0C3C08091BA0116 -:107D300087708093E9008091EB001092E900209118 -:107D4000E800277F2093E80090E025E0969587954E -:107D50002A95E1F781708093F1001092F10087C0BD -:107D6000882319F0823009F0A4C08F71823009F0A5 -:107D7000A0C08091B801882331F52091BA01277005 -:107D800009F497C02093E9008091EB0080FF1BC0AD -:107D9000933021F48091EB00806213C08091EB005E -:107DA00080618093EB0081E090E002C0880F991F12 -:107DB0002A95E2F78093EA001092EA008091EB00A6 -:107DC00088608093EB001092E9008091E800877F43 -:107DD00051C0882309F06DC01091B8011F770FB70B -:107DE000F8948091E800877F8093E8009ADD809185 -:107DF000E80080FFFCCF8091E3008078812B8093A6 -:107E0000E30080688093E300112311F482E001C055 -:107E100083E08EBB0FBF4DC08058823008F049C050 -:107E20008091B8019091B9016091BA01AE014F5FA4 -:107E30005F4F36DDBC01009709F43BC08091E8003C -:107E4000877F8093E80089819A8192DE8091E800A3 -:107E50008B778093E8002DC0803859F58091E80039 -:107E6000877F8093E8008091B4018093F100809136 -:107E7000E8008E778093E80054DD1BC08823C9F4A6 -:107E80009091B8019230A8F48091E800877F8093A8 -:107E9000E8009093B40145DD8091B401882331F46A -:107EA0008091E30087FD02C081E001C084E08EBBC9 -:107EB0006CDC8091E80083FF0AC08091EB00806257 -:107EC0008093EB008091E800877F8093E8000F901B -:107ED0000F90CF91DF911F910F91089508951F93F7 -:107EE0008EB3882361F01091E9001092E90080912F -:107EF000E80083FF01C0E4DE17701093E9001F91D2 -:107F00000895F999FECF92BD81BDF89A992780B561 -:107F10000895262FF999FECF1FBA92BD81BD20BDCD -:107F20000FB6F894FA9AF99A0FBE01960895F8944C -:027F3000FFCF81 -:107F32004341544552494E41007777000800000002 -:107F4200000000080112011001020000084123375D -:107F52000201000201000109023E0002010080321A -:107F6200090400000102020100052400100104249A -:107F720002040524060001070582030800FF090424 -:107F82000100020A000000070504021000010705B3 -:107F92008302100001040309042203470065006EF6 -:107FA20000750069006E006F0020004D00690063DB -:107FB2000072006F00200020002000000018034122 -:107FC2000072006400750069006E006F0020004CB2 -:087FD200004C00430000000018 -:040000030000700089 -:00000001FF diff --git a/bootloaders/caterina/Caterina-Genuino-Micro.txt b/bootloaders/caterina/Caterina-Genuino-Micro.txt deleted file mode 100644 index fd29bd8b..00000000 --- a/bootloaders/caterina/Caterina-Genuino-Micro.txt +++ /dev/null @@ -1,19 +0,0 @@ -GENUINO MICRO PRODUCTION FIRMWARES -================================== - -Bootloader: ------------ - -Name: Caterina-Genuino-Micro.hex - -Notes: -Builds against LUFA version 111009 -make version 3.81 -avrdude version 5.11 - -All AVR tools except avrdude were installed by CrossPack 20100115: -avr-gcc version 4.3.3 (GCC) -Thread model: single -Configured with: ../configure —prefix=/usr/local/CrossPack-AVR-20100115 —disable-dependency-tracking —disable-nls —disable-werror —target=avr —enable-languages=c,c++ —disable-nls —disable-libssp —with-dwarf2 -avr-libc version 1.6.7 -binutils version 2.19 From 2f67c916f6ab6193c404eebe22efe901e0f9542d Mon Sep 17 00:00:00 2001 From: Giampiero Baggiani Date: Thu, 14 Dec 2017 12:41:49 +0100 Subject: [PATCH 27/29] Added SERIAL_PORT_MONITOR define to Arduino Ethernet Port of https://github.com/arduino/Arduino/pull/7023 --- variants/ethernet/pins_arduino.h | 1 + 1 file changed, 1 insertion(+) diff --git a/variants/ethernet/pins_arduino.h b/variants/ethernet/pins_arduino.h index 77fcc40c..f12f3215 100644 --- a/variants/ethernet/pins_arduino.h +++ b/variants/ethernet/pins_arduino.h @@ -250,5 +250,6 @@ const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { // pins are NOT connected to anything by default. #define SERIAL_PORT_HARDWARE Serial #define SERIAL_PORT_HARDWARE_OPEN Serial +#define SERIAL_PORT_MONITOR Serial #endif From c8d6aef6d9331af1ec8dea6f78b4e43174cdb55d Mon Sep 17 00:00:00 2001 From: Manuel Reimer Date: Wed, 25 Sep 2019 10:06:30 +0200 Subject: [PATCH 28/29] Interrupt ordering for 32u2 and 16u2 MCU (#66) * Interrupt ordering for 32u2 and 16u2 MCU * Added missing chip variants --- cores/arduino/WInterrupts.c | 71 ++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) diff --git a/cores/arduino/WInterrupts.c b/cores/arduino/WInterrupts.c index ac72dda4..38ea1580 100644 --- a/cores/arduino/WInterrupts.c +++ b/cores/arduino/WInterrupts.c @@ -102,6 +102,39 @@ void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode) { EICRB = (EICRB & ~((1< Date: Mon, 2 Dec 2019 15:51:15 +0100 Subject: [PATCH 29/29] Release 1.8.2 --- platform.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.txt b/platform.txt index cb486985..608ad29d 100644 --- a/platform.txt +++ b/platform.txt @@ -6,7 +6,7 @@ # https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-specification name=Arduino AVR Boards -version=1.6.23 +version=1.8.2 # AVR compile variables # ---------------------