Arduino Zero Pro
With the new Arduino Zero Pro board, the more creative individual will have the potential to create oneâs most imaginative and new ideas for IoT devices, wearable technologies, high tech automation, wild robotics and other not yet thinkable adventures in the world of makers. The Arduino Zero Pro represents a simple, yet powerful, 32-bit extension of the Arduino UNO platform. The board is powered by Atmelâs SAMD21 MCU, featuring a 32-bit ARM CortexÂŽ M0 core. With the addition of the Zero board, the Arduino family becomes larger with a new member providing increased performance. The power of its Atmelâs core gives this board an upgraded flexibility and boosts the scope of projects one can think of and make; moreover, it makes the Zero Pro the ideal educational tool for learning about 32-bit application development. Atmelâs Embedded Debugger (EDBG), integrated in the board, provides a full debug interface with no need for additional hardware, making debugging much easier. EDBG additionally supports a virtual COM port for device programming and traditional Arduino bootloader functionality uses.
Communication
The Arduino Zero Pro has a number of facilities for communicating with a computer, with another Arduino or other microcontrollers, and with different devices like phones, tablets, cameras and so on. The SAMD21 provides one hardware UART and three hardware USARTs for TTL (3.3V) serial communication.
The Programming port is connected to EDBG, which provides a virtual COM port to software on a connected computer (To recognize the device, Windows machines will need a .inf file, but OSX and Linux machines will recognize the board as a COM port automatically.). The EDBG is also connected to the SAMD21 hardware UART. The Serial on pins RX0 and TX0 provides Serial-to-USB communication for programming the board through the ATSAMD21G18 microcontroller. The Arduino software includes a serial monitor allowing simple textual data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being transmitted via the ATSAMD21G18chip and USB connection to the computer (but not for serial communication on pins 0 and 1).
The Native USB port is connected to the SAMD21. It allows for serial (CDC) communication over USB. This provides a serial connection to the Serial Monitor or other applications on your computer. It also enables the Due to emulate a USB mouse or keyboard to an attached computer.
The Native USB port can also act as a USB host for connected peripherals such as mice, keyboards, and smartphones.
The SAMD21 also supports TWI and SPI communication. The Arduino software includes a Wire library to simplify use of the TWI bus. For SPI communication, use the SPI library.
Programming
The Arduino Zero Pro can be programmed with the Arduino software (download).
Uploading sketches to the SAMD21 is different from how it works with the AVR microcontrollers found in other Arduino boards: the flash memory needs to be erased before being re-programmed. Upload to the chip is managed by ROM on the SAMD21, which is run only when the chipâs flash memory is empty.
Both the USB ports can be used to program the board, though use of the Programming port is recommended, due to the way the erasing of the chip is handled:
Programming port: To use this port, select âArduino Zero Pro (Programming Port)â as your board in the Arduino IDE. Connect the Zero Proâs programming port (the one closest to the DC power jack) to your computer. The programming port uses the EDBG as a USB-to-serial chip connected to the first UART of the SAMD21 (RX0 and TX0). The EDBG has two pins connected to the Reset and Erase pins of the SAMD21. Opening and closing the Programming port connected at 1200bps triggers a âhard eraseâ procedure of the SAMD21 chip, activating the Erase and Reset pins on the SAMD21 before communicating with the UART. This is the recommended port for programming the Zero Pro. It is more reliable than the âsoft eraseâ that occurs on the Native port, and it should work even if the main MCU has crashed.
Native port: To use this port, select âArduino Zero Pro (Native USB Port)â as your board in the Arduino IDE. The Native USB port is connected directly to the SAMD21. Connect the Zero Proâs Native USB port (the one closest to the reset button) to your computer. Opening and closing the Native port at 1200bps triggers a âsoft eraseâ procedure: the flash memory is erased and the board is restarted with the bootloader. If the MCU crashed for some reason it is likely that the soft erase procedure wonât work as this procedure happens entirely in software on the SAMD21. Opening and closing the native port at a different baudrate will not reset the SAMD21.
Automatic (Software) Reset
Rather than requiring a physical press of the reset button before an upload, the Arduino Uno is designed in a way that allows it to be reset by software running on a connected computer. One of the hardware flow control lines (DTR) of the ATmega8U2/16U2 is connected to the reset line of the ATmega328 via a 100 nanofarad capacitor. When this line is asserted (taken low), the reset line drops long enough to reset the chip. The Arduino software uses this capability to allow you to upload code by simply pressing the upload button in the Arduino environment. This means that the bootloader can have a shorter timeout, as the lowering of DTR can be well-coordinated with the start of the upload.This setup has other implications. When the Uno is connected to either a computer running Mac OS X or Linux, it resets each time a connection is made to it from software (via USB). For the following half-second or so, the bootloader is running on the Uno. While it is programmed to ignore malformed data (i.e. anything besides an upload of new code), it will intercept the first few bytes of data sent to the board after a connection is opened. If a sketch running on the board receives one-time configuration or other data when it first starts, make sure that the software with which it communicates waits a second after opening the connection and before sending this data.The Uno contains a trace that can be cut to disable the auto-reset. The pads on either side of the trace can be soldered together to re-enable it. Itâs labeled âRESET-ENâ. You may also be able to disable the auto-reset by connecting a 110 ohm resistor from 5V to the reset line.USB Overcurrent ProtectionThe Zero Pro 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.











