@@ -11,15 +11,32 @@ This core is intended to be installed using Boards Manager (see below). To updat
11
11
previous version, click on MattairTech SAMD Boards in Boards Manager, then click Update.
12
12
13
13
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
23
40
24
41
25
42
## Summary
@@ -44,6 +61,33 @@ Operating Voltage | 3.3V (Do not connect voltages higher than 3.3V!) | 3.3V (
44
61
DC Current per I/O Pin | 7 mA | 7 mA
45
62
46
63
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
+
47
91
## Pin Configurations
48
92
49
93
Most 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
54
98
55
99
```
56
100
============================= MattairTech MT-D21E (ATsamd21eXXa) ========================
57
- Other INT PWM Digital Analog Digital PWM INT Other
101
+ Other INT PWM Digital Analog Digital PWM INT Other
58
102
=========================================================================================
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
+ -------------------
81
125
```
82
126
83
127
### SAMD11 (MT-D11)
84
128
85
129
```
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
88
132
=========================================================================================
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
+ -------------------
101
145
```
102
146
103
147
#### 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 |
131
175
* MT-D21E: Pin 18 (MOSI), pin 19 (SCK), pin 22 (MISO), and optionally pin 23 (SS, not currently used).
132
176
* MT-D11: Pin 10 (MOSI), pin 11 (SCK), pin 14 (MISO), and optionally pin 15 (SS, not currently used).
133
177
* 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.
134
180
* ** TWI (I2C): 2 pins can be configured for TWI I/O (Wire).**
135
181
* MT-D21E: Pin 16 (SDA) and pin 17 (SCL).
136
182
* MT-D11: Pin 22 (SDA) and pin 23 (SCL).
@@ -144,7 +190,7 @@ Button INT1 15 15 (ADC7) | A15 RST |
144
190
* The upper end of the analog measurement range can be changed using the analogReference() function.
145
191
* ** Reset: Bring this line LOW to reset the microcontroller.**
146
192
147
- ### MT-D21E and MT-D11 Board Configuration
193
+ ### MT-D21E and MT-D11 Board Configuration Notes
148
194
149
195
* The 32.768KHz crystal is used by the Arduino core, so it MUST be connected via the solder jumpers.
150
196
* 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 |
154
200
* Button A should be connected via the solder jumper. The debouncing capacitor should also be connected.
155
201
* Button B (MT-D21E only) is connected to the Reset pin by default, but can be connected to pin 31 via the solder jumper.
156
202
* 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.
157
204
158
205
159
206
## Serial Monitor
@@ -173,7 +220,7 @@ the Reset button will reset the SAMD chip, which in turn will reset USB communic
173
220
that if the serial monitor is open, it will be necessary to close and re-open it to restart communication.
174
221
175
222
176
- ## Code Size and RAM Usage
223
+ ## Code Size and RAM Usage (1.6.5-mt2)
177
224
178
225
Sketch and Configuration | MT-D21E (Flash + RAM) | MT-D11 (Flash + RAM)
179
226
----------------------------|-----------------------|-----------------------
@@ -217,15 +264,16 @@ everything else (ie: W) resides in flash (in most cases).
217
264
218
265
#### Windows
219
266
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.
222
270
223
271
1 . If you do not already have the SAM-BA bootloader installed, see below.
224
272
2 . Download https://www.mattairtech.com/software/MattairTech_CDC_Driver_Signed.zip and unzip into any folder.
225
273
3 . Plug in the board while holding down button A to enter the bootloader. The LED should light.
226
274
4 . Windows will detect the board. Point the installer to the folder from above to install the bootloader driver.
227
275
5 . 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.
229
277
7 . Press the reset button to run the test firmware (blink sketch with CDC-HID).
230
278
8 . Windows will detect the board. Point the installer to the folder from above to install the sketch driver.
231
279
9 . 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
243
291
244
292
1 . As of this writing, only the 256 KB chip variants work with the OS X version of the upload tool, bossac.
245
293
2 . 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}.
247
295
4 . No driver installation is needed. You may get a dialog box asking if you wish to open the “Network Preferences”:
248
296
* Click the "Network Preferences..." button, then click "Apply".
249
297
* 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
252
300
### SAMD Core Installation
253
301
254
302
* 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.
255
304
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.
258
307
3 . Click the button next to Additional Boards Manager URLs.
259
308
4 . Add https://www.mattairtech.com/software/arduino/package_MattairTech_index.json .
260
309
5 . 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) .
263
312
8 . Close Boards Manager, then click Tools->Board->MattairTech MT-D21E (or MT-D11).
264
313
9 . Select the processor with the now visible Tools->Processor menu.
265
314
10 . 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
453
502
454
503
## Possible Future Additions
455
504
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
458
509
* Replace pulse with timer capture
459
- * MIDI USB Device Class
460
510
* 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
464
511
* Polyphonic tone
465
512
* 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
467
526
468
527
469
528
## ChangeLog
470
529
471
530
* 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.
487
532
488
533
* 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.
490
541
491
542
* 1.6.5-mt1:
492
543
* Initial release
0 commit comments