Introducing Zerynth Studio PRO: now available with Firmware Over-The-Air updates
Hello from the Zerynth team!
In the last year, driven by the feedback of our growing community, we’ve worked hard to make Zerynth the best Python development platform for smart devices, IoT and Industry 4.0 applications.
With the launch of the r2.0.8 release, we’re excited to introduce you Zerynth Studio PRO, the professional version of Zerynth Studio that includes industrial-grade features like:
- Firmware Over-The-Air updates;
- Power Saving;
- Possibility to select the RTOS (ChibiOS and FreeRTOS for now) that best fit with your solution;
- From 50 to infinite number of programmable devices for your pre-series and industrial productions;
- Hardware-driven Secured Firmware burned on the device at industrial volumes;
- … and much more (see the comparison table below).
Enabling Firmware OTA (FOTA) updates using Python
Once you’ve built your IoT system, whether it is a Wi-Fi connected fleet of smart vending machines or a Lora-based system for monitoring an oil pipeline, you might need to keep your solution updated with customer’s requirements. To meet this specification, Zerynth has included the Firmware Over-the-Air (FOTA) update feature in Zerynth Studio PRO. And, most important, we made it incredibly simple and extremely powerful: while the FOTA progresses, the rest of the firmware keeps running normally, with an important reduction of the offline time of the device.
Note: the Zerynth FOTA module can be safely imported into every script, however its functions will raise
UnsupportedError if the target Zerynth VM is not enabled for FOTA features (available for Pro users only). Here’s an example of the creation of a Zeyrnth VM with PRO features enabled.
As you can see below, the code needed to perform a FOTA update using Zerynth is very, very simple.
# FOTA Updates
## This example only works on a FOTA enabled Virtual Machine!
from wireless import wifi
# this example is based on a ESP8266 device
from espressif.esp8266wifi import esp8266wifi as wifi_driver
# Import the Zerynth ADM library
from zadm import zadm
# Import the fota library
if event == 0:
elif event == 1:
print("FOTA record is changing")
elif event == 2:
print("device is going to RESET!")
# Create a device instance by passing the device UID and TOKEN (copy and paste from the ADM panel)
# enable logging to debug
z = zadm.Device("DEVICE-UID-HERE", "DEVICE-TOKEN-HERE", log=False, fota_callback = fota_callback)
# Get information about the currently running configuration
# Check documentation here: https://docs.zerynth.com/latest/official/core.zerynth.stdlib/docs/official_core.zerynth.stdlib_fota.html
rec = fota.get_record()
bcslot = rec
valid_runtime = rec
# connect to the wifi network (Set your SSID and password below)
for i in range(0,5):
except Exception as e:
print("Impossible to link!")
# Start the device instance!
# It immediately returns while a background thread keeps trying to connect and receive messages
# Do whatever you need here
msg = "Hello, this is Bytecode running on slot "+str(bcslot)
msg = "Hello, this is Bytecode runnung on slot ??"
# blink a led and print some message
except Exception as e:
The FOTA process can be performed “manually” by using the low-level libraries offered by the Zerynth Standard Library. However, by using the Zerynth Advanced Device Manager (Zerynth ADM) and Zerynth Studio (or the Zerynth Toolchain) together, the FOTA process can be extremely simplified. Take a look at the Zerynth ADM doc for more info.
How to get Zerynth Studio PRO
You can access Zerynth Studio PRO (available as IDE or Toolchain) by upgrading your current Zerynth account from Free to PRO and choosing a monthly or a yearly subscription, with a simple pricing scheme per single user: $39/month or $390/year.
If you don’t have a Zerynth account yet, you can create it when installing Zerynth Studio, our cross-platform IDE for developing your Python or hybrid C/Python code and managing your boards. It includes a compiler, debugger and an editor, alongside tutorials and example projects for an easy learning experience. You can download Zerynth Studio and get started with one of the supported boards for free! With the free version of Zerynth Studio, you will be able to use all the features you need to prototype your IoT solutions and to program for free up to 5 units of each supported board.
Why Python for the Embedded World?
Industry 4.0 is just around the corner and the Internet of Things is potentially one of the most important trends in the history of the industry. But it’s time to move beyond “potential.”
We see the IoT as a software challenge: the barriers to entry into this new technological environment are high, while the time to market to develop commercially viable solutions becomes shorter and shorter.
In the meantime, Python programming language is becoming very popular in Arts, Interactive installations, but also in scientific data analysis, web design and software development. An enormous crowd of professionals skilled in using Python “potentially” able to develop the software for the “next big thing” in IoT and to ship new amazing products in a short time.
This is just one of the reasons to adopt Zerynth for designing embedded applications and IoT connected devices, being free to use any 32-bit microcontroller and connect to any cloud infrastructure. All in Python & hybrid C/Python language.
Why using Zerynth?
Easy for beginners and powerful for experts
First of all, simplicity! Unlike other Python implementations for microcontrollers, with Zerynth there’s no need to copy/paste creepy scripts from different web sources. No need to drag-and-drop any file in any folder or via FTP. No need to install Python on your PC and no need to install Putty or special drivers. Thanks to Zerynth, you can make your device programmable in Python with just a few clicks!
As you can see in this tutorial on how to program a NodeMCU board using Zerynth, you just need to:
- Download and install Zerynth Studio
- Connect, Register and Virtualize the ESP8266 board
- Clone an example and uplink it to the board
That’s it. Following these very simple steps, you can program your device in Python instead of having to use complex low-level languages like C or C++. This is an excellent choice for beginners who are new to programming and hardware.
For advanced users, Zerynth allows mixing Python and C code in the same project.
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 non-time critical sections.
Find out more about the Zerynth-C language interface in the official doc.
Write once, run everywhere
Zerynth Virtual Machine, the core element of the Zerynth stack provides a real hardware abstraction layer allowing code reuse on a wide range of 32-bit microcontrollers, the heart of embedded and IoT solutions.
The hardware independence is critical for many:
- for Product Designers, it reduces the time to market because they haven’t to re-write the code when they switch from prototyping to production;
- for System Integrators, it makes it easier to focus on the integration part and select the board that better fits with the project, without the need to worry about low-level functionalities and programmability;
- for Embedded Producers, it speeds up the adoption of new embedded hardware and opens to the huge community of Python programmers.
As the Zerynth VMs are linked to the single chip ID, they are “generated on demand”, just when needed. Do you need more VMs for your prototyping, pre-series and industrial productions?
Upgrade to Zerynth Studio PRO to get our welcome pack of 50 Zerynth VMs (with FreeRTOS), ready to be used at any time with any of the supported devices.
In addition, for big prototyping and production purposes, Zerynth VMs are purchasable in “Packs”, usable for all the supported boards. You can get the Packs of Zerynth VMs you need in our store.
You can always check your currents assets and manage your subscription in the profile section of Zerynth Studio.
What you can do with Zerynth
Unlike other IoT development platforms, Zerynth provides a complete “ecosystem” of tools that allow you to go from the firmware development to the cloud connection, thanks to an extensive collection of libraries.
Need inspiration? The Zerynth Academy website section provides a list of tutorials that guide you to develop embedded and IoT solutions in Python with the Zerynth Stack. You will learn:
- how to use Zerynth to program in Python for ESP8266, a successful and widely adopted microcontroller for IoT and embedded applications;
- how to use Zerynth and Arduino MKR1000 to enable IoT Security;
- how to create a LoRa network programmed in Python using Zerynth and connected to The Things Network;
- how to get and visualize sensor data of LoRa nodes using Zerynth and Matplotlib, a very popular Python plotting library;
- how to use Zerynth program in Python for Hexiwear, one of the most loved wearable IoT development platforms
- how to use Zerynth to program in Python for Nordic’s nRF52832, a Bluetooth 5-ready SoC supporting Bluetooth Low Energy (BLE).
Beyond Arduino and Raspberry Pi…
With an integrated stack that goes from the firmware development to the cloud connection, Zerynth offers the benefits of microprocessor-based boards like Raspberry Pi:
- Python language (or hybrid C/Python if necessary)
- Multi-threading support
- 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 of 60k-80k of flash, 3-5k ram.
…for scaling up without pain
Zerynth is already used by companies and professional teams to build amazing IoT and embedded solutions in different sectors: retail, commercial refrigeration, waste management, smart devices and many more, as you can see in the “Built with Zerynth” wall.
We are proud to make the Internet of Things technologies more accessible for commercial applications to not embedded engineers and small-medium enterprises wanting to provide a digital soul in their solutions.
Now it’s your turn! Are you ready to go PRO?