Arduino M0 Pro
The Arduino M0 Pro —initially called Zero Pro— board is a major revision of the Arduino line as it is the first Arduino board to feature a debugger.
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 Pro Zero operates at 3.3V only.
For more information on the differences with the Arduino.CC Zero, please go to the review of the Arduino.CC Zero.
Software
As Processing-based Wiring-derived, it is platform-agnostic and runs on Windows, Mac OS X or Linux.
Download the IDE Arduino 1.7.0 as other versions don’t support the Arduino Zero Pro board.
Looking for more features, I designed embedXcode, a template I could use with Xcode.
The simple board can be extended with shields. There are shields for any usage. Building one’s own shield is even possible!
The libraries I’ve developed for the Arduino Uno run fine on the new board. Only minor adjustments are needed because the Arduino Zero Pro runs 3 times faster!
Debugging!
This is the most noticeable change: the Arduino M0 Pro board is the first Arduino board to feature a debugger.
The EDBG chip provides debugging with the standard tools like GDB as client and OpenOCD as server.
Debugging only works when the Programming Port is connected. A dedicated DEBUG LED blinks when the debugger works.
Below,
- On the left, the OpenOCD server connects to the board.
- On the right, the GDB client controls the execution, displays and modifies variables, lists the call stack.
Those two windows were obtained with embedXcode.
Contrary to the boot-loader on the Arduino.CC Zero, the Arduino.ORG M0 Pro supports both CMSIS-DAP SWD and CMSIS-DAP JTAG.
Conclusion
Contrary to its similar but incompatible Arduino.CC Zero, debugging does work on the Arduino.ORG with the standard OpenOCD and GDB tools.
arduino m0 specs
Microcontroller | ATSAMD21G18, 48pins LQFP |
Architecture | ARM Cortex-M0+ |
Operating Voltage | 3.3V |
Flash memory | 256 KB |
SRAM | 32Kb |
Clock Speed | 48 MHz |
Analog I/O Pins | 6 + 1 DAC |
DC Current per I/O Pins | 7 mA (I/O Pins) |
General
Input Voltage | 5-15 V |
Digital I/O Pins | 20 |
PWM Output | 12 |
Power Consumption | 44 mA |
PCB Size | 53.34 x 68.58 mm |
Weight | 22g |
Product Code | A000111 |