Wemos SAMD21 M0 Arduino M0 Compatible Board

An Arduino M0 compatible board called Wemos SAMD21 M0 is available from several online shops such as Banggood, AliExpress and Amazon, and also appears from several sellers on eBay. What appears to be the same board is also marketed as RobotDyn SAMD21M0. This blog post provides more information on the board.

An image of the Wemos SAMD21 M0 is shown below. As can be seen in the image, the Wemos logo appears on the board near the SAMD21G18A microcontroller chip. This board is not an exact copy or clone of the Arduino M0, but has a few differences such as the extra TXD and RXD pins found at the end of the board.

WeMos SAMD21 M0 Arduino M0 Compatible

WeMos SAMD21 M0 Arduino M0 Compatible

Wemos SAMD21 M0 Board Logo

Apparently this board is not actually made by the Wemos company, but the board is silk-screened with the Wemos logo. This has been mentioned on the Arduino forum in a few places. Here are a couple of examples:

Arduino forum message mentioning that the Wemos board does not appear on the official Wemos website.

An Arduino forum user mentions that Wemos does not admit the existence of this board.

Arduino M0 Compatible

The Wemos SAMD21 M0 board is compatible with the Arduino M0 which was originally from arduino.org when arduino.org and arduino.cc were having their fight. Now that the two companies have finished fighting and merged back together, the Arduino M0 board is listed on the arduino.cc website.

Circuit Diagram

I have not found a circuit diagram for the Wemos SAMD21 M0 after extensive searching. As the board is compatible with the Arduino M0, the Arduino M0 information page will be useful. A circuit diagram or schematic for the Arduino M0 can be found under the DOCUMENTATION tab on this page.

Wrong Information

On many of the sellers web pages for the Wemos SAMD21 M0, there is incorrect information about the board that describes it as an Arduino Zero or Arduino M0 Pro. The information also mentions that it has Atmel’s embedded debugger (EDBG) on the board – this is not true. Only the Genuino Zero and Arduino M0 Pro have the EDBG.

Older Boards

Some users of earlier boards complained about the power LED being too bright. There were also complaints about the board not working with the Arduino IDE. This has changed with the newer boards. I have not had these problems with boards ordered in 2018.

Hardware Differences

Although the Wemos SAMD21 M0 board is compatible with the Arduino M0, it is not a clone or exact copy of the Arduino M0, but rather a variant of it.

Two extra serial port pins can be seen at the end of the board. These pins are labeled TXD and RXD. The power supply looks different between the boards and some of the components such as LEDs are in slightly different locations on the boards.

Wemos SAMD21 M0 Quick Start Tutorial

A Wemos SAMD21 M0 quick start tutorial can be found on the Starting Electronics website. This tutorial shows how to install the programming tools to program the Arduino M0 and compatible boards in the Arduino IDE. It shows how to blink the on-board LED as a quick test to see that the board is working and then shows how to use the serial ports to communicate with the Arduino IDE Serial Monitor.

Go to the Wemos SAMD21 M0 tutorial →

4 thoughts on “Wemos SAMD21 M0 Arduino M0 Compatible Board

  1. Hi every one,
    I’ve recently bought an Arduino Zero SAMD21-M0 from Aliexpress with WebMos logo on the silk layers.
    I’ve noticed an issue with the PCB. The Arduino Zero (AZ), has been tested by using the example provided by the Arduino platform “Fade.ino”. This program checks the fading effect on a LED connected to a digital pin, in output mode, with the PWM function.
    I’ve tested all the digital pins, from 0(RX), 1(TX), …., 13. This AZ has capability of PWM via analogWrite in all the pins except in 0(RX) and 1(TX), associated to the communications with the computer via RS232 (USB). I’ve used a simple LED with a resistor. Every pin worked as expected, except 2 and 4.
    Thus, pin 0 and 1 doesn’t have the PWM fading effect, just they blink. When pin 2 is assigned, into the program to fading, there is no effect on the LED wired to pin 2. Nevertheless, if the wire of the LED is moved to the pin 4, it blink, as is the behavior of pin 2 usually associated with interrupt routines.
    Moreover, when pin 4 is assigned into the program to fading, there is no effect on the LED wired to pin 4. Nevertheless, if the wire of the LED is moved to the pin 2, it starts to fade, as is the usual behavior of pin 4. This pin confusion is also observed when I used the very well-known “Blink.ino” program.
    I’ve test the procedure described with Arduino UNO and Arduino DUE (connected to the Native USB), and there is not mistakes in their behavior.
    So, the conclusion is that there is a swapping for this actual design in the PCB. Or could be a PCB build-up defect only in my PCB, as nobody reported this issue in the Web.
    Is there anybody with the same issue?
    I’ve already asked the seller about the address of the corporation who build-up the PCB.
    Thanks in advance.

    • This SAMD board printed with Wemos logo has the IO pins from MCU routed to the header pins exactly same as Arduino M0, but it is loaded with Arduino Zero bootloader. Definition for Pin 2 and pin 4 for Arduino M0 and Arduino Zero are swapped, so therefore you are having this behavior. So when you assigning pin 2 like pinMode(2, OUTPUT), it actually goes to pin 4 on the physical board and vice versa. The RobotDyn version is loaded with correct M0 bootloader, so it doesnt have this problem. The way I did is that I used the Keil uLink2 to program the M0 bootloader to all the Wemos boards that I purchased using the SWD port, and thus they appear to be Arduino M0 board instead.

  2. @Domingo Glez.-Arjona
    My Wemos Board was bought on Amazon and named like this:

    SAMD21 M0 Modul 32-Bit Arm Cortex M0 Kern Kompatibel mit Arduino Zero Arduino M0

    It is not a “Arduino M0” even if it has this layout:

    it has the bootloader of this:

    so thats the bormblem i think… Yes the ports are mixed and you need to edit our own board definition but i would like to go another route.

    Reflash the original bootloader of the “retired” Arduino M0 non Pro/Zero with only one micro USB port, it should work then as a standard part

Leave a Reply

Your email address will not be published. Required fields are marked *