Summary of All about arduino m0 pro
The Arduino M0 Pro is a 32-bit ARM Cortex-M0+ board featuring an integrated EDBG debugger, making it the first in the line with native debugging support. It uses the ATSAMD21G18 microcontroller with 256 KB Flash and 32 KB RAM running at 48 MHz. While compatible with many shields, it operates strictly at 3.3V. The board supports standard OpenOCD and GDB tools via CMSIS-DAP SWD and JTAG protocols, requiring the Programming Port for functionality.
Parts used in the Arduino M0 Pro:
- ATSAMD21G18 Microcontroller
- ARM Cortex-M0+ Architecture
- EDBG Chip (Atmel)
- OpenOCD Server
- GDB Client
- embedXcode Template
- Arduino IDE 1.7.0
- Shields (compatible 3.3V)
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 |
arduino m0 datasheet
arduino m0 pinout
arduino m0 schematic
- What makes the Arduino M0 Pro unique compared to other boards?
The Arduino M0 Pro is the first Arduino board to feature a built-in debugger. - How does the performance of the M0 Pro compare to the Arduino Uno?
The M0 Pro runs at 48 MHz with 256 kB Flash and 32 kB RAM, which is a huge improvement over the Uno's 16 MHz, 32 kB Flash, and 2.5 kB RAM. - Can I use existing libraries designed for the Arduino Uno on this board?
Yes, libraries developed for the Arduino Uno run fine on the new board with only minor adjustments needed. - What operating voltage does the Arduino M0 Pro require?
The board operates at 3.3V only, so users must check shield compatibility before connecting them. - Which software versions are required to program this board?
Users must download the IDE Arduino 1.7.0 because other versions do not support the Arduino Zero Pro board. - How can I debug code on the Arduino M0 Pro?
Debugging works using standard tools like GDB as a client and OpenOCD as a server when the Programming Port is connected. - Does the board support both SWD and JTAG protocols?
Yes, the Arduino M0 Pro supports both CMSIS-DAP SWD and CMSIS-DAP JTAG. - What indicates that the debugger is working?
A dedicated DEBUG LED blinks when the debugger is active.



