Skip to content

Arduino Zero

Support for the Arduino Zero board.

Support for the Arduino Zero board.

Overview

The Arduino Zero is a board by Arduino/Genuino featuring a ATSAMD21G18A. The SAMD21 is a ARM Cortex-M0+ micro-controller. It has 256KiB of flash memory and 32KiB of RAM.

This board is available here.

Hardware

arduino-zero

MCU

MCUATSAMD21G18A
FamilyARM Cortex-M0+
VendorAtmel
RAM32KiB
Flash256KiB
Frequencyup to 48MHz
FPUno
Timers6 (1x 16-bit, 2x 24-bit, 3x 32-bit)
ADCs6x 12-bit channels
UARTs2
SPIsmax 6 (see UART)
I2Csmax 6 (see UART)
Vcc1.8V - 3.6V
DatasheetDatasheet

User Interface

1 LED:

DevicePIN
LED0PA17

Implementation Status

Notice that the initial support for the Arduino Zero was based on samr21-xpro and Sodaq Autonomo.

DeviceIDSupportedComments
MCUsamd21partlyEnergy saving modes not fully utilized
Low-level driverGPIOyes
PWMto be tested
UARTyestwo UARTs
I2Cyes
SPIyes
ADCnot implemented
USBno
RTTyes
RTCyes
RNGnono HW module
Timeryes

Detailed information on the board can be found on the official web page.

Flashing the device

The standard method for flashing RIOT to the Arduino Zero is using OpenOCD. For this to work properly, you have to make sure to use a very recent version of OpenOCD. Arduino-IDE comes with openocd v0.9.0 which is known to work.

Refer to https://doc.riot-os.org/misc/openocd/ for building OpenOCD and make sure “cmsis-dap” and “hidapi-libusb” are enabled.