A secure IoT environment is one of the first prerequisites of a successful product.

Following this tutorial, you will be able to run Microchip’s “Zero Touch Secure Provisioning” demo for secure authentication to AWS IoT in simple Python using Zerynth tools.

What does “Zero Touch Secure Provisioning” mean?

As you can learn reading the original tutorial made by Microchip, one of the most difficult aspects of securing a device on the cloud is securely maintaining the keys, that must be installed in the device during the manufacturing process.

The Microchip Technology ATECC508A CryptoAuthentication Device, already supported by Zerynth, securely maintains security keys and certificates (Signer and User) which makes it easy to connect IoT devices to the Cloud for secure applications in home automation, industrial networking, accessory and consumable authentication, medical, mobile and others applications.

Why “Zero Touch Secure Provisioning” in Python?

A complete integration path has led to the possibility of faithfully replicating the Microchip Zero Touch Provisioning demo in a pythonic environment thanks to Zerynth tools.

But what’s the goal of faithfully replicating something that already exists?

As you know, Zerynth’s implementation of Python for microcontrollers make embedded programming incredibly easy. Python scripts are easier to be read and probably at least ten times shorter than the counterpart in C/C++.

In addition, the Zerynth version of this demo makes the whole process more flexible, easier to customize and reuse; while retaining its secure foundation.

Last but not least, having a single programming language from the host PC scripts to the MCU firmware is a great advantage for someone with the need of understanding how the whole process of secure provisioning and connectivity happens.

Hardware Setup

The central hub of the kit is the SAMG55 Xplained Pro board, already supported by Zerynth. Then you’ll need to:

plug WINC1500 Xplained Pro into EXT1 on the SAMG55 Xplained Pro. plug OLED1 Xplained Pro into EXT3 on the SAMG55 Xplained Pro. plug CryptoAuth Xplained Pro into EXT4 on the SAMG55 Xplained Pro. plug USB cable from PC into EDBG USB port on the SAMG55 Xplained Pro. This port is how the firmware is loaded/updated and also exposes a serial port (COM port, 115200 baud).

Firmware Setup

Ensure that the latest firmware is installed on the ATWINC1500. Instructions on how to upgrade the firmware are located on the ATWINC1500-XPRO product web page. Scroll to the bottom of the page and select ‘Flash Memory Download Procedure’.

Update the WINC1500 firmware to 19.5.4. Use Atmel Studio to find create a new ASF Example Project for the WINC1500 Firmware Update Project (v19.5.4) – SAMG55 Xplained Pro. Run the samg55_xplained_pro_firmware_update.bat batch script from the src folder to update.

Software Setup

Install Zerynth Studio. Here you can find more info on how to get started with Zerynth Install AWS CLI. Used to configure AWS credentials for the Python scripts. Note: AWS CLI configure to be performed after AWS Setup. More info here. Download the folder of the demo that you can find on Zerynth’s GitHub https://github.com/zerynth/aws-iot-zero-touch-secure-provisioning-kit

AWS Setup

Manual Setup