|Arduino Zero Front||Arduino Zero Rear|
The Arduino Zero is a simple and powerful 32-bit extension of the platform established by Arduino UNO. The Arduino Zero enables creative individuals to realize truly innovative ideas for smart IoT devices, wearable technology, high-tech automation, crazy robotics, and projects not yet imagined. The board is powered by Atmel’s SAMD21 MCU, which features a 32-bit ARM Cortex® M0+ core.
Warning: Unlike most Arduino boards, the Arduino Zero board runs at 3.3V. The maximum voltage that the I/O pins can tolerate is 3.3V. Applying voltages higher than 3.3V to any I/O pin could damage the board.
The Zero board expands the Arduino family by providing increased performance to fuel the creativity of the maker community. The flexible feature set enables endless project opportunities for devices and acts as a great educational tool for learning about 32-bit application development. One of its most important feature is Atmel’s Embedded Debugger (EDBG), which provides a full debug interface without the need for additional hardware, significantly increasing the ease-of-use for software debugging. EDBG also supports a virtual COM port that can be used for device programming and traditional Arduino boot loader functionality.
The board contains everything needed to support the microcontroller; simply connect it to a computer with a micro-USB cable or power it with a AC-to-DC adapter or battery to get started. The Zero is compatible with all Arduino shields that work at 3.3V and are compliant with the 1.0 Arduino pinout.
The Atmel Embedded Debugger (EDBG) implements a JTAG interface in order to program the on-board SAMD21 and is also connected to hardware serial of the microcontroller. This means that the 'Serial' class responds to the programming port of the board. The Arduino Zero has been designed in collaboration with ATMEL, and the on-board EDBG can be used through ATMEL Studio to get full access to the microcontroller memories to help debug your code.
in contrast to some Arduino boards (e.g. Uno), when you open the serial monitor and the board is connected through the Programming Port the board does not automatically reset. You can reset the board manually if you wish to restart your sketch, for example in order to see something that is printed in the setup() function.
The Zero has a 32-bit ARM core that can outperform typical 8-bit microcontroller boards. The most significant differences are:
For further information about the SAM-D21 microcontroller please refer to the datasheet.
|Microcontroller||ATSAMD21G18, 32-Bit ARM Cortex M0+|
|General purpose I/O Pins||20, all of which can do digital I/O and all except for 2 and 7 can be used as PWM output|
|Analog Input Pins||6, 12-bit ADC channels|
|Analog Output Pins||1, 10-bit DAC|
|External Interrupts||Available on all pins except pin 4|
|DC Current per I/O Pin||7 mA|
|Flash Memory||256 KB|
|EEPROM||None (part of the Flash memory may be used as a non-volatile storage with some limitations*)|
|Clock Speed||48 MHz|
|(*) the lifetime of the typical flash memory is about 25K write-cycles, and unlike EEPROM, it must be erased in pages before writing. The flash memory is erased when Arduino uploads a new sketch.|
The Arduino Zero can be powered via the USB connector or with an external power supply. The power source is selected automatically.
External (non-USB) power can come either from an AC-to-DC adapter (such as a wall-wart) or battery, and can be connected using a 2.1mm center-positive plug connected to the board's power jack, or directly to the GND and VIN pin headers of the POWER connector.
The board can operate on an external supply of 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may be unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts.
The power pins are as follows:
The SAMD21 has 256 KB Flash Memory. It also has 32 KB of SRAM and up to 16 KB of EEPROM by emulation.
Each of the 20 general purpose I/O pins on the Zero can be used for digital input or digital output using pinMode(), digitalWrite(), and digitalRead() functions,
Pins that can be used for PWM output are:
3, 4, 5, 6, 8, 9, 10, 11, 12, 13
using analogWrite() function. All pins operate at 3.3 volts. Each pin can source or sink a maximum of 7 mA and has an internal pull-up resistor (disconnected by default) of 20-50 kOhms. In addition, some pins have specialized functions:
There are a couple of other pins on the board:
Uploading sketches to the SAMD21 is different from the AVR microcontrollers found in other Arduino boards.
Either USB port can be used for programming the board, although using the Programming port is recommended due to the way the erasing of the chip is handled:
Unlike other Arduino boards which use avrdude for uploading, the Zero relies on bossac.
Here a detail of the SPI pins location within the ICSP connector
Burn the Bootloader
Using the Arduino Zero Programming Port it is possible to burn the booloader used by the Native USB port. To burn the bootloader follow this procedure:
USB Overcurrent Protection
The Arduino Zero has a resettable polyfuse that protects your computer's USB ports from shorts and overcurrent. Although most computers provide their own internal protection, the fuse provides an extra layer of protection. If more than 500 mA is applied to the USB port, the fuse will automatically break the connection until the short or overload is removed.
Physical Characteristics and Shield Compatibility
The maximum length and width of the Arduino Zero PCB are 2.7 and 2.1 inches respectively, with the USB connectors and power jack extending beyond the former dimension. Three screw holes allow the board to be attached to a surface or case. Note that the distance between digital pins 7 and 8 is 160 mil (0.16"), not an even multiple of the 100 mil spacing of the other pins.
The Arduino Zero is designed to be compatible with most shields designed for the Uno, Diecimila or Duemilanove. Digital pins 0 to 13 (and the adjacent AREF and GND pins), analog inputs 0 to 5, the power header, and "ICSP" (SPI) header are all in equivalent locations. Further the main UART (serial port) is located on the same pins (0 and 1).