Introduction
The evolution of Arduino boards passes through the use of the SAMD21 processor.
In particular the low-power Arm® Cortex®-M0 32-bit SAMD21 within the boards of the Arduino MKR family. The WiFi and Bluetooth® connectivity is performed with a module from u-blox, the NINA-W10, a low power chipset operating in the 2.4GHz range. On top of those, secure communication is ensured through the Microchip® ECC508 crypto chip. Besides that, you can find a battery charger, and a directionable RGB LED on-board.
The SAMD21 features 14 ADC input pins with a 12-bit resolution compared to 10-bit on the ATmega328p.
The ATSMAD21 is equipped with an integrated USB controller which can be used as either a USB device or host, so you can control a mouse or keyboard or also save data to a USB flash drive.
A killer feature is that it has a set of 6 configurable serial interfaces which can be transformed into UART, I2C master, I2C slave, SPI master or SPI slave.
Here the board Amazon Arduino MKR WiFi 1010
Specs Arduino SAMD boards specs
Microchip SAMD specs
- CPU and Memory
- ARM® Cortex®-M0+ CPU running at up to 48 MHz
- Single-cycle hardware multiplier
- Micro Trace Buffer (MTB)
- 32/64/128/256 KB in-system self-programmable Flash
- 4/8/16/32 KB SRAM Memory
- System
- Power-on Reset (POR) and Brown-out Detection (BOD)
- Internal clock 32.768 kHz (RTC), 48 MHz
- 16 external interrupts
- Two-pin Serial Wire Debug (SWD) programming, test and debugging interface
- Low Power
- Idle and Stand-by Sleep modes
- SleepWalking peripherals
- Peripherals
- 12-channel Direct Memory Access Controller (DMAC)
- 12-channel Event System
- 32-bit Real Time Counter (RTC) with clock/calendar function
- CRC-32 generator
- 1 × full-speed USB OTG
- Up to six Serial Communication Interfaces (SERCOM), each configurable for various protocol.
- One two-channel Inter-IC Sound (I2S) interface
- One 12-bit, 350ksps Analog-to-Digital Converter (ADC) with up to 20 channels
- 10-bit, 350 ksps Digital-to-Analog Converter (DAC)
- Peripheral Touch Controller (PTC)
- 256-Channel capacitive touch and proximity sensing
- 52 × programmable GPIOs
The Arduino MKR series use in detail an ATSAMD21G18A in the code you can read witch processor variant the Arduino use, look at the diagram.
Radio NINA-W10 Specs
The WiFi/Bluetooth module is controlled via the secondary SPI include a dual-core system with two Harvard Architecture Xtensa LX6 CPUs operating at a maximum 240 MHz internal clock frequency (an esp32).
- Processor memory
- 448 Kbyte ROM for booting and core functions
- 520 Kbyte SRAM for data and instruction
- 16/32 (NINA-W101 and NINA-W102/NINA-W106) Mbit FLASH for code storage, including
- hardware encryption to protect programs.
- 1 kbit EFUSE (non-erasable memory) for MAC addresses, module configuration, flash encryption, and chip ID
- Wi-Fi
- IEEE 802.11b/g/n
- Output power: 15 dBm
- Data rates max: 72 Mbit/s
- Bluetooth BR/EDR
- Bluetooth v4.2 + EDR (Maximum number of slaves: 7)
- Band support: 2.4 GHz, 79 channels (40 channels for low energy)
- Output power/data rates: 1/2/3 Mbit/s: 5 dBm (1Mbps 5 dbm for low energy)
Security and cryptography
The security is granted by microchip ATECC508A
- Cryptographic Co-processor with Secure Hardware-Based Key Storage
- Performs High-Speed Public Key (PKI) Algorithms
- ECDSA: FIPS186-3 Elliptic Curve Digital Signature Algorithm
- ECDH: FIPS SP800-56A Elliptic Curve Diffie-Hellman Algorithm
- NIST Standard P256 Elliptic Curve Support
- SHA-256 Hash Algorithm with HMAC Option
- Host and Client Operations
- 256-bit Key Length
- Storage for up to 16 Keys
- Two High-Endurance Monotonic Counters
- Guaranteed Unique 72-bit Serial Number
- Internal High-Quality FIPS Random Number Generator (RNG)
- 10 Kb EEPROM Memory for Keys, Certificates, and Data
- Multiple Options for Consumption Logging and One-Time Write Information
- Intrusion Latch for External Tamper Switch or Power-on Chip Enablement.
Pinouts
The boards can have additional features like RGB LED, battery managements, additional ports etc.
Arduino MRK WiFi 1010
MKR WIFI 1010 uses a UBlox WiFi module based on Espressif’s ESP32 chipset. The board makes working with WiFi more simple and lower power compared to it’s predecessor. The board has many features for easily prototyping connected devices including battery power management, a security chip, 32bit Microcontroller (Cortex-M0+) and a USB Connection which can power the board as well. The security chip provides secure connections over WiFi via SHA-256 encryption.
- Microcontroller: SAMD21 Cortex-M0+ 32bit Low Power ARM MCU
- Board Power Supply (USB/VIN): 5V
- Supported Battery(*): Li-Po Single Cell, 3.7V, 700mAh Minimum
- Circuit Operating Voltage: 3.3V
- Digital I/O Pins: 8
- PWM Pins: 12 (0, 1, 2, 3, 4, 5, 6, 7, 8, 10, A3 – or 18 -, A4 -or 19)
- UART: 1
- SPI: 1
- I2C: 1
- I2S: 1
- Connectivity: WiFi
- Analog Input Pins: 7 (ADC 8/10/12 bit)
- Analog Output Pins: 1 (DAC 10 bit)
- External Interrupts: 8 (0, 1, 4, 5, 6, 7, 8, A1 -or 16-, A2 – or 17)
- DC Current per I/O Pin: 7 mA
- Flash Memory: 256 KB
- SRAM: 32 KB
- EEPROM: No
- Clock Speed: 32.768 kHz (RTC), 48 MHz
- LED_BUILTIN: 6
- Full-Speed USB Device and Embedded Host: Included
Here the spec and high resolution pinout image.
Arduino IDE configuration
By default the SAMD boards aren’t installed, you must go on Tools --> Boards ... --> Boards manager
and search “SAMD”.
Now you can select your SAMD board
First skecth
Arduino MKR WiFi 1010 have some builtin led, one “normal” on pin 6.
Here the classic blink sketch.
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN (pin 6) as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Thanks
- Arduino SAMD NINA: pinout, specs and Arduino IDE configuration
- Arduino SAMD NINA: WiFiNINA, firmware update, and RGB led
- Arduino SAMD (NANO 33 and MKR): SPI flash memory FAT FS
- i2c Arduino SAMD MKR: additional interface SERCOM, network and address scanner
- Arduino MKR SAMD: FAT filesystem on external SPI flash memory
- Connecting the EByte E70 to Arduino SAMD (Nano 33, MKR…) devices and a simple sketch example