From 6be91634fdac8f7b00b0878e2626b6af47a5a4ca Mon Sep 17 00:00:00 2001 From: Lady Ada Date: Sat, 1 Feb 2020 21:59:12 -0500 Subject: [PATCH 01/28] add flash definitions --- variants/feather_m0_express/variant.h | 6 ++++++ variants/feather_m4/variant.h | 4 ++++ variants/grand_central_m4/variant.h | 4 ++++ variants/hallowing_m0_express/variant.h | 5 +++++ variants/hallowing_m4/variant.h | 3 +++ variants/itsybitsy_m0/variant.h | 5 +++++ variants/itsybitsy_m4/variant.h | 4 ++++ variants/metro_m0/variant.h | 5 +++++ variants/metro_m4/variant.h | 4 ++++ variants/metro_m4_airlift/variant.h | 4 ++++ variants/monster_m4sk/variant.h | 4 ++++ variants/pybadge_airlift_m4/variant.h | 3 +++ variants/pybadge_m4/variant.h | 3 +++ variants/pygamer_advance_m4/variant.h | 3 +++ variants/pygamer_m4/variant.h | 4 ++++ variants/pyportal_m4/variant.h | 4 ++++ variants/pyportal_m4_titano/variant.h | 4 ++++ variants/trellis_m4/variant.h | 4 ++++ 18 files changed, 73 insertions(+) diff --git a/variants/feather_m0_express/variant.h b/variants/feather_m0_express/variant.h index 2a5baf08..b666a281 100644 --- a/variants/feather_m0_express/variant.h +++ b/variants/feather_m0_express/variant.h @@ -125,6 +125,12 @@ static const uint8_t DAC0 = PIN_DAC0; #define PIN_ATN (38ul) static const uint8_t ATN = PIN_ATN; + +// On-board SPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q16C +#define EXTERNAL_FLASH_USE_SPI SPI1 +#define EXTERNAL_FLASH_USE_CS SS1 + /* * Serial interfaces */ diff --git a/variants/feather_m4/variant.h b/variants/feather_m4/variant.h index 86a9393e..6be35dcc 100644 --- a/variants/feather_m4/variant.h +++ b/variants/feather_m4/variant.h @@ -186,6 +186,10 @@ static const uint8_t SCL = PIN_WIRE_SCL; #define PIN_I2S_FS (10u) #define PIN_I2S_MCK PIN_SERIAL1_RX +// On-board QSPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q16C +#define EXTERNAL_FLASH_USE_QSPI + //QSPI Pins #define PIN_QSPI_SCK (34u) #define PIN_QSPI_CS (35u) diff --git a/variants/grand_central_m4/variant.h b/variants/grand_central_m4/variant.h index 6e59d27f..c288d016 100644 --- a/variants/grand_central_m4/variant.h +++ b/variants/grand_central_m4/variant.h @@ -258,6 +258,10 @@ static const uint8_t SCL1 = PIN_WIRE1_SCL; #define PIN_I2S_FS (33) #define PIN_I2S_MCK PIN_SERIAL4_RX +// On-board QSPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q16C +#define EXTERNAL_FLASH_USE_QSPI + //QSPI Pins #define PIN_QSPI_SCK (89) #define PIN_QSPI_CS (90) diff --git a/variants/hallowing_m0_express/variant.h b/variants/hallowing_m0_express/variant.h index 309542ef..8a84c602 100644 --- a/variants/hallowing_m0_express/variant.h +++ b/variants/hallowing_m0_express/variant.h @@ -125,6 +125,11 @@ static const uint8_t DAC0 = PIN_DAC0; #define PIN_ATN (38ul) static const uint8_t ATN = PIN_ATN; +// On-board SPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q16C +#define EXTERNAL_FLASH_USE_SPI SPI1 +#define EXTERNAL_FLASH_USE_CS SS1 + /* * Serial interfaces */ diff --git a/variants/hallowing_m4/variant.h b/variants/hallowing_m4/variant.h index 0763990e..221821d5 100644 --- a/variants/hallowing_m4/variant.h +++ b/variants/hallowing_m4/variant.h @@ -187,6 +187,9 @@ static const uint8_t SCL = PIN_WIRE_SCL; */ #define I2S_INTERFACES_COUNT 0 +// On-board QSPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q16C +#define EXTERNAL_FLASH_USE_QSPI //QSPI Pins #define PIN_QSPI_SCK (35u) diff --git a/variants/itsybitsy_m0/variant.h b/variants/itsybitsy_m0/variant.h index af56e7e1..4c0d1c15 100644 --- a/variants/itsybitsy_m0/variant.h +++ b/variants/itsybitsy_m0/variant.h @@ -118,6 +118,11 @@ static const uint8_t DAC0 = PIN_DAC0; #define PIN_ATN (38ul) static const uint8_t ATN = PIN_ATN; +// On-board SPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q16C +#define EXTERNAL_FLASH_USE_SPI SPI1 +#define EXTERNAL_FLASH_USE_CS SS1 + /* * Serial interfaces */ diff --git a/variants/itsybitsy_m4/variant.h b/variants/itsybitsy_m4/variant.h index 10c9200a..e031adc9 100644 --- a/variants/itsybitsy_m4/variant.h +++ b/variants/itsybitsy_m4/variant.h @@ -174,6 +174,10 @@ static const uint8_t SCL = PIN_WIRE_SCL; #define I2S_DEVICE 0 // no I2S on G19! +// On-board QSPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q16C +#define EXTERNAL_FLASH_USE_QSPI + //QSPI Pins #define PIN_QSPI_SCK (32u) #define PIN_QSPI_CS (33u) diff --git a/variants/metro_m0/variant.h b/variants/metro_m0/variant.h index 33b9a74e..5aa2e852 100644 --- a/variants/metro_m0/variant.h +++ b/variants/metro_m0/variant.h @@ -125,6 +125,11 @@ static const uint8_t DAC0 = PIN_DAC0; #define PIN_ATN (38ul) static const uint8_t ATN = PIN_ATN; +// On-board SPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q16C +#define EXTERNAL_FLASH_USE_SPI SPI1 +#define EXTERNAL_FLASH_USE_CS SS1 + /* * Serial interfaces */ diff --git a/variants/metro_m4/variant.h b/variants/metro_m4/variant.h index 8880148b..2b510e74 100644 --- a/variants/metro_m4/variant.h +++ b/variants/metro_m4/variant.h @@ -188,6 +188,10 @@ static const uint8_t SCL = PIN_WIRE_SCL; #define PIN_I2S_FS (9u) #define PIN_I2S_MCK (2u) +// On-board QSPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q16C +#define EXTERNAL_FLASH_USE_QSPI + //QSPI Pins #define PIN_QSPI_SCK (41u) #define PIN_QSPI_CS (42u) diff --git a/variants/metro_m4_airlift/variant.h b/variants/metro_m4_airlift/variant.h index aa38ce05..7b754792 100644 --- a/variants/metro_m4_airlift/variant.h +++ b/variants/metro_m4_airlift/variant.h @@ -205,6 +205,10 @@ static const uint8_t SCL = PIN_WIRE_SCL; #define PIN_I2S_FS (9u) #define PIN_I2S_MCK (2u) +// On-board QSPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q16C +#define EXTERNAL_FLASH_USE_QSPI + //QSPI Pins #define PIN_QSPI_SCK (41u) #define PIN_QSPI_CS (42u) diff --git a/variants/monster_m4sk/variant.h b/variants/monster_m4sk/variant.h index 86d37ae5..eb3a283f 100644 --- a/variants/monster_m4sk/variant.h +++ b/variants/monster_m4sk/variant.h @@ -196,6 +196,10 @@ static const uint8_t SCL = PIN_WIRE_SCL; #define I2S_DEVICE 0 // no I2S on G19! +// On-board QSPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q64C +#define EXTERNAL_FLASH_USE_QSPI + //QSPI Pins #define PIN_QSPI_SCK (29u) #define PIN_QSPI_CS (30u) diff --git a/variants/pybadge_airlift_m4/variant.h b/variants/pybadge_airlift_m4/variant.h index 69caea96..0887238d 100644 --- a/variants/pybadge_airlift_m4/variant.h +++ b/variants/pybadge_airlift_m4/variant.h @@ -204,6 +204,9 @@ static const uint8_t SCL = PIN_WIRE_SCL; */ #define I2S_INTERFACES_COUNT 0 +// On-board QSPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q16C +#define EXTERNAL_FLASH_USE_QSPI //QSPI Pins #define PIN_QSPI_SCK (35u) diff --git a/variants/pybadge_m4/variant.h b/variants/pybadge_m4/variant.h index ac473f86..fbfb6824 100644 --- a/variants/pybadge_m4/variant.h +++ b/variants/pybadge_m4/variant.h @@ -205,6 +205,9 @@ static const uint8_t SCL = PIN_WIRE_SCL; */ #define I2S_INTERFACES_COUNT 0 +// On-board QSPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q16C +#define EXTERNAL_FLASH_USE_QSPI //QSPI Pins #define PIN_QSPI_SCK (35u) diff --git a/variants/pygamer_advance_m4/variant.h b/variants/pygamer_advance_m4/variant.h index 56da524b..cd5e271d 100644 --- a/variants/pygamer_advance_m4/variant.h +++ b/variants/pygamer_advance_m4/variant.h @@ -196,6 +196,9 @@ static const uint8_t SCL = PIN_WIRE_SCL; */ #define I2S_INTERFACES_COUNT 0 +// On-board QSPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q16C +#define EXTERNAL_FLASH_USE_QSPI //QSPI Pins #define PIN_QSPI_SCK (35u) diff --git a/variants/pygamer_m4/variant.h b/variants/pygamer_m4/variant.h index 71376333..12c5b4ff 100644 --- a/variants/pygamer_m4/variant.h +++ b/variants/pygamer_m4/variant.h @@ -197,6 +197,10 @@ static const uint8_t SCL = PIN_WIRE_SCL; #define I2S_INTERFACES_COUNT 0 +// On-board QSPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q64C +#define EXTERNAL_FLASH_USE_QSPI + //QSPI Pins #define PIN_QSPI_SCK (35u) #define PIN_QSPI_CS (36u) diff --git a/variants/pyportal_m4/variant.h b/variants/pyportal_m4/variant.h index 4846def9..b159bd7e 100644 --- a/variants/pyportal_m4/variant.h +++ b/variants/pyportal_m4/variant.h @@ -191,6 +191,10 @@ static const uint8_t SCL = PIN_WIRE_SCL; #define PIN_USB_DM (48ul) #define PIN_USB_DP (49ul) +// On-board QSPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q64C +#define EXTERNAL_FLASH_USE_QSPI + //QSPI Pins #define PIN_QSPI_SCK (42u) #define PIN_QSPI_CS (43u) diff --git a/variants/pyportal_m4_titano/variant.h b/variants/pyportal_m4_titano/variant.h index 0ddc09ea..3072826f 100644 --- a/variants/pyportal_m4_titano/variant.h +++ b/variants/pyportal_m4_titano/variant.h @@ -190,6 +190,10 @@ static const uint8_t SCL = PIN_WIRE_SCL; #define PIN_USB_DM (48ul) #define PIN_USB_DP (49ul) +// On-board QSPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q64C +#define EXTERNAL_FLASH_USE_QSPI + //QSPI Pins #define PIN_QSPI_SCK (42u) #define PIN_QSPI_CS (43u) diff --git a/variants/trellis_m4/variant.h b/variants/trellis_m4/variant.h index d93b12e3..46e66b75 100644 --- a/variants/trellis_m4/variant.h +++ b/variants/trellis_m4/variant.h @@ -194,6 +194,10 @@ static const uint8_t SCL1 = PIN_WIRE_SCL; #define I2S_DEVICE 0 // no I2S on G19! +// On-board QSPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q64C +#define EXTERNAL_FLASH_USE_QSPI + //QSPI Pins #define PIN_QSPI_SCK (23u) #define PIN_QSPI_CS (24u) From b09a92698ad5f189d066476738bcb150f8e798db Mon Sep 17 00:00:00 2001 From: Lady Ada Date: Sat, 1 Feb 2020 22:00:17 -0500 Subject: [PATCH 02/28] & circuitplay too! --- variants/circuitplay/variant.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/variants/circuitplay/variant.h b/variants/circuitplay/variant.h index bb4f16d5..10af1a15 100644 --- a/variants/circuitplay/variant.h +++ b/variants/circuitplay/variant.h @@ -108,6 +108,12 @@ static const uint8_t DAC0 = PIN_DAC0; #define ADC_RESOLUTION 12 + +// On-board SPI Flash +#define EXTERNAL_FLASH_DEVICES GD25Q16C +#define EXTERNAL_FLASH_USE_SPI SPI +#define EXTERNAL_FLASH_USE_CS SS + /* * SPI Interfaces */ From b13e6c68b597d825da08834762ca003cbfe6187a Mon Sep 17 00:00:00 2001 From: Ha Thach Date: Mon, 3 Feb 2020 14:23:30 +0700 Subject: [PATCH 03/28] Update platform.txt Increase version for release 1.5.10 --- platform.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.txt b/platform.txt index 4a6ae1e1..d2887e1d 100644 --- a/platform.txt +++ b/platform.txt @@ -20,7 +20,7 @@ # https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification name=Adafruit SAMD (32-bits ARM Cortex-M0+ and Cortex-M4) Boards -version=1.5.9 +version=1.5.10 # Compile variables # ----------------- From a5271b3d1cc86ae663bca33d5662b556adddd3b8 Mon Sep 17 00:00:00 2001 From: GMagician Date: Sat, 8 Feb 2020 23:42:15 +0100 Subject: [PATCH 04/28] Update total pins pin 95 is onboard SD detect. Real total pins is then 96 not 95 --- variants/grand_central_m4/variant.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/variants/grand_central_m4/variant.h b/variants/grand_central_m4/variant.h index c288d016..3092191b 100644 --- a/variants/grand_central_m4/variant.h +++ b/variants/grand_central_m4/variant.h @@ -57,7 +57,7 @@ extern "C" *----------------------------------------------------------------------------*/ // Number of pins defined in PinDescription array -#define PINS_COUNT (94) +#define PINS_COUNT (96) #define NUM_DIGITAL_PINS (53) #define NUM_ANALOG_INPUTS (19) #define NUM_ANALOG_OUTPUTS (2) From bfba9812b7973fbb202526e93f3e28d1c0991430 Mon Sep 17 00:00:00 2001 From: hathach Date: Tue, 11 Feb 2020 10:10:12 +0700 Subject: [PATCH 05/28] add fake CI_Tests.h header to make Arduino happy --- libraries/CI_Tests/CI_Tests.h | 1 + 1 file changed, 1 insertion(+) create mode 100644 libraries/CI_Tests/CI_Tests.h diff --git a/libraries/CI_Tests/CI_Tests.h b/libraries/CI_Tests/CI_Tests.h new file mode 100644 index 00000000..2cfb22ac --- /dev/null +++ b/libraries/CI_Tests/CI_Tests.h @@ -0,0 +1 @@ +// fake empty header file to make Arduino IDE happy From aa21fb1e1386fd0c5c2bb38b72040b497aa1ab8e Mon Sep 17 00:00:00 2001 From: Ha Thach Date: Thu, 27 Feb 2020 00:09:20 +0700 Subject: [PATCH 06/28] increase version 1.5.11 for release --- platform.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.txt b/platform.txt index d2887e1d..7466024e 100644 --- a/platform.txt +++ b/platform.txt @@ -20,7 +20,7 @@ # https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification name=Adafruit SAMD (32-bits ARM Cortex-M0+ and Cortex-M4) Boards -version=1.5.10 +version=1.5.11 # Compile variables # ----------------- From 1112d77c3dc7a8ab7e8dc6e0193a7fbb95840fad Mon Sep 17 00:00:00 2001 From: David Gauchard Date: Thu, 5 Mar 2020 18:25:12 +0100 Subject: [PATCH 07/28] less warnings on featherM0 --- cores/arduino/math_helper.c | 6 ++++-- cores/arduino/wiring_analog.c | 2 +- libraries/SPI/SPI.h | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/cores/arduino/math_helper.c b/cores/arduino/math_helper.c index da6d47b0..477d4616 100644 --- a/cores/arduino/math_helper.c +++ b/cores/arduino/math_helper.c @@ -164,7 +164,8 @@ void arm_float_to_q12_20(float *pIn, q31_t * pOut, uint32_t numSamples) uint32_t arm_compare_fixed_q15(q15_t *pIn, q15_t * pOut, uint32_t numSamples) { uint32_t i; - int32_t diff, diffCrnt = 0; + int32_t diff; + uint32_t diffCrnt; uint32_t maxDiff = 0; for (i = 0; i < numSamples; i++) @@ -192,7 +193,8 @@ uint32_t arm_compare_fixed_q15(q15_t *pIn, q15_t * pOut, uint32_t numSamples) uint32_t arm_compare_fixed_q31(q31_t *pIn, q31_t * pOut, uint32_t numSamples) { uint32_t i; - int32_t diff, diffCrnt = 0; + int32_t diff; + uint32_t diffCrnt; uint32_t maxDiff = 0; for (i = 0; i < numSamples; i++) diff --git a/cores/arduino/wiring_analog.c b/cores/arduino/wiring_analog.c index 13a0191b..f809c32a 100644 --- a/cores/arduino/wiring_analog.c +++ b/cores/arduino/wiring_analog.c @@ -32,7 +32,7 @@ static int _writeResolution = 12; static int _dacResolution = 12; #else static int _writeResolution = 8; -static int _dacResolution = 10; +//static int _dacResolution = 10; #endif diff --git a/libraries/SPI/SPI.h b/libraries/SPI/SPI.h index b87175ea..48c3cb7b 100644 --- a/libraries/SPI/SPI.h +++ b/libraries/SPI/SPI.h @@ -149,7 +149,7 @@ class SPIClass { #else // On SAMD21, this compiles to nothing, so user code doesn't need to // check and conditionally compile lines for different architectures. - void setClockSource(SercomClockSource clk) { }; + void setClockSource(__attribute__((unused)) SercomClockSource clk) { }; #endif // end __SAMD51__ private: From f564235648db4f2f6a39f72ab0198822e748b8e1 Mon Sep 17 00:00:00 2001 From: hathach Date: Tue, 21 Apr 2020 12:05:51 +0700 Subject: [PATCH 08/28] update tinyusb core and samd port --- .../TinyUSB/Adafruit_TinyUSB_ArduinoCore | 2 +- .../arduino/TinyUSB/Adafruit_TinyUSB_SAMD.cpp | 30 +++++++++++++------ 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore b/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore index 09968245..b9524667 160000 --- a/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore +++ b/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore @@ -1 +1 @@ -Subproject commit 09968245ad675377f2265717f0e138d5dccb39a3 +Subproject commit b9524667ad23b4e56ab6eef675c5c905db4c7c3f diff --git a/cores/arduino/TinyUSB/Adafruit_TinyUSB_SAMD.cpp b/cores/arduino/TinyUSB/Adafruit_TinyUSB_SAMD.cpp index d3e306b0..f9359e19 100644 --- a/cores/arduino/TinyUSB/Adafruit_TinyUSB_SAMD.cpp +++ b/cores/arduino/TinyUSB/Adafruit_TinyUSB_SAMD.cpp @@ -28,6 +28,27 @@ #include "Adafruit_TinyUSB_Core.h" #include // Needed for auto-reset with 1200bps port touch +//--------------------------------------------------------------------+ +// Forward USB interrupt events to TinyUSB IRQ Handler +//--------------------------------------------------------------------+ +extern "C" +{ +#if defined(__SAMD51__) + +void USB_0_Handler (void) { tud_int_handler(0); } +void USB_1_Handler (void) { tud_int_handler(0); } +void USB_2_Handler (void) { tud_int_handler(0); } +void USB_3_Handler (void) { tud_int_handler(0); } + +#else + +void USBD_IRQHandler(void) { tud_int_handler(0); } + +#endif +} // extern C + + + //--------------------------------------------------------------------+ // MACRO TYPEDEF CONSTANT ENUM DECLARATION //--------------------------------------------------------------------+ @@ -74,15 +95,6 @@ void Adafruit_TinyUSB_Core_touch1200(void) //--------------------------------------------------------------------+ // Adafruit_USBD_Device platform dependent //--------------------------------------------------------------------+ -void Adafruit_USBD_Device::detach(void) -{ - USB->DEVICE.CTRLB.reg |= USB_DEVICE_CTRLB_DETACH; -} - -void Adafruit_USBD_Device::attach(void) -{ - USB->DEVICE.CTRLB.reg &= ~USB_DEVICE_CTRLB_DETACH; -} uint8_t Adafruit_USBD_Device::getSerialDescriptor(uint16_t* serial_str) { From 72ebc1a809a841fa4b1a1a60becd1eaa7bf620f0 Mon Sep 17 00:00:00 2001 From: hathach Date: Wed, 22 Apr 2020 00:20:50 +0700 Subject: [PATCH 09/28] sync with tinyusb commit 1d33aa9 fix issue with MIDI sysex driver --- cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore b/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore index b9524667..57244c13 160000 --- a/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore +++ b/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore @@ -1 +1 @@ -Subproject commit b9524667ad23b4e56ab6eef675c5c905db4c7c3f +Subproject commit 57244c13a72583c1b5a7f1e16cd8358c79d9e335 From aa9792167d8fe8f91e0389c7da3bda685922831c Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Tue, 21 Apr 2020 20:28:02 +0200 Subject: [PATCH 10/28] tinyusb: MIDI - Increase buffer size We only transfer new packets when 64 bytes are available in the FIFO buffer. This increase the buffer, so we can receive the next new packet while still processing the current one. --- cores/arduino/TinyUSB/tusb_config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cores/arduino/TinyUSB/tusb_config.h b/cores/arduino/TinyUSB/tusb_config.h index 955fa0ef..70ddbeb6 100644 --- a/cores/arduino/TinyUSB/tusb_config.h +++ b/cores/arduino/TinyUSB/tusb_config.h @@ -79,8 +79,8 @@ #define CFG_TUD_HID_BUFSIZE 64 // MIDI FIFO size of TX and RX -#define CFG_TUD_MIDI_RX_BUFSIZE 64 -#define CFG_TUD_MIDI_TX_BUFSIZE 64 +#define CFG_TUD_MIDI_RX_BUFSIZE 128 +#define CFG_TUD_MIDI_TX_BUFSIZE 128 // Vendor FIFO size of TX and RX #define CFG_TUD_VENDOR_RX_BUFSIZE 64 From d56901d13b0fa4b6995626f9150eeb6b2af7da08 Mon Sep 17 00:00:00 2001 From: Ha Thach Date: Wed, 22 Apr 2020 11:41:28 +0700 Subject: [PATCH 11/28] increase version to release 1.5.12 --- platform.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.txt b/platform.txt index 7466024e..57fd7a56 100644 --- a/platform.txt +++ b/platform.txt @@ -20,7 +20,7 @@ # https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification name=Adafruit SAMD (32-bits ARM Cortex-M0+ and Cortex-M4) Boards -version=1.5.11 +version=1.5.12 # Compile variables # ----------------- From 159ae8e5507774b972198f51ebaad479354f178c Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 23 Apr 2020 23:44:46 +0700 Subject: [PATCH 12/28] Update TinyUSB to commit c59fa77 due to a bug in the stack increase version 1.5.13 --- cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore | 2 +- platform.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore b/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore index 57244c13..f96bfb25 160000 --- a/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore +++ b/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore @@ -1 +1 @@ -Subproject commit 57244c13a72583c1b5a7f1e16cd8358c79d9e335 +Subproject commit f96bfb250c06c447600e1befbc6601b49672d381 diff --git a/platform.txt b/platform.txt index 57fd7a56..dba7a135 100644 --- a/platform.txt +++ b/platform.txt @@ -20,7 +20,7 @@ # https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification name=Adafruit SAMD (32-bits ARM Cortex-M0+ and Cortex-M4) Boards -version=1.5.12 +version=1.5.13 # Compile variables # ----------------- From 6d6e5b1ee9eaf33521d4da69458ccf2381c35396 Mon Sep 17 00:00:00 2001 From: hathach Date: Mon, 4 May 2020 22:00:22 +0700 Subject: [PATCH 13/28] fix incorrect USB IRQ typo for samd --- cores/arduino/TinyUSB/Adafruit_TinyUSB_SAMD.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/arduino/TinyUSB/Adafruit_TinyUSB_SAMD.cpp b/cores/arduino/TinyUSB/Adafruit_TinyUSB_SAMD.cpp index f9359e19..0cf315b5 100644 --- a/cores/arduino/TinyUSB/Adafruit_TinyUSB_SAMD.cpp +++ b/cores/arduino/TinyUSB/Adafruit_TinyUSB_SAMD.cpp @@ -42,7 +42,7 @@ void USB_3_Handler (void) { tud_int_handler(0); } #else -void USBD_IRQHandler(void) { tud_int_handler(0); } +void USB_Handler(void) { tud_int_handler(0); } #endif } // extern C From 52d793ed8e496466d46f82a25cc1b4894d592b62 Mon Sep 17 00:00:00 2001 From: Ha Thach Date: Mon, 4 May 2020 22:11:14 +0700 Subject: [PATCH 14/28] release 1.5.14 fix samd21 USB IRQ typo, --- platform.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.txt b/platform.txt index dba7a135..13d2ce5a 100644 --- a/platform.txt +++ b/platform.txt @@ -20,7 +20,7 @@ # https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification name=Adafruit SAMD (32-bits ARM Cortex-M0+ and Cortex-M4) Boards -version=1.5.13 +version=1.5.14 # Compile variables # ----------------- From dad77cd8cc2c767f51aeacda868ce54df111cf02 Mon Sep 17 00:00:00 2001 From: Noah Laptop Date: Thu, 28 May 2020 17:20:30 -0700 Subject: [PATCH 15/28] add SERCOM patch from arduino SAMD core --- cores/arduino/SERCOM.cpp | 29 +++++++++++++++++++++++++++-- cores/arduino/SERCOM.h | 3 +++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/cores/arduino/SERCOM.cpp b/cores/arduino/SERCOM.cpp index d993ca04..9a75730f 100644 --- a/cores/arduino/SERCOM.cpp +++ b/cores/arduino/SERCOM.cpp @@ -537,8 +537,18 @@ bool SERCOM::startTransmissionWIRE(uint8_t address, SercomWireReadWriteFlag flag // 7-bits address + 1-bits R/W address = (address << 0x1ul) | flag; - // Wait idle or owner bus mode - while ( !isBusIdleWIRE() && !isBusOwnerWIRE() ); + // If another master owns the bus or the last bus owner has not properly + // sent a stop, return failure early. This will prevent some misbehaved + // devices from deadlocking here at the cost of the caller being responsible + // for retrying the failed transmission. See SercomWireBusState for the + // possible bus states. + if(!isBusOwnerWIRE()) + { + if( isBusBusyWIRE() || (isArbLostWIRE() && !isBusIdleWIRE()) || isBusUnknownWIRE() ) + { + return false; + } + } // Send start and address sercom->I2CM.ADDR.bit.ADDR = address; @@ -634,6 +644,21 @@ bool SERCOM::isBusOwnerWIRE( void ) return sercom->I2CM.STATUS.bit.BUSSTATE == WIRE_OWNER_STATE; } +bool SERCOM::isBusUnknownWIRE( void ) +{ + return sercom->I2CM.STATUS.bit.BUSSTATE == WIRE_UNKNOWN_STATE; +} + +bool SERCOM::isArbLostWIRE( void ) +{ + return sercom->I2CM.STATUS.bit.ARBLOST == 1; +} + +bool SERCOM::isBusBusyWIRE( void ) +{ + return sercom->I2CM.STATUS.bit.BUSSTATE == WIRE_BUSY_STATE; +} + bool SERCOM::isDataReadyWIRE( void ) { return sercom->I2CS.INTFLAG.bit.DRDY; diff --git a/cores/arduino/SERCOM.h b/cores/arduino/SERCOM.h index 4b392989..b60c245f 100644 --- a/cores/arduino/SERCOM.h +++ b/cores/arduino/SERCOM.h @@ -225,6 +225,9 @@ class SERCOM bool isSlaveWIRE( void ) ; bool isBusIdleWIRE( void ) ; bool isBusOwnerWIRE( void ) ; + bool isBusUnknownWIRE( void ) ; + bool isArbLostWIRE( void ); + bool isBusBusyWIRE( void ); bool isDataReadyWIRE( void ) ; bool isStopDetectedWIRE( void ) ; bool isRestartDetectedWIRE( void ) ; From fdddb19a3cb152902d8b16e6606ca7dbf49b293f Mon Sep 17 00:00:00 2001 From: lady ada Date: Tue, 23 Jun 2020 14:57:52 -0400 Subject: [PATCH 16/28] add BLE uart test support --- cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore | 2 +- variants/metro_m4_airlift/variant.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore b/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore index f96bfb25..09968245 160000 --- a/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore +++ b/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore @@ -1 +1 @@ -Subproject commit f96bfb250c06c447600e1befbc6601b49672d381 +Subproject commit 09968245ad675377f2265717f0e138d5dccb39a3 diff --git a/variants/metro_m4_airlift/variant.h b/variants/metro_m4_airlift/variant.h index 7b754792..d078f209 100644 --- a/variants/metro_m4_airlift/variant.h +++ b/variants/metro_m4_airlift/variant.h @@ -131,7 +131,8 @@ static const uint8_t ATN = PIN_ATN; #define NINA_GPIO0 ESP32_GPIO0 #define NINA_RESETN ESP32_RESETN #define NINA_ACK SPIWIFI_ACK - +#define NINA_CTS SPIWIFI_ACK +#define NINA_RTS NINA_GPIO0 /* * Serial interfaces From ff82b735f25b51aceaa9718bd92e1b903f25308e Mon Sep 17 00:00:00 2001 From: hathach Date: Sun, 5 Jul 2020 22:40:37 +0700 Subject: [PATCH 17/28] remove gcc 7-2017q4 specific --- platform.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.txt b/platform.txt index 13d2ce5a..61009d5d 100644 --- a/platform.txt +++ b/platform.txt @@ -31,7 +31,7 @@ compiler.warning_flags.default= compiler.warning_flags.more=-Wall -Wno-expansion-to-defined compiler.warning_flags.all=-Wall -Wextra -Wno-expansion-to-defined -compiler.path={runtime.tools.arm-none-eabi-gcc-7-2017q4.path}/bin/ +compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/ compiler.c.cmd=arm-none-eabi-gcc compiler.c.flags=-mcpu={build.mcu} -mthumb -c -g -Os {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -nostdlib --param max-inline-insns-single=500 -MMD -D__SKETCH_NAME__="""{build.project_name}""" compiler.c.elf.cmd=arm-none-eabi-g++ From 00a863c100a2d927a0a626ae1f782b8a476fa500 Mon Sep 17 00:00:00 2001 From: hathach Date: Sun, 5 Jul 2020 22:57:02 +0700 Subject: [PATCH 18/28] update tinyusb to 0749077 --- cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore b/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore index 09968245..07490772 160000 --- a/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore +++ b/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore @@ -1 +1 @@ -Subproject commit 09968245ad675377f2265717f0e138d5dccb39a3 +Subproject commit 07490772a559b2b0cac8aa187566aff4bec7376a From 246c75a1ae9e6e502c09e4e24eae2e2913c4f52b Mon Sep 17 00:00:00 2001 From: hathach Date: Sun, 5 Jul 2020 22:57:40 +0700 Subject: [PATCH 19/28] bump up version for 1.5.15 --- platform.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.txt b/platform.txt index 61009d5d..61915698 100644 --- a/platform.txt +++ b/platform.txt @@ -20,7 +20,7 @@ # https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification name=Adafruit SAMD (32-bits ARM Cortex-M0+ and Cortex-M4) Boards -version=1.5.14 +version=1.5.15 # Compile variables # ----------------- From 290f3d63088021829b16ca04f9bb250d0b14beaf Mon Sep 17 00:00:00 2001 From: hathach Date: Mon, 6 Jul 2020 16:22:30 +0700 Subject: [PATCH 20/28] update cmsis from 4.5.0 to 5.4.0 --- boards.txt | 28 ++++++++++++++-------------- cores/arduino/WInterrupts.h | 2 +- platform.txt | 4 ++-- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/boards.txt b/boards.txt index 9c68368b..5d922d90 100644 --- a/boards.txt +++ b/boards.txt @@ -448,7 +448,7 @@ adafruit_metro_m4.build.vid=0x239A adafruit_metro_m4.build.pid=0x8020 adafruit_metro_m4.bootloader.tool=openocd adafruit_metro_m4.bootloader.file=metroM4/bootloader-metro_m4-v2.0.0-adafruit.5.bin -adafruit_metro_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 +adafruit_metro_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 adafruit_metro_m4.menu.cache.on=Enabled adafruit_metro_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_metro_m4.menu.cache.off=Disabled @@ -514,7 +514,7 @@ adafruit_grandcentral_m4.build.vid=0x239A adafruit_grandcentral_m4.build.pid=0x8031 adafruit_grandcentral_m4.bootloader.tool=openocd adafruit_grandcentral_m4.bootloader.file=grand_central_m4/bootloader-grandcentralM4-v2.0.0-adafruit.5.bin -adafruit_grandcentral_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 +adafruit_grandcentral_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 adafruit_grandcentral_m4.menu.cache.on=Enabled adafruit_grandcentral_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_grandcentral_m4.menu.cache.off=Disabled @@ -577,7 +577,7 @@ adafruit_itsybitsy_m4.build.vid=0x239A adafruit_itsybitsy_m4.build.pid=0x802B adafruit_itsybitsy_m4.bootloader.tool=openocd adafruit_itsybitsy_m4.bootloader.file=itsybitsyM4/bootloader-itsybitsy_m4-v2.0.0-adafruit.5.bin -adafruit_itsybitsy_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 +adafruit_itsybitsy_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 adafruit_itsybitsy_m4.menu.cache.on=Enabled adafruit_itsybitsy_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_itsybitsy_m4.menu.cache.off=Disabled @@ -640,7 +640,7 @@ adafruit_feather_m4.build.vid=0x239A adafruit_feather_m4.build.pid=0x8022 adafruit_feather_m4.bootloader.tool=openocd adafruit_feather_m4.bootloader.file=featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin -adafruit_feather_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 +adafruit_feather_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 adafruit_feather_m4.menu.cache.on=Enabled adafruit_feather_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_feather_m4.menu.cache.off=Disabled @@ -705,7 +705,7 @@ adafruit_trellis_m4.build.vid=0x239A adafruit_trellis_m4.build.pid=0x802F adafruit_trellis_m4.bootloader.tool=openocd adafruit_trellis_m4.bootloader.file=trellisM4/bootloader-trellis_m4-v2.0.0-adafruit.5.bin -adafruit_trellis_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 +adafruit_trellis_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 adafruit_trellis_m4.menu.cache.on=Enabled adafruit_trellis_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_trellis_m4.menu.cache.off=Disabled @@ -768,7 +768,7 @@ adafruit_pyportal_m4.build.vid=0x239A adafruit_pyportal_m4.build.pid=0x8035 adafruit_pyportal_m4.bootloader.tool=openocd adafruit_pyportal_m4.bootloader.file=metroM4/bootloader-metro_m4-v2.0.0-adafruit.5.bin -adafruit_pyportal_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 +adafruit_pyportal_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 adafruit_pyportal_m4.menu.cache.on=Enabled adafruit_pyportal_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_pyportal_m4.menu.cache.off=Disabled @@ -831,7 +831,7 @@ adafruit_pyportal_m4_titano.build.vid=0x239A adafruit_pyportal_m4_titano.build.pid=0x8035 adafruit_pyportal_m4_titano.bootloader.tool=openocd adafruit_pyportal_m4_titano.bootloader.file=metroM4/bootloader-metro_m4-v2.0.0-adafruit.5.bin -adafruit_pyportal_m4_titano.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 +adafruit_pyportal_m4_titano.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 adafruit_pyportal_m4_titano.menu.cache.on=Enabled adafruit_pyportal_m4_titano.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_pyportal_m4_titano.menu.cache.off=Disabled @@ -896,7 +896,7 @@ adafruit_pybadge_m4.build.vid=0x239A adafruit_pybadge_m4.build.pid=0x8033 adafruit_pybadge_m4.bootloader.tool=openocd adafruit_pybadge_m4.bootloader.file=featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin -adafruit_pybadge_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 +adafruit_pybadge_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 adafruit_pybadge_m4.menu.cache.on=Enabled adafruit_pybadge_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_pybadge_m4.menu.cache.off=Disabled @@ -960,7 +960,7 @@ adafruit_metro_m4_airliftlite.build.vid=0x239A adafruit_metro_m4_airliftlite.build.pid=0x8037 adafruit_metro_m4_airliftlite.bootloader.tool=openocd adafruit_metro_m4_airliftlite.bootloader.file=metroM4/bootloader-metro_m4-v2.0.0-adafruit.5.bin -adafruit_metro_m4_airliftlite.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 +adafruit_metro_m4_airliftlite.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 adafruit_metro_m4_airliftlite.menu.cache.on=Enabled adafruit_metro_m4_airliftlite.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_metro_m4_airliftlite.menu.cache.off=Disabled @@ -1025,7 +1025,7 @@ adafruit_pygamer_m4.build.vid=0x239A adafruit_pygamer_m4.build.pid=0x803D adafruit_pygamer_m4.bootloader.tool=openocd adafruit_pygamer_m4.bootloader.file=featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin -adafruit_pygamer_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 +adafruit_pygamer_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 adafruit_pygamer_m4.menu.cache.on=Enabled adafruit_pygamer_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_pygamer_m4.menu.cache.off=Disabled @@ -1089,7 +1089,7 @@ adafruit_pygamer_advance_m4.build.vid=0x239A adafruit_pygamer_advance_m4.build.pid=0x8041 adafruit_pygamer_advance_m4.bootloader.tool=openocd adafruit_pygamer_advance_m4.bootloader.file=featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin -adafruit_pygamer_advance_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 +adafruit_pygamer_advance_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 adafruit_pygamer_advance_m4.menu.cache.on=Enabled adafruit_pygamer_advance_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_pygamer_advance_m4.menu.cache.off=Disabled @@ -1155,7 +1155,7 @@ adafruit_pybadge_airlift_m4.build.vid=0x239A adafruit_pybadge_airlift_m4.build.pid=0x8043 adafruit_pybadge_airlift_m4.bootloader.tool=openocd adafruit_pybadge_airlift_m4.bootloader.file=featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin -adafruit_pybadge_airlift_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 +adafruit_pybadge_airlift_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 adafruit_pybadge_airlift_m4.menu.cache.on=Enabled adafruit_pybadge_airlift_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_pybadge_airlift_m4.menu.cache.off=Disabled @@ -1221,7 +1221,7 @@ adafruit_monster_m4sk.build.vid=0x239A adafruit_monster_m4sk.build.pid=0x8047 adafruit_monster_m4sk.bootloader.tool=openocd adafruit_monster_m4sk.bootloader.file=featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin -adafruit_monster_m4sk.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 +adafruit_monster_m4sk.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 adafruit_monster_m4sk.menu.cache.on=Enabled adafruit_monster_m4sk.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_monster_m4sk.menu.cache.off=Disabled @@ -1287,7 +1287,7 @@ adafruit_hallowing_m4.build.vid=0x239A adafruit_hallowing_m4.build.pid=0x8049 adafruit_hallowing_m4.bootloader.tool=openocd adafruit_hallowing_m4.bootloader.file=featherM4/bootloader-feather_m4-v2.0.0-adafruit.5.bin -adafruit_hallowing_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 +adafruit_hallowing_m4.compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" "-L{build.variant.path}" -larm_cortexM4lf_math -mfloat-abi=hard -mfpu=fpv4-sp-d16 adafruit_hallowing_m4.menu.cache.on=Enabled adafruit_hallowing_m4.menu.cache.on.build.cache_flags=-DENABLE_CACHE adafruit_hallowing_m4.menu.cache.off=Disabled diff --git a/cores/arduino/WInterrupts.h b/cores/arduino/WInterrupts.h index 5d2b24a0..daf02afe 100644 --- a/cores/arduino/WInterrupts.h +++ b/cores/arduino/WInterrupts.h @@ -31,7 +31,7 @@ extern "C" { #define FALLING 3 #define RISING 4 -#define DEFAULT 1 +//#define DEFAULT 1 #define EXTERNAL 0 typedef void (*voidFuncPtr)(void); diff --git a/platform.txt b/platform.txt index 61915698..b80b9364 100644 --- a/platform.txt +++ b/platform.txt @@ -70,8 +70,8 @@ compiler.S.extra_flags= compiler.ar.extra_flags= compiler.elf2hex.extra_flags= -compiler.arm.cmsis.c.flags="-I{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Include/" "-I{runtime.tools.CMSIS-Atmel-1.2.0.path}/CMSIS/Device/ATMEL/" -compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-4.5.0.path}/CMSIS/Lib/GCC/" -larm_cortexM0l_math +compiler.arm.cmsis.c.flags="-I{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Core/Include/" "-I{runtime.tools.CMSIS-5.4.0.path}/CMSIS/DSP/Include/" "-I{runtime.tools.CMSIS-Atmel-1.2.0.path}/CMSIS/Device/ATMEL/" +compiler.arm.cmsis.ldflags="-L{runtime.tools.CMSIS-5.4.0.path}/CMSIS/Lib/GCC/" -larm_cortexM0l_math compiler.libraries.ldflags= From 53c92d46e9e8be67b69d5f04e2a90c9e5094aba7 Mon Sep 17 00:00:00 2001 From: Ha Thach Date: Tue, 7 Jul 2020 09:37:15 +0700 Subject: [PATCH 21/28] Increase version to 1.6.0 per review --- platform.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.txt b/platform.txt index b80b9364..5b024a2c 100644 --- a/platform.txt +++ b/platform.txt @@ -20,7 +20,7 @@ # https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification name=Adafruit SAMD (32-bits ARM Cortex-M0+ and Cortex-M4) Boards -version=1.5.15 +version=1.6.0 # Compile variables # ----------------- From 2569103e1ab26a9fff294729cd9214374fcf0402 Mon Sep 17 00:00:00 2001 From: hathach Date: Mon, 13 Jul 2020 18:26:29 +0700 Subject: [PATCH 22/28] move test_cmsis_fast_rfft example to its own folder to fix ci build --- .../examples/{ => test_cmsis_fast_rfft}/test_cmsis_fast_rfft.ino | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename libraries/CI_Tests/examples/{ => test_cmsis_fast_rfft}/test_cmsis_fast_rfft.ino (100%) diff --git a/libraries/CI_Tests/examples/test_cmsis_fast_rfft.ino b/libraries/CI_Tests/examples/test_cmsis_fast_rfft/test_cmsis_fast_rfft.ino similarity index 100% rename from libraries/CI_Tests/examples/test_cmsis_fast_rfft.ino rename to libraries/CI_Tests/examples/test_cmsis_fast_rfft/test_cmsis_fast_rfft.ino From 50f9be154422608e3c3dd1423ee131998704d464 Mon Sep 17 00:00:00 2001 From: Ha Thach Date: Tue, 21 Jul 2020 18:37:20 +0700 Subject: [PATCH 23/28] increase 1.6.1 for release --- platform.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.txt b/platform.txt index 5b024a2c..f0fc74cf 100644 --- a/platform.txt +++ b/platform.txt @@ -20,7 +20,7 @@ # https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification name=Adafruit SAMD (32-bits ARM Cortex-M0+ and Cortex-M4) Boards -version=1.6.0 +version=1.6.1 # Compile variables # ----------------- From 57db4d71323bd5c3737dfcf8e2ad84c753f89b0c Mon Sep 17 00:00:00 2001 From: NanoCodeBug <46458523+NanoCodeBug@users.noreply.github.com> Date: Tue, 21 Jul 2020 22:07:38 -0700 Subject: [PATCH 24/28] Fix external pin interrupt definitions for Feather M4 Spent a while trying to figure out why analog pins A4/18 and A5/19 where not working as interrupts, turns out the external interrupt definitions are wrong in-code. These fixed definitions now match the published pinout diagram for the feather m4 and the samd51 datasheet. --- variants/feather_m4/variant.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/variants/feather_m4/variant.cpp b/variants/feather_m4/variant.cpp index 7f7dab2f..88ba1ff6 100644 --- a/variants/feather_m4/variant.cpp +++ b/variants/feather_m4/variant.cpp @@ -62,8 +62,8 @@ const PinDescription g_APinDescription[]= { PORTA, 5, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, { PORTB, 8, PIO_ANALOG, (PIN_ATTR_ANALOG|PIN_ATTR_PWM_E), ADC_Channel2, TC4_CH0, TC4_CH0, EXTERNAL_INT_8 }, { PORTB, 9, PIO_ANALOG, (PIN_ATTR_ANALOG|PIN_ATTR_PWM_E), ADC_Channel3, TC4_CH1, TC4_CH1, EXTERNAL_INT_9 }, - { PORTA, 4, PIO_ANALOG, (PIN_ATTR_ANALOG|PIN_ATTR_PWM_E), ADC_Channel4, TC0_CH0, TC0_CH0, EXTERNAL_INT_6 }, - { PORTA, 6, PIO_ANALOG, (PIN_ATTR_ANALOG|PIN_ATTR_PWM_E), ADC_Channel6, TC1_CH0, TC1_CH0, EXTERNAL_INT_10 }, + { PORTA, 4, PIO_ANALOG, (PIN_ATTR_ANALOG|PIN_ATTR_PWM_E), ADC_Channel4, TC0_CH0, TC0_CH0, EXTERNAL_INT_4 }, + { PORTA, 6, PIO_ANALOG, (PIN_ATTR_ANALOG|PIN_ATTR_PWM_E), ADC_Channel6, TC1_CH0, TC1_CH0, EXTERNAL_INT_6 }, // A6, D20 - VDiv! { PORTB, 1, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel13, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, From 2555c2d68aa0c6ce035557c7daacea189a34fa5a Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 23 Jul 2020 07:02:41 +0700 Subject: [PATCH 25/28] sync with Adafruit_TinyUSB_ArduinoCore commit 238a5c0b95fcd402d24524c7bebbdd822168a51e --- cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore | 2 +- cores/arduino/TinyUSB/Adafruit_TinyUSB_SAMD.cpp | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore b/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore index 07490772..238a5c0b 160000 --- a/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore +++ b/cores/arduino/TinyUSB/Adafruit_TinyUSB_ArduinoCore @@ -1 +1 @@ -Subproject commit 07490772a559b2b0cac8aa187566aff4bec7376a +Subproject commit 238a5c0b95fcd402d24524c7bebbdd822168a51e diff --git a/cores/arduino/TinyUSB/Adafruit_TinyUSB_SAMD.cpp b/cores/arduino/TinyUSB/Adafruit_TinyUSB_SAMD.cpp index 0cf315b5..d9850bef 100644 --- a/cores/arduino/TinyUSB/Adafruit_TinyUSB_SAMD.cpp +++ b/cores/arduino/TinyUSB/Adafruit_TinyUSB_SAMD.cpp @@ -164,6 +164,11 @@ static void usb_hardware_init(void) GCLK->PCHCTRL[USB_GCLK_ID].reg = GCLK_PCHCTRL_GEN_GCLK1_Val | (1 << GCLK_PCHCTRL_CHEN_Pos); + + NVIC_SetPriority(USB_0_IRQn, 0UL); + NVIC_SetPriority(USB_1_IRQn, 0UL); + NVIC_SetPriority(USB_2_IRQn, 0UL); + NVIC_SetPriority(USB_3_IRQn, 0UL); #else PM->APBBMASK.reg |= PM_APBBMASK_USB; @@ -181,6 +186,8 @@ static void usb_hardware_init(void) GCLK_CLKCTRL_CLKEN; while (GCLK->STATUS.bit.SYNCBUSY) ; + + NVIC_SetPriority((IRQn_Type) USB_IRQn, 0UL); #endif } From 860bc6c6b9fb5a61f31a1fcc55985b8720c4187e Mon Sep 17 00:00:00 2001 From: hathach Date: Fri, 24 Jul 2020 19:05:16 +0700 Subject: [PATCH 26/28] fix EXTINT for PA4 and PA6 follow up to #239 --- variants/hallowing_m4/variant.cpp | 2 +- variants/pybadge_m4/variant.cpp | 4 ++-- variants/pygamer_advance_m4/variant.cpp | 4 ++-- variants/pygamer_m4/variant.cpp | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/variants/hallowing_m4/variant.cpp b/variants/hallowing_m4/variant.cpp index 4d878749..ce1ab8eb 100644 --- a/variants/hallowing_m4/variant.cpp +++ b/variants/hallowing_m4/variant.cpp @@ -57,7 +57,7 @@ const PinDescription g_APinDescription[]= { PORTA, 6, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, // A2 { PORTB, 9, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel3, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_9 }, // A3 { PORTB, 8, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel2, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8 }, // A4 - { PORTA, 4, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, // A5 + { PORTA, 4, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // A5 { PORTB, 1, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel13, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // A6, D20 - vbatt { PORTB, 4, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // A7, D21 - Light diff --git a/variants/pybadge_m4/variant.cpp b/variants/pybadge_m4/variant.cpp index bd991fe0..a329d609 100644 --- a/variants/pybadge_m4/variant.cpp +++ b/variants/pybadge_m4/variant.cpp @@ -54,8 +54,8 @@ const PinDescription g_APinDescription[]= { PORTA, 5, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, { PORTB, 8, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel2, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8 }, { PORTB, 9, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel3, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_9 }, - { PORTA, 4, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, - { PORTA, 6, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, + { PORTA, 4, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, + { PORTA, 6, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, { PORTB, 1, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel13, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // A6, D20 - vbatt { PORTB, 4, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // A7, D21 - Light diff --git a/variants/pygamer_advance_m4/variant.cpp b/variants/pygamer_advance_m4/variant.cpp index 1aa16094..22cea8a1 100644 --- a/variants/pygamer_advance_m4/variant.cpp +++ b/variants/pygamer_advance_m4/variant.cpp @@ -54,8 +54,8 @@ const PinDescription g_APinDescription[]= { PORTA, 5, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, { PORTB, 8, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel2, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8 }, { PORTB, 9, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel3, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_9 }, - { PORTA, 4, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, - { PORTA, 6, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, + { PORTA, 4, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, + { PORTA, 6, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, { PORTB, 1, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel13, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // A6, D20 - vbatt { PORTB, 4, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // A7, D21 - Light diff --git a/variants/pygamer_m4/variant.cpp b/variants/pygamer_m4/variant.cpp index e1d852c6..e9c677e1 100644 --- a/variants/pygamer_m4/variant.cpp +++ b/variants/pygamer_m4/variant.cpp @@ -54,8 +54,8 @@ const PinDescription g_APinDescription[]= { PORTA, 5, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, { PORTB, 8, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel2, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8 }, { PORTB, 9, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel3, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_9 }, - { PORTA, 4, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, - { PORTA, 6, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, + { PORTA, 4, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, + { PORTA, 6, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, { PORTB, 1, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel13, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // A6, D20 - vbatt { PORTB, 4, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // A7, D21 - Light From 76f0206f01eeecd406964a71a927c632717ba9e2 Mon Sep 17 00:00:00 2001 From: hathach Date: Fri, 24 Jul 2020 23:05:48 +0700 Subject: [PATCH 27/28] fix all other incorrect EXTINT --- variants/crickit_m0/variant.cpp | 4 ++-- variants/gemma_m0/variant.cpp | 4 ++-- variants/hallowing_m4/variant.cpp | 4 ++-- variants/pirkey/variant.cpp | 4 ++-- variants/pybadge_m4/variant.cpp | 2 +- variants/pygamer_advance_m4/variant.cpp | 2 +- variants/pygamer_m4/variant.cpp | 2 +- variants/trellis_m4/variant.cpp | 8 ++++---- variants/trinket_m0/variant.cpp | 4 ++-- 9 files changed, 17 insertions(+), 17 deletions(-) diff --git a/variants/crickit_m0/variant.cpp b/variants/crickit_m0/variant.cpp index 50bcc81d..944e731e 100644 --- a/variants/crickit_m0/variant.cpp +++ b/variants/crickit_m0/variant.cpp @@ -72,7 +72,7 @@ const PinDescription g_APinDescription[]= { PORTA, 7, PIO_ANALOG, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), ADC_Channel7, PWM1_CH1, TCC1_CH1, EXTERNAL_INT_7 }, // Captouch 4 // A13 - VIN sense pin - { PORTB, 3, PIO_ANALOG, 0, ADC_Channel11, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // VIN sense divider + { PORTB, 3, PIO_ANALOG, 0, ADC_Channel11, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 }, // VIN sense divider /**************/ // 28..31 - 4 Motor PWM pins @@ -88,7 +88,7 @@ const PinDescription g_APinDescription[]= { PORTA, 25, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DP // 35..36 - fake sercom 5 serial - { PORTB, 2, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 }, // Sercom 5.0 UART TX + { PORTB, 2, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // Sercom 5.0 UART TX { PORTB, 23, PIO_SERCOM_ALT, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 }, // Sercom 5.3 UART RX } ; diff --git a/variants/gemma_m0/variant.cpp b/variants/gemma_m0/variant.cpp index 86245330..c0fa9700 100644 --- a/variants/gemma_m0/variant.cpp +++ b/variants/gemma_m0/variant.cpp @@ -36,8 +36,8 @@ const PinDescription g_APinDescription[]= // GPIO 3 & 4 - DotStar internal data/clock // ---------------------------------------- - { PORTA, 0, PIO_DIGITAL, 0, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // ADC/AIN[4] - { PORTA, 1, PIO_DIGITAL, 0, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // ADC/AIN[5] + { PORTA, 0, PIO_DIGITAL, 0, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_0 }, // ADC/AIN[4] + { PORTA, 1, PIO_DIGITAL, 0, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // ADC/AIN[5] // GPIO 5, 6, 7 (USB interface) // ---------------------------- diff --git a/variants/hallowing_m4/variant.cpp b/variants/hallowing_m4/variant.cpp index ce1ab8eb..8f9ab083 100644 --- a/variants/hallowing_m4/variant.cpp +++ b/variants/hallowing_m4/variant.cpp @@ -54,14 +54,14 @@ const PinDescription g_APinDescription[]= // -------------------- { PORTA, 2, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // A0 (DAC0) { PORTA, 5, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // A1 (DAC1) - { PORTA, 6, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_10 }, // A2 + { PORTA, 6, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, // A2 { PORTB, 9, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel3, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_9 }, // A3 { PORTB, 8, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel2, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8 }, // A4 { PORTA, 4, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // A5 { PORTB, 1, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel13, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // A6, D20 - vbatt { PORTB, 4, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // A7, D21 - Light - { PORTB, 3, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel15, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // A8 / D2 + { PORTB, 3, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel15, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 }, // A8 / D2 { PORTB, 2, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel14, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // A9 / D3 // 24..25 I2C pins (SDA/SCL) diff --git a/variants/pirkey/variant.cpp b/variants/pirkey/variant.cpp index 33bb7fe7..9e344ebc 100644 --- a/variants/pirkey/variant.cpp +++ b/variants/pirkey/variant.cpp @@ -25,8 +25,8 @@ const PinDescription g_APinDescription[]= { // GPIO 0 & 1 - DotStar internal data/clock // ---------------------------------------- - { PORTA, 0, PIO_DIGITAL, 0, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // ADC/AIN[4] - { PORTA, 1, PIO_DIGITAL, 0, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // ADC/AIN[5] + { PORTA, 0, PIO_DIGITAL, 0, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_0 }, // ADC/AIN[4] + { PORTA, 1, PIO_DIGITAL, 0, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // ADC/AIN[5] // GPIO 2 - Infrared In { PORTA, 28, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB Host enable - GPIO #2 diff --git a/variants/pybadge_m4/variant.cpp b/variants/pybadge_m4/variant.cpp index a329d609..ebc2c7f4 100644 --- a/variants/pybadge_m4/variant.cpp +++ b/variants/pybadge_m4/variant.cpp @@ -59,7 +59,7 @@ const PinDescription g_APinDescription[]= { PORTB, 1, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel13, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // A6, D20 - vbatt { PORTB, 4, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // A7, D21 - Light - { PORTB, 3, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel15, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // A8 / D2 + { PORTB, 3, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel15, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 }, // A8 / D2 { PORTB, 2, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel14, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // A9 / D3 diff --git a/variants/pygamer_advance_m4/variant.cpp b/variants/pygamer_advance_m4/variant.cpp index 22cea8a1..34f7e983 100644 --- a/variants/pygamer_advance_m4/variant.cpp +++ b/variants/pygamer_advance_m4/variant.cpp @@ -59,7 +59,7 @@ const PinDescription g_APinDescription[]= { PORTB, 1, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel13, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // A6, D20 - vbatt { PORTB, 4, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // A7, D21 - Light - { PORTB, 3, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel15, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // A8 / D2 + { PORTB, 3, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel15, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 }, // A8 / D2 { PORTB, 2, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel14, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // A9 / D3 { PORTB, 6, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel8, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, // A10 / JOYY { PORTB, 7, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel9, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 }, // A11 / JOYX diff --git a/variants/pygamer_m4/variant.cpp b/variants/pygamer_m4/variant.cpp index e9c677e1..ffbccefe 100644 --- a/variants/pygamer_m4/variant.cpp +++ b/variants/pygamer_m4/variant.cpp @@ -59,7 +59,7 @@ const PinDescription g_APinDescription[]= { PORTB, 1, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel13, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // A6, D20 - vbatt { PORTB, 4, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // A7, D21 - Light - { PORTB, 3, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel15, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // A8 / D2 + { PORTB, 3, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel15, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_3 }, // A8 / D2 { PORTB, 2, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel14, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // A9 / D3 { PORTB, 6, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel8, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, // A10 / JOYY { PORTB, 7, PIO_ANALOG, PIN_ATTR_ANALOG_ALT, ADC_Channel9, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 }, // A11 / JOYX diff --git a/variants/trellis_m4/variant.cpp b/variants/trellis_m4/variant.cpp index 8f44f8ae..cbe7be63 100644 --- a/variants/trellis_m4/variant.cpp +++ b/variants/trellis_m4/variant.cpp @@ -65,8 +65,8 @@ const PinDescription g_APinDescription[]= // 21..22 I2C pins (SDA/SCL) or Serial1 Pins // ---------------------- - { PORTB, 8, PIO_SERCOM_ALT, PIN_ATTR_ANALOG, ADC_Channel2, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_12 }, // SERCOM 4.0 - { PORTB, 9, PIO_SERCOM_ALT, PIN_ATTR_ANALOG_ALT, ADC_Channel1, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_13 }, // SERCOM 4.1 + { PORTB, 8, PIO_SERCOM_ALT, PIN_ATTR_ANALOG, ADC_Channel2, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8 }, // SERCOM 4.0 + { PORTB, 9, PIO_SERCOM_ALT, PIN_ATTR_ANALOG_ALT, ADC_Channel1, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_9 }, // SERCOM 4.1 // ---------------------- // 23 - 28 QSPI (SCK, CS, IO0, IO1, IO2, IO3) @@ -81,8 +81,8 @@ const PinDescription g_APinDescription[]= // -------------------- { PORTA, 2, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel0, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_2 }, // A0 { PORTA, 5, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // A1 - { PORTA, 6, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // Amp'd Mic - { PORTA, 7, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel7, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, // Raw Mic + { PORTA, 6, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel6, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_6 }, // Amp'd Mic + { PORTA, 7, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel7, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_7 }, // Raw Mic { PORTB, 8, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel2, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8 }, // SDA { PORTB, 9, PIO_ANALOG, PIN_ATTR_ANALOG, ADC_Channel3, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_9 }, // SCL diff --git a/variants/trinket_m0/variant.cpp b/variants/trinket_m0/variant.cpp index 27c0969b..5363f8da 100644 --- a/variants/trinket_m0/variant.cpp +++ b/variants/trinket_m0/variant.cpp @@ -46,8 +46,8 @@ const PinDescription g_APinDescription[]= // GPIO 7 & 8 - DotStar internal data/clock // ---------------------------------------- - { PORTA, 0, PIO_DIGITAL, 0, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_4 }, // ADC/AIN[4] - { PORTA, 1, PIO_DIGITAL, 0, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_5 }, // ADC/AIN[5] + { PORTA, 0, PIO_DIGITAL, 0, ADC_Channel4, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_0 }, // ADC/AIN[4] + { PORTA, 1, PIO_DIGITAL, 0, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // ADC/AIN[5] // GPIO 9, 10, 11 USB Host enable // ---------------------------- From b1572ceb250bd92099700bc4a76b10d14c785dbb Mon Sep 17 00:00:00 2001 From: Neku Date: Mon, 27 Jul 2020 02:21:31 +0200 Subject: [PATCH 28/28] Enable Interrupt #8 on Pin PORTA28 (GPIO2) In order to use IRLibRecvPCI class from IRLib2 with Adafruit pIRKey, it's necessary to allow interrupts on this pin. --- variants/pirkey/variant.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/variants/pirkey/variant.cpp b/variants/pirkey/variant.cpp index 9e344ebc..61734c02 100644 --- a/variants/pirkey/variant.cpp +++ b/variants/pirkey/variant.cpp @@ -29,7 +29,7 @@ const PinDescription g_APinDescription[]= { PORTA, 1, PIO_DIGITAL, 0, ADC_Channel5, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_1 }, // ADC/AIN[5] // GPIO 2 - Infrared In - { PORTA, 28, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB Host enable - GPIO #2 + { PORTA, 28, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_8 }, // USB Host enable - GPIO #2 // GPIO 3 & 4 (SWCLK & SWDIO) // --------------------------