Arduino Zero
The Arduino Zero from Arduino.CC is very similar to the Arduino M0 Pro from Arduino.ORG --initially called Zero Pro. The only visible difference is the darker colour, but features should be the same.
The board is designed around the 32-bit ARM Cortex-M0+ SAMD21 from Atmel and built in Italy. The EDBG chip from Atmel provides the debugging capabilities. The SAMD21 MCU features 256 kB of Flash and 32 kB of RAM and runs at 48 MHz. This is a huge improvement over the 32 kB of Flash, 2.5 kB of RAM and 16 MHz of the Arduino Uno. Although the connectors offer compatibility with the large collection of shields, be careful and check the operating voltage before. The Arduino Zero operates at 3.3V only. |
Arduino.CC Zero vs. Arduino.ORG M0 Pro
Unfortunately, the two boards are not 100% compatible. According to the AVRFreak forum, the difference are:
The ATSAM21D and the EDBG chips
|
Software
The IDE or integrated development environment offers a C++-based dialect.
As Processing-based Wiring-derived, it is platform-agnostic and runs on Windows, Mac OS X or Linux. Download the IDE Arduino 1.6.7 as other versions don't support the Arduino.CC Zero board. Looking for more features, I designed embedXcode, a template I could use with Xcode. There are two ports and thus two options for uploading the sketch to the board.
|
Debugging
Contrary to the Arduino.ORG M0 Pro, I was unable to debug against the Arduino.CC Zero, with the same blinky sketch and the same standard tools OpenOCD as server and GDB as client. This comes really as a surprise, since both boards feature the Atmel EDBG chip for debugging.
Does the boot-loader requires a specific tool? Worse, I've found no documentation on the website. |
Uploading and debugging only work fine when the Programming Port is connected.
Below,
Contrary to the boot-loader on the Arduino.ORG M0 Pro, the Arduino.CC Zero only supports CMSIS-DAP SWD, not CMSIS-DAP JTAG. |
Thank to the hints provided by the Proper Debugging of ATSAMD21 Processors tutorial by Adafruit, alas based on Atmel Studio and only for Windows, and after multiple trials and errors, I managed to debug against the Arduino Zero.
The main trick is, uploading the sketch requires a specific procedure and can't be done through OpenOCD. The only solution is an automated process. embedXcode+ now supports debugging against the Arduino Zero, as well as the Arduino.ORG M0 Pro. |
Conclusion
I was expecting a lot from the Arduino.CC Zero. Truth is, I'm disappointed. The board isn't fully compatible with the Arduino.ORG M0 Pro and the major feature, debugging, isn't documented. It took me a lot of work to get it work.
The brand name is a real nightmare: Arduino (USA only) or Genuino (outside USA). All this create fear, uncertainty and doubt. If you want to debug with the standard OpenOCD and GDB tools smoothly, go for the Arduino.ORG M0 Pro instead. The USD100 IoT solution featuring Arduino Zero and Arduino WiFI 101
|
Pros
|
Cons
|
Wrap-Up
|
Links
Initial post: June 02, 2016
Update: Sept 02, 2016
Update: Sept 02, 2016