Arduino MKR1000 meets Python

With the release r2.0.7, Zerynth adds another board to its supported device list: Arduino MKR1000, a device specifically designed for IoT projects.

The MKR1000 is described as a powerful board that combines the functionality of an Arduino Zero (already supported by Zerynth) and the connectivity of a Wi-Fi Shield, with a Cryptochip for secure communication. The design also includes a Li-Po charging circuit that allows the Arduino MKR1000 to run on battery power or external 5V, charging the Li-Po battery while running on external power.

Now, programming the board in Python thanks to the Zerynth VM makes Arduino MKR1000 one of the best choices for the development of IoT battery-powered projects.

MKR1000 specifications

The Arduino MKR1000 is based on the Microchip ATSAMW25 SoC, that is part of the SmartConnect family of Microchip Wireless devices. In particular, the ATSAMW25 is composed of three main blocks:

SAMD21 Cortex-M0+ 32bit low power ARM MCU

Cortex-M0+ 32bit low power ARM MCU WINC1500 low power 2.4GHz IEEE® 802.11 b/g/n Wi-Fi

low power 2.4GHz IEEE® 802.11 b/g/n Wi-Fi ECC508 Crypto Authentication

The main features of the board are:

Board Power Supply (USB/VIN): 5V

Supported Battery: Li-Po single cell, 3.7V, 700mAh minimum

Operating Voltage: 3.3V

Digital I/O Pins (DIO): 14

Analog Input Pins (ADC): 7

UARTs: 1

SPIs: 1

I2Cs: 1

Flash Memory: 256 KB

SRAM: 32 KB

Clock Speed: 48 MHz

Size (LxW mm): 61.5 x 25.0

Go to the dedicated page of the Zerynth Docs to get more info about this board.

Get started with Arduino MKR1000 and Python

Download and Install Zerynth Studio

First of all, of course, you have to download and install Zerynth Studio, our cross-platform IDE for embedded and IoT development. If you didn’t do it yet, download it here for free! Once you’ve installed it, open Zerynth Studio and create a Zerynth user account.

Connect and Virtualize the board

To recognize the device, Windows machines require drivers that can be downloaded from the official Arduino MKR100 page, while OSX and Linux machines will recognize the board automatically.

Once connected to a USB port, if drivers have been correctly installed, the Arduino MKR1000 board is recognized by the Zerynth Studio and listed in the Device Management Widget.

To register and virtualize the board, Arduino MKR1000 MUST be put in virtualization mode by double-clicking the RST button.

Then select “Arduino MKR1000 Virtualizable” on the Device Management Widget and register the device by clicking the “Z” button.

Put the board in virtualization mode by double-clicking the RST button and create a Zerynth Virtual Machine for the device by clicking the “Z” button for the second time. Now you can virtualize the device by clicking the “Z” button for the third time. You can find more info about the virtualization process in the relative doc.

Clone the “Blink” example and uplink it to the Arduino MKR1000

Now you can start to program your Arduino MKR1000 in Python!

Zerynth Studio includes a lot of examples that you can clone with just a few clicks.

Let’s start with the “Blink” example. You can find it in the “Examples Browser” panel or you can use the “Quick Search” feature, searching for “Blink”.

Let’s take a look at the code in the “main.py” file. The Python script is very easy: