Skip to content

Zerynth in 5 minutes

What is Zerynth?

Zerynth is a complete software-hardware platform, It simplifies the development of IoT products by offering modular industrial development boards, production-ready SoC modules and easy-to-use python development enviornment. Zerynth hardware integrates seamlessly with Zerynth cloud, a powerful cloud service that monitors, manages and provisions devices, issues OTAs and procedure calls and visualize data.

To get started, You need one of Zerynth development boards or IoT data aquisition devices, Click here for more information on Zerynth Boards.

Get Started

This 5 minutes tutorial will show you how to connect your Zerynth hardware, use our VScode extension and start sending data to the cloud.

In 4 steps we'll go from zero to sending data securely to the cloud.

  1. Install Zerynth
  2. Create your first IoT project
  3. Prepare the device for the cloud
  4. Send data!

1. Install Zerynth

Zerynth installer is an all-in-one application that installs the Zerynth operating system that will be used on the development board, the Zerynth compiler and the VSCode plugin that enables easy and efficient software development. Zerynth installer supports Windows, Mac and linux. You can download it from these links:

Once downloaded, simply run it and follow the instructions. The installer is run differently depending on your platform.

Installing for Windows

Double click the zerynth-installer.exe you just downloaded. The first time Windows may pop up a dialog saying that the application is signed by Zerynth; just click continue to go on with the execution. It is possible that Windows will present you a blue dialog title "Windows protected your PC"; in that case, just click "more info" and run the installer.

Windows Smartscreen warning

Installing for Linux

The zerynth-installer.AppImage file you just downloaded can be executed in some distributions with a simple double click. However, in general you may need to give execution permissions to the file before running it. This is done from a terminal with the command chmod 755 <path-to-zerynth-installer>.

Installing for Mac

The zerynth-installer.dmg archive you just downloaded can be double clicked and mounted on the Finder. Just drag the zerynth-installer app contained within to the Applications folder. Next, click on Applications and run the zerynth-installer app.

Note

If you are using a Mac based on the new M1 cpu, you are required to install Rosetta.

Install the Zerynth SDK

The installer will install the Zerynth SDK in your development machine in a few steps. If you encounter any error please refere to our Installer FAQ.

First, accept the license and terms and press Install. This will install the latest version of the SDK together with Visual Studio Code (a.k.a. VSCode) and the VSCode Zerynth Extension.

The installer will do its magic and in a couple of minutes will ask you to login to the Zerynth platform.

The login is done in your web browser and if everything is ok, you can go back to the installer and start VSCode!

2. Create your first IoT project

VSCode, together with the VSCode Zerynth extension, is our default development enviroment. We spent quite a lot of effort to make it as user-friendly as possible,lets see how easy it is to use.

Clone an example

Let's create your first project by cloning an existing example.

Just press Ctrl+Shift+P and type examples in the popup that VSCode displays.

The popup is the VSCode command palette from which most of the available operations (called tasks in the VSCode jargon) can be launched. Simply choose Zerynth > Search examples and then type ZDM_. Select the ZDM_Simple example and select a destination and provide a name folder. Click Clone Zerynth Example and you are good to go.

Congratulations, you created your first IoT project!

Connect your Zerynth Hardware

The project is not ready yet, you need to add your wifi network name and password. You can do it easily by modifying the already opened file main.py (that by the way is the main entry point of every Zerynth firmware). The two variables are ssid and passwd, quite self explanatory.

Now that the project knows how to connect to your local network, we need to plug a Zerynth device to your USB port. Zerynth control panel autamtically recognizes which Zerynth board is connected.Press the Physical device action in the Zerynth Control Panel on the left. VSCode will automatically recognize the device connected to your USB (when in doubt, VSCode will ask you to choose between different options) and configure the project accordingly.

Run the firmware

Time is ticking, just press Run in the Zerynth Control Panel and the project will be moved on your device and executed! Ignore all the colorful messages for the moment and press Console in the Zerynth Control Panel. This will open the debug console of your device where you can inspect the device messages. If everything goes well, it will connect to your wifi network but will start printing out misterious messages about MQTT errors. Is this a bug?!? No, it's an advanced security feature! Read on.

MQTT errors in not provisioned device

3. Prepare the device for the cloud

IoT devices are not made only of hardware and firmware. They also have a unique cryptographic identity that links their physical existence with their virtual counterpart in the cloud. Yes, it's a lot, take a breath. Let's say that inside each and every Zerynth hardware there is a secret key protected by a somewhat magical secure element that says "hey, I am device xyz".

What is missing in the picture is some piece of information that says "physical device xyz belongs to you and in the cloud it's called my-device", namely the link between physical identity and cloud identity.

The magic of zero touch provisioning

This information is generated in a step called provisioning. It must be done only once, it's just a click and gives you control over the device forever (or until you decide otherwise).

Just click Provisioning in the Zerynth Control Panel. You will be asked to create a cloud device, give it a name like my-iot-device and accept the confirmation dialog and wait a little.

Select a device to provision
Accept the confirmation dialog
Successful provisioning!

After provisioning, in the control panel, You'll find the cloud device is now assigned an ID.

Under the hood the magic has happened! The device is now linked to your account and nobody can claim it back.

Note

If you need to use the same device in another account or workspace, right click on Provisioning and choose UndoProvisioning. You can then provision the physical device again

If you now press Cloud device a page will be opened in your browser where you can inspect the cloud identity of your device and a lot more!

Zerynth Device Manager device page

4. Send data!

We are almost there! Now press Run again and execute the project on your device. This is needed because the provisioning step erased what you loaded before. Now press Console and check that the device now does not complain and is sending data to the cloud!

You can also go back to the web browser, scroll down and check the data incoming!

Zerynth Device Manager device data console

And as a final bonus, from the web browser, press the Reset button. It will send a reset request to the device that will, guess what, reset itself.

After five minutes everything is in place: you have a securely connected device that is forever under your control; it sends data to the cloud but can also receive request from it!

You can learn more at the following resources:

Zerynth eco-system

But IoT is not just sending data; how about industrial analog sensors, relays or communicating over RS485, RS232 or CAN?

Zerynth Development boards offer a game-changing standard for connecting and adding functionalities to your application via expansions.

Expansion boards vary in features and functionality. Currently, Zerynth offers expansion boards for :

  • EXP-AIN: Expansion board with 8 Industrial analog input channels
  • EXP-CONNECT: GSM-NB-IoT and GPS enabled expansion module.
  • EXP-IO: Industrial input/output board with 4 solid-state relays, 2 analog channels (4-20mA/0-10V/NTC/current clamp) channels, 2 opto-isolated digital inputs
  • EXP-RELAY: Relay board with 6 Electromechanical power relays rated 6A 250VAC.
  • EXP-SER: Serial Communication board with : CAN, RS232 and RS485 interfaces.
  • EXP-PROTO: Prototyping board for connecting and testing different types of sensors and devices.