HelpDesk2021-01-29T11:04:41+01:00

Helpdesk

Welcome to the Zerynth Helpdesk, the one place to get answers to all your Zerynth-related questions. Use the FAQ to see the most commonly asked questions, or use the contact form to reach our engineers for direct support. The Helpdesk also offers links to all the Zerynth learning resources.

Zerynth learning resources

Documentation

The full Zerynth Documentation, including programming guides and libraries.

Documentation
Demos

Zerynth demos, to help you along the way and show you what you can do with our tools.

Demos
Learn

All the resources you need to learn how to use the Zerynth SDK – tutorials, code examples …

Learn
Forum

Join in on helpful, interesting and engaging conversations about Zerynth and Python programming.

Forum

Need Help?

Use this form to reach our engineers and get direct support for your project. If you want to discuss what the Zerynth Toolset has to offer, use the Contact form.

Frequently asked questions – FAQ

Getting started

Depends on the hardware and on the features enabled in the VM, Usually 60k-80k of FLASH, 3-5k RAM.

Such a footprint is achieved by writing the Virtual Machine from scratch and choosing to remove the compiler and the reply from the microcontroller.

To keep the Virtual Machine code at minimum the Zerynth uplinker has been developed; it is a firmware uploader that also links object code on the fly. This allows us to flash a minimal Virtual Machine on the microcontroller once and subsequently add to it only the necessary drivers embedded in the bytecode.

Yes, with Zerynth modules and development kits, they are ready to be integrated in your PCB.
You are also free to write and develop your own libraries for your custom sensors and modules.

In case your hardware mounts a not-supported MCU, Zerynth provides porting features. Don’t hesitate to contact us if you have any questions.

First of all, Zerynth provides a full end-to-end platform for developing secure and connected IoT and industrial applications.

The Zerynth stack starts from Zerynth OS, a Python Enabled 32-bit multithreaded operating system designed for industrial applications, aimed at making the time-to-market as short as possible.

The Zerynth stack also includes Zerynth hardware in modules, SoCs and development boards, and the Zerynth Device Manager, an easy to use device and data management system to control and manage devices, data, OTA updates at scale.

This integration enables :

  • lower power consumption with respect to microprocessor-based boards
  • lower hardware costs in the prototyping phase
  • extremely lower hardware costs in the industrialization phase
  • all this, with a relatively tiny footprint.

No. Zerynth has been developed from scratch, thanks to the support of a Kickstarter campaign. Below you can see a more detailed comparison between Zerynth and Micropython.

  • Zerynth has a smaller footprint
    60k-80k of flash, 3-5k ram versus 80k-280k of flash and 8k of ram for MicroPython (see here). Such a footprint is achieved by writing the Virtual Machine from scratch and choosing to remove the compiler and the REPL  from the microcontroller; the Zerynth Uplinker allows to flash a minimal Virtual Machine on the microcontroller once and subsequently add to it only the necessary drivers embedded in bytecode. Zerynth is Python even more tuned to micros than MicroPython is. Let’s say that Zerynth is a Micro MicroPython. 
  • Zerynth features (multiple) RTOS for multithreading
    In Zerynth each Python thread is an RTOS thread managed by a priority aware real-time scheduler; in MicroPython, in our best knowledge, there is a custom round robin scheduler. In Zerynth the RTOS threads written in C can live along the Virtual Machine allowing for a mixed C/Python real-time environment. 
  • Zerynth supports C-Python programming
    Existing C code (or C object code) can be easily mixed with Python scripts without Virtual Machine recompilation. For example, the Broadcom SDK for the Particle Photon is embedded in bytecode and uplinked to a running Virtual Machine. Existing C code can be included in MicroPython too, but a Virtual Machine recompilation is needed. 
  • Zerynth supports a subset of Python 3.4 and adds new embedded-friendly features
    To make Zerynth suitable for microcontroller’s constrained resources, support for generators, context managers, and full-fledged closures have been made optional (will be compiled into the Virtual Machine if needed). Moreover, Zerynth has a new type, the shortarray, to handle 16-bit integer arrays. Also, Zerynth exceptions are lean and memory efficient, but still retaining the powerful debugging capabilities of tracebacks. 

Zerynth has a cross-platform IDE built on a command-line toolchain
Zerynth Studio takes away the burden of compiling the Virtual Machine, of setting up various toolchains and tools (arm gcc, xtensa gcc, etc…) and gives an easy to use interface to code and debug embedded Python. For MicroPython no official IDE does exist. Zerynth is based on a command-line toolchain to ease and automate the integration of the Zerynth workflow for programmers who prefer other development environments.

Yes. Zerynth is used by companies and teams to build amazing IoT, industrial, and embedded solutions in different sectors. Embed Zerynth SoC in your PCB and by Mass programming, and you are ready to go.
ZDM can be accessed via the web user interface available at https://zdm.zerynth.com, or using the ZDM CLI (command line interface) that is integrated in the Zerynth SDK (download from https://www.zerynth.com/zsdk/).

General

Zerynth OS is better integrated with Zerynth SoC, Zerynth modules and development kits.

Zerynth SDK provides ready-to-use modules to connect to your preferred cloud service: Zerynth Device Manager, AWS Iot, Azure IoT, etc.
To use Zerynth on your custom MCU, feel free to contact us any time.

The old Advanced Device Manager was designed to give each Zerynth device three features: FOTA, Remote Procedure Calling, a basic user interface to be rendered with the Zerynth App. 

The new ZDM is a complete device and data management system that supports FOTA, RPC, alarming, data aggregation, labelling, storage and forwarding of data. The new ZDM has been designed as the backbone for complex, secure and reliable IOT projects. 

We decided to remove the Zerynth App because looking at the IOT maturity it is impossible to guarantee project scalability with graphical interfaces that are associated to every single device, centralized data aggregation and visualization systems are nowadays mandatory. Moreover, the new ZDM has a completely renewed device security stack.

For security reasons, the device’s password can’t be recovered. 

If you lose a device password you can always regenerate it from the specific device page. Device pages can be opened by clicking on each device name in the device list.

After you successfully created a new password, download the zdevice.json file and put it in your Zerynth project, ZDM library should fetch the device data from zdevice.json file.

We explain it here. Basically, we needed a more recognizable name. Zerynthia the fascinating butterfly that inspired our new name. As caterpillars turn into beautiful butterflies after an intense transformation process, so great ideas can become perfect products if evolved using the right tools.

Technical

No. Zerynth allows a mixed C/Python programming environment. This kind of “hybrid” programming is extremely powerful in scenarios where the project needs low-level code for time-critical tasks while keeping Python flexibility and readability for not time-critical sections.

Yes. The Zerynth Toolchain (ZTC) allows managing all the aspects of the typical Zerynth workflow. It can be used with a command-line interface, like the common Linux, Windows, or Mac terminals, or it can be integrated with a custom IDE. You can find more info in the dedicated section of the documentation.

Zerynth supports a subset of Python 3.4 and adds new embedded-friendly features. To make Zerynth suitable for microcontrollers constrained resources, support for generators, context managers and full-fledged closures has been made optional (will be compiled into the Virtual Machine if needed). Moreover Zerynth has a new type, the shortarray, to handle 16-bit integer arrays. Also, Zerynth exceptions are lean and memory efficient, but still retaining the powerful debugging capabilities of tracebacks.

Make sure that in order to perform the FOTA of a device, you need to have a Virtual machine with the “Fota Enable” feature.

The command compiles and uploads the firmware for a device into ZDM.

zdm fota prepare PROJECT-PATH DEVICEID VERSION

VERSION is a string identifying the version of the firmware (e.g., “1.0”).

Once you’ve uploaded your firmware, you can send the FOTA command to a device that will download it from the ZDM and uplink it.

If the FOTA operation is finished, you can see if the device has accepted or refused it using the zdm fota check dev-uid command.

To start a fota, type the command:

zdm fota schedule FW_VERSION DEVICE_ID

where FW_VERSION is the firmware version associated with the device’s workspace uid and DEVICE_ID is the device you want to send the command to.

To check the status of a FOTA you started, to know if the device finished the task or if an error occurred, type the following command:

zdm fota check DEVICE_UID

where DEVICE_UID is the uid of the device you want to check.

Pricing

Yes. Zerynth is used by companies and teams to build amazing IoT and embedded solutions in different sectors. Once your solution ready, you’ll just need as many Zerynth Virtual Machine licenses as the number of devices you’ll be releasing on the market, by flashing them through Zerynth Studio or in Mass Programming.