@@ -11,15 +11,32 @@ This core is intended to be installed using Boards Manager (see below). To updat
1111previous version, click on MattairTech SAMD Boards in Boards Manager, then click Update.
1212
1313
14- ## What's New
15-
16- * Added support for the MT-D11 (ATSAMD11D14AM).
17- * Reduced code size (see 'Code Size and RAM Usage' below).
18- * Any combination of CDC, HID, or UART can be used (or no combination), by using the Tools->Communication menu.
19- * Note that switching between CDC and CDC+HID will require re-selecting the COM port.
20- * More detailed memory usage at end of compilation (see below).
21- * Merged in upstream updates. Fixed Wire interrupt.
22- * Tested all ADC, DAC, external interrupts, PWM outputs, serial, SPI, and Wire instances/pins.
14+ ## What's New (1.6.6-mt1, November 24, 2015)
15+
16+ * New documentation section 'Special Notes'. Please read!
17+ * Updated ASCII pinouts to be more readable and less ambiguous.
18+ * Updated the Signed driver for Windows (extras directory).
19+ * adds CDC/MIDI/HID, CDC/MSD/HID, and CDC/MSD/MIDI/HID composite USB devices.
20+ * Of the above, currently only CDC/MIDI/HID is usable (see MIDIUSB library).
21+ * Merged in changes from upstream past SAMD CORE 1.6.2 release
22+ * Added SPI.transfer16(..) method
23+ * Bugfix: added missing Serial.begin(baud, config) method. Thanks @tuxedo0801
24+ * the pin mode is changed to INPUT mode, arduino/ArduinoCore-samd #28
25+ * HardwareSerial BUG Rx pin floating input, arduino/ArduinoCore-samd #48
26+ * Send a ZLP if data size is multiple of EPX_SIZE for USB sends, arduino/ArduinoCore-samd #63
27+ * Print not aborting on write failure, changelog update
28+ * Tone fix for arduino/ArduinoCore-samd #59 and optimizations
29+ * Fix warnings about deprecated recipe.ar.pattern
30+ * Merged in changes from upstream SAMD CORE 1.6.2 2015.11.03
31+ * Fixed bug in delay calculations
32+ * Fixed deadlock conditions in Wire. Thanks Erin Tomson
33+ * Print not aborting on write() failure. Thanks @stickbreaker
34+ * SPI can now be configured in variants. Thanks @aethaniel
35+ * Implemented Wire.end
36+ * Implemented Wire.setClock. Thanks @PaoloP74
37+ * Wire: allow scanning bus via beginTransmission-endTransmission
38+ * USB Device: big refactoring and bug fix
39+ * USB Device: added PluggableUSB interface
2340
2441
2542## Summary
@@ -44,6 +61,33 @@ Operating Voltage | 3.3V (Do not connect voltages higher than 3.3V!) | 3.3V (
4461DC Current per I/O Pin | 7 mA | 7 mA
4562
4663
64+ ## Special Notes
65+
66+ * Boards Manager may require opening twice (with possibly a delay in between) to see some updates.
67+
68+ * Errors when compiling, uploading, or burning the bootloader
69+ Be sure to install the Arduino samd core before installing the MattairTech samd core. If you have problems upgrading
70+ the IDE to 1.6.6, you may need to uninstall both the Arduino and MattairTech cores, then re-install in the proper order.
71+ Use Arduino core 1.6.2 or above.
72+
73+ * Tools->Communications menu
74+ Currently, the Tools->Communications menu must be used to select the communications configuration. This configuration
75+ must match the included libraries. For example, when including the HID and Keyboard libraries, you must select an
76+ option that includes HID (ie: CDC_HID_UART). This menu is currently needed to select the USB PID that matches the
77+ USB device configuration (needed for Windows). This may become automatic in a future release.
78+
79+ * Be sure that the Tools->Communications menu matches the sketch and libraries you are compiling.
80+ * Different combinations of USB devices will result in different COM port assingments in Windows.
81+
82+ * Incude platform specific libraries
83+ You may need to manually include platform specific libraries such as SPI.h, Wire.h, and HID.h.
84+
85+ * Differences from Arduino in versioning
86+ The MattairTech ArduinoCore-samd version currently tracks the IDE version. In some cases, it may indicate the
87+ minimum IDE version. This is the case for both 1.6.5-mtX and 1.6.6-mtX (which corresponds to SAMD CORE 1.6.2).
88+ 1.6.6-mt1 corresponds to Arduino SAMD CORE 1.6.2 plus some pull requests.
89+
90+
4791## Pin Configurations
4892
4993Most pins have multiple configurations available (even analog pins). For example, pin A10 on the MT-D21E can be an analog
@@ -54,50 +98,50 @@ but without the 'A' (with the usable pins starting at 2). DO NOT connect voltage
5498
5599```
56100============================= MattairTech MT-D21E (ATsamd21eXXa) ========================
57- Other INT PWM Digital Analog Digital PWM INT Other
101+ Other INT PWM Digital Analog Digital PWM INT Other
58102=========================================================================================
59- -------------------
60- Xin32 | A0 RST | Reset
61- Xout32 | A1 NC |
62- DAC 2 2 (ADC0) | A2 NC |
63- REF 3 3 (ADC1) | A3 A31 | 31 TCC1[1] INT11 SWD IO *
64- INT4 4 4 (ADC4) | A4 A30 | 30 TCC1[0] INT10 SWD CLK
65- INT5 5 5 (ADC5) | A5 NC |
66- 6 6 (ADC6) | A6 A28 | 28 INT8 LED
67- VDIV 7 7 (ADC7) | A7 A27 | 27 INT15 Button A
68- INTNMI TCC0[0] 8 8 (ADC16) | A8 A23 | 23 TC4[1] INT7 SPI SS
69- INT9 TCC0[1] 9 9 (ADC17) | A9 A22 | 22 TC4[0] INT6 SPI MISO
70- TX (1) TCC0[2] 10 10 (ADC18)| A10 A19 | 19 INT3 SPI SCK
71- RX (1) TCC0[3] 11 11 (ADC19)| A11 A18 | 18 INT2 SPI MOSI
72- TX (2) INT14 TC3[0] 14 | A14 A17 | 17 TCC2[1] INT1 I2C/ SCL
73- RX (2) TC3[1] 15 | A15 A16 | 16 TCC2[0] INT0 I2C/ SDA
74- | NC NC |
75- | NC NC |
76- | Vbus 3.3V| * Button B available on 31
77- USB D- | A24- _____ Vcc |
78- USB D+ | A25+ | | Vin |
79- | Gnd | USB | Gnd |
80- -------------------
103+ -------------------
104+ Xin32 | A0 RST | Reset
105+ Xout32 | A1 NC |
106+ DAC 2 2 (ADC0) | A2 NC |
107+ REF 3 3 (ADC1) | A3 A31 | 31 31(TCC11) 31( INT11) SWDIO *
108+ 4( INT4) 4 4 (ADC4) | A4 A30 | 30 30(TCC10) 30( INT10) SWDCLK
109+ 5( INT5) 5 5 (ADC5) | A5 NC |
110+ 6 6 (ADC6) | A6 A28 | 28 28( INT8) LED
111+ VDIV 7 7 (ADC7) | A7 A27 | 27 27( INT15) BTNA
112+ 8( INTNMI) 8(TCC00) 8 8 (ADC16) | A8 A23 | 23 23(TC41) 23( INT7) SS
113+ 9( INT9) 9(TCC01) 9 9 (ADC17) | A9 A22 | 22 22(TC40) 22( INT6) MISO
114+ TX1 10(TCC02) 10 10 (ADC18)| A10 A19 | 19 19( INT3) SCK
115+ RX1 11(TCC03) 11 11 (ADC19)| A11 A18 | 18 18( INT2) MOSI
116+ TX2 14(INT14) 14(TC30) 14 | A14 A17 | 17 17(TCC21) 17( INT1) SCL
117+ RX2 15(TC31) 15 | A15 A16 | 16 16(TCC20) 16( INT0) SDA
118+ | NC NC |
119+ | NC NC |
120+ | Vbus 3.3V| * Button B available on 31
121+ USB D- | A24- _____ Vcc |
122+ USB D+ | A25+ | | Vin |
123+ | Gnd | USB | Gnd |
124+ -------------------
81125```
82126
83127### SAMD11 (MT-D11)
84128
85129```
86- ============================= MattairTech MT-D11 (ATsamd11D14AM) ========================
87- Other INT PWM Digital Analog Digital PWM INT Other
130+ =========================== MattairTech MT-D11 (ATsamd11D14AM) == ========================
131+ Other INT PWM Digital Analog Digital PWM INT Other
88132=========================================================================================
89- -------------------
90- DAC 2 2 (ADC0) | A2 | USB | Gnd |
91- REF 3 3 (ADC1) | A3 | | Vcc |
92- VDIV INT4 TCC0[0] 4 4 (ADC2) | A4 ----- A31 | 31 TC2[1] INT3 RX / SWDIO
93- INT5 TCC0[1] 5 5 (ADC3) | A5 A30 | 30 TC2[0] TX / SWDCLK
94- TCC0[2] 6 6 (ADC4) | A6 A27 | 27 INT7
95- TCC0[3] 7 7 (ADC5) | A7 A23 | 23 I2C/ SCL
96- SPI MOSI INT2 10 10 (ADC8) | A10 A22 | 22 INT6 I2C/ SDA
97- SPI SCK 11 11 (ADC9) | A11 A17 | 17 TC1[1]
98- SPI MISO INTNMI 14 14 (ADC6) | A14 A16 | 16 TC1[0] INT0 LED
99- Button INT1 15 15 (ADC7) | A15 RST | Reset
100- -------------------
133+ -------------------
134+ DAC 2 2 (ADC0) | A2 | USB | Gnd |
135+ REF 3 3 (ADC1) | A3 | | Vcc |
136+ 4( INT4) 4(TCC00) 4 4 (ADC2) | A4 ----- A31 | 31 31(TC21) 31( INT3) RX/ SWDIO
137+ 5( INT5) 5(TCC01) 5 5 (ADC3) | A5 A30 | 30 30(TC20) TX/ SWDCLK
138+ 6(TCC02) 6 6 (ADC4) | A6 A27 | 27 27( INT7)
139+ 7(TCC03) 7 7 (ADC5) | A7 A23 | 23 SCL
140+ MOSI 10( INT2) 10 10 (ADC8) | A10 A22 | 22 22(INT6) SDA
141+ SCK 11 11 (ADC9) | A11 A17 | 17 17(TC11)
142+ MISO 14( INTNMI) 14 14 (ADC6) | A14 A16 | 16 16(TC10) 16( INT0) LED
143+ BTN/SS 15( INT1) 15 15 (ADC7) | A15 RST | Reset
144+ -------------------
101145```
102146
103147#### All pins operate at 3.3 volts. DO NOT connect voltages higher than 3.3V!
@@ -131,6 +175,8 @@ Button INT1 15 15 (ADC7) | A15 RST |
131175* MT-D21E: Pin 18 (MOSI), pin 19 (SCK), pin 22 (MISO), and optionally pin 23 (SS, not currently used).
132176* MT-D11: Pin 10 (MOSI), pin 11 (SCK), pin 14 (MISO), and optionally pin 15 (SS, not currently used).
133177* SPI communication using the SPI library.
178+ * Note that the SPI library will set SS as an output.
179+ * On the MT-D11, the button must be configured as reset (default) when using SPI.
134180* ** TWI (I2C): 2 pins can be configured for TWI I/O (Wire).**
135181* MT-D21E: Pin 16 (SDA) and pin 17 (SCL).
136182* MT-D11: Pin 22 (SDA) and pin 23 (SCL).
@@ -144,7 +190,7 @@ Button INT1 15 15 (ADC7) | A15 RST |
144190* The upper end of the analog measurement range can be changed using the analogReference() function.
145191* ** Reset: Bring this line LOW to reset the microcontroller.**
146192
147- ### MT-D21E and MT-D11 Board Configuration
193+ ### MT-D21E and MT-D11 Board Configuration Notes
148194
149195* The 32.768KHz crystal is used by the Arduino core, so it MUST be connected via the solder jumpers.
150196* Note that the sketch may still run without the crystal attached, but the clock speed will be very inaccurate.
@@ -154,6 +200,7 @@ Button INT1 15 15 (ADC7) | A15 RST |
154200* Button A should be connected via the solder jumper. The debouncing capacitor should also be connected.
155201* Button B (MT-D21E only) is connected to the Reset pin by default, but can be connected to pin 31 via the solder jumper.
156202* A reference voltage can be connected to AREF. In this case, the capacitors should be enabled via the solder jumper.
203+ * On the MT-D11, BTN is shared with SPI SS, so the button must be configured as reset (default) when using SPI.
157204
158205
159206## Serial Monitor
@@ -173,7 +220,7 @@ the Reset button will reset the SAMD chip, which in turn will reset USB communic
173220that if the serial monitor is open, it will be necessary to close and re-open it to restart communication.
174221
175222
176- ## Code Size and RAM Usage
223+ ## Code Size and RAM Usage (1.6.5-mt2)
177224
178225Sketch and Configuration | MT-D21E (Flash + RAM) | MT-D11 (Flash + RAM)
179226----------------------------|-----------------------|-----------------------
@@ -217,15 +264,16 @@ everything else (ie: W) resides in flash (in most cases).
217264
218265#### Windows
219266
220- There are two "drivers", a CDC only driver for the bootloader, and a CDC-HID driver for Arduino sketches (optional).
221- The drivers are signed and support both 32 and 64 bit versions of Windows XP (SP3), Vista, 7, and 8.
267+ There are currently four USB composite device combinations that include CDC as well as a CDC only device.
268+ Drivers are required for each of these five devices. The CDC only driver is required by the bootloader.
269+ The drivers are signed and support both 32 and 64 bit versions of Windows XP (SP3), Vista, 7, 8, and 10.
222270
2232711 . If you do not already have the SAM-BA bootloader installed, see below.
2242722 . Download https://www.mattairtech.com/software/MattairTech_CDC_Driver_Signed.zip and unzip into any folder.
2252733 . Plug in the board while holding down button A to enter the bootloader. The LED should light.
2262744 . Windows will detect the board. Point the installer to the folder from above to install the bootloader driver.
2272755 . If you don't intend on using Arduino, you can skip the rest of this list. See Using Bossac Standalone below.
228- 6 . If you do not already have the test firmware installed, see Using Bossac Standalone below.
276+ 6 . If you do not already have the test firmware installed (comes preinstalled) , see Using Bossac Standalone below.
2292777 . Press the reset button to run the test firmware (blink sketch with CDC-HID).
2302788 . Windows will detect the board. Point the installer to the folder from above to install the sketch driver.
2312799 . Continue with SAMD Core Installation below.
@@ -243,7 +291,7 @@ The drivers are signed and support both 32 and 64 bit versions of Windows XP (SP
243291
2442921 . As of this writing, only the 256 KB chip variants work with the OS X version of the upload tool, bossac.
2452932 . First, you will need to open boards.txt and change mattairtech_mt_d21e_bl8k.upload.tool to equal arduino: bossac .
246- 3 . Open platform.txt and change tools.bossac.path to equal{runtime.tools.bossac-1.5 -arduino.path}.
294+ 3 . Open platform.txt and change tools.bossac.path to equal{runtime.tools.bossac-1.6.1 -arduino.path}.
2472954 . No driver installation is needed. You may get a dialog box asking if you wish to open the “Network Preferences”:
248296 * Click the "Network Preferences..." button, then click "Apply".
249297 * The board will show up as “Not Configured”, but it will work fine.
@@ -252,14 +300,15 @@ The drivers are signed and support both 32 and 64 bit versions of Windows XP (SP
252300### SAMD Core Installation
253301
254302* To update from a previous version, click on MattairTech SAMD Boards in Boards Manager, then click Update.
303+ * Boards Manager may require opening twice (with possibly a delay in between) to see some updates.
255304
256- 1 . The MattairTech SAMD Core requires Arduino 1.6.5+ .
257- 2 . In the Arduino IDE 1.6.5+ , click File->Preferences.
305+ 1 . The MattairTech SAMD Core requires Arduino 1.6.6+ (1.6.5-mtX required IDE 1.6.5) .
306+ 2 . In the Arduino IDE, click File->Preferences.
2583073 . Click the button next to Additional Boards Manager URLs.
2593084 . Add https://www.mattairtech.com/software/arduino/package_MattairTech_index.json .
2603095 . Save preferences, then open the Boards Manager.
261- 6 . Install the Arduino SAMD Boards package.
262- 7 . Install the MattairTech SAMD Boards package.
310+ 6 . Install the Arduino SAMD Boards package. Use version 1.6.2 or higher with 1.6.6-mtX.
311+ 7 . Install the MattairTech SAMD Boards package (1.6.6-mtX) .
2633128 . Close Boards Manager, then click Tools->Board->MattairTech MT-D21E (or MT-D11).
2643139 . Select the processor with the now visible Tools->Processor menu.
26531410 . If you do not already have the bootloader or blink sketch installed, see SAM-BA USB CDC Bootloader below.
@@ -453,40 +502,42 @@ bossac.exe -d --port=COM5 -U true -i -e -w -v Blink_Demo_ATSAMD21E18A.bin -R
453502
454503## Possible Future Additions
455504
456- * Port Servo library
457- * Features for lower power consumption
505+ * USB Host mode CDC ACM
506+ * Features for lower power consumption (library?)
507+ * Enhanced SD card library
508+ * Optional use of single on-board LED as USB activity LED
458509* Replace pulse with timer capture
459- * MIDI USB Device Class
460510* MSC (Mass Storage) USB Device Class
461- * More detailed memory usage statistics
462- * Some kind of stack overflow detection. Estimation on stack usage.
463- * Analog calibration
464511* Polyphonic tone
465512* Better OS X support
466- * Drivers for some hardware I plan on using (TFT LCD, motor controller, IR decoder, several I2C (Wire) sensor devices, I2S device, etc.)
513+ * Libraries for some hardware I plan on using:
514+ TFT LCD
515+ Motor controller
516+ IR decoder
517+ I2S DAC/AMP and I2S MEMS microphone
518+ Battery management IC
519+ XBee/Xbee Pro devices
520+ RS485
521+ Several I2C (Wire) sensor devices:
522+ Accelerometer/gyro/magnetometer
523+ Barometer/altimeter
524+ Humidity/temperature
525+ Light/color sensor
467526
468527
469528## ChangeLog
470529
471530* 1.6.6-mt1:
472-
473- * Merged in changes from upstream SAMD CORE 1.6.3
474- * Added SPI.transfer16(..) method
475- * Bugfix: added missing Serial.begin(baud, config) method. Thanks @tuxedo0801
476-
477- * Merged in changes from upstream SAMD CORE 1.6.2 2015.11.03
478- * Fixed bug in delay calculations
479- * Fixed deadlock conditions in Wire. Thanks Erin Tomson
480- * Print not aborting on write() failure. Thanks @stickbreaker
481- * SPI can now be configured in variants. Thanks @aethaniel
482- * Implemented Wire.end
483- * Implemented Wire.setClock. Thanks @PaoloP74
484- * Wire: allow scanning bus via beginTransmission-endTransmission
485- * USB Device: big refactoring and bug fix
486- * USB Device: added PluggableUSB interface
531+ * See 'What's New' above.
487532
488533* 1.6.5-mt2:
489- * See 'What's New' above.
534+ * Added support for the MT-D11 (ATSAMD11D14AM).
535+ * Reduced code size (see 'Code Size and RAM Usage' below).
536+ * Any combination of CDC, HID, or UART can be used (or no combination), by using the Tools->Communication menu.
537+ * Note that switching between CDC and CDC+HID will require re-selecting the COM port.
538+ * More detailed memory usage at end of compilation (see below).
539+ * Merged in upstream updates. Fixed Wire interrupt.
540+ * Tested all ADC, DAC, external interrupts, PWM outputs, serial, SPI, and Wire instances/pins.
490541
491542* 1.6.5-mt1:
492543 * Initial release
0 commit comments