What is the Arduino Zero?

Hello World!

What is the Arduino Zero? How is it any different from the Arduino Nano, Uno or the Mega? I read several sources but could not seem to understand. Why a Native USB Port and a Programming port?

Any replies will be appreciated. Thank You!

Hi TheUNOGuy,

The Arduino Zero is a board with same dimensions popularised by the Arduino Uno. However, it uses a 48MHz, 32-bit ARM Cortex M0+, SAMD21 microcontroller, rather than a 16MHz, 8-bit AVR, Atmega 328P on the Uno.

The main obvioius differences:

  1. The Zero uses +3.3V logic instead of +5V. The Zero's pins are not 5V tolerant and applying 5V will damage the inputs.

  2. The Zero has more memory, 256k of flash and 32k RAM, as opposed to 32k flash and 2k RAM on the Uno.

  3. The Zero's 2x3 way ISCP and SPI header is separate from digital pins D11, D12 and D13, but unlike the Uno it's not possible to program the microcontroller using this connector. This is instead performed by the on-board EDBG debugging chip via the standard serial port.

  4. The Zero has two Serial ports, a native USB port and an additional standard serial port via its EDBG debugging chip. The EDBG is actually a programmer IC and it should be possible "professionally" debug the SAMD21 using a development environment such as Atmel Studio.

  5. The Zero also supports a 10-bit DAC on analog pin A0.

  6. The Zero has no internal EEPROM, (although this can be emulated in the SAMD21's flash memory).

The SAMD21 is a low end ARM device. From an Arduino point of view expect it to run your sketches around 2 to 3 times faster than the Uno. The SAMD21's floating point performance is somewhat poor in comparison to more powerful ARM chips that have single precision hardware Floating Point Unit (FPU).

Internally however the SAMD21 is much more complex and flexible than the Atmega 328P:

  1. It's possible to mutliplex peripheral inputs and outputs on to different pins.

  2. It has 2 spare serial communication modules that can be used to create additional SPI, I2C and Serial ports.

  3. It has more internal timers with greater functionality.

  4. It has an event sytem to route signals between peripherals without CPU intervention.

  5. It has a DMA that can be used for memory-to-memory, peripheral-to-memory and memory-to-peripheral transfers.

This was really helpful! Thanks!