Just 60k-80k of flash, 3-5k RAM. Such footprint is achieved by writing the VM from scratch and choosing to remove the compiler and the repl from the microcontroller; to keep VM code at minimum the Zerynth uplinker has been developed; it is a firmware uploader that also links object code on the fly. This allows to flash a minimal VM on the microcontroller once and subsequently add to it only the necessary drivers embedded in bytecode.
Absolutely not! Zerynth supports C-Python programming. Existing C code (or C object code) can be easily mixed with Python scripts without VM recompilation. For example, the Broadcom SDK for the Particle Photon is embedded in bytecode and uplinked to a running VM. Performance critical routines can be written in C, all the rest in Python getting the best of both worlds.
Absolutely 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 VM 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.
First of all, Zerynth provides only the software tools for programming the hardware. In particular, Zerynth is 100% “agnostic” towards hardware platforms. In fact, thanks to the Zerynth Virtual Machine, our tools are compatible with a wide range of 32bit MCU devices.
As a general sense, concerning the programming side of the most common prototyping platforms, the main advantage of Zerynth is that we provide an integrated stack that goes from the firmware development to the cloud connection.
Going to more detailed aspects, Zerynth offers the benefits of programming microprocessor-based boards like Raspberry Pi:
- Python language (or hybrid C/Python if necessary, and also Smart Idle times for Power Saving)
- Multi-threading support: in Zerynth each Python thread is a RTOS thread managed by a priority aware realtime scheduler
along with the great advantages of microcontroller-based boards:
- 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
Basically 3 differences:
- Zerynth App is an element of a full stack, that starts from firmware programming, thanks to Zerynth Studio, to cloud connections, thanks to Zerynth ADM, to dashboard and GUI, thanks to Zerynth App. So you have a fully integrated environment for developing embedded and IoT projects.
- You can program the board in Python (instead of C/C++) and send events to your dashboard and visualize data through the Zerynth App. More info here
- You can’t build GUIs through a WYSIWYG editor, but you can start from simple GUIs to complete websites using JQWidgets, for example, or other libraries and frameworks. Note that templates are stored thanks to Zerynth ADM, and rendered through the Zerynth App as web page applications. More info here
Zerynth is 100% agnostic towards hardware platforms and cloud infrastructures. The stack is compatible with a wide range of 32bit MCU devices and with many proprietary cloud and monitoring systems, so you can use the third party tools that better fit with your needs.
This is possible thanks to Zerynth Virtual Machine, the core element of our stack, that allows real hardware independence and code reuse on a wide range of 32-bit microcontrollers.
This is a very important advantage for Embedded Hardware Producer because Zerynth speeds up the adoption of new hardware and opens to the huge community of Python programmers.
The hardware independence feature is very important also for Product Designers and System Integrators. If you use Zerynth, when you switch from prototyping to production, you don’t need re-write the code for the new target board (probably cheaper than that one used for the prototype).The porting of boards, sensors, shields and cloud is an ongoing activity. Check out our services!
Absolutely not. Zerynth is an implementation of a Python Virtual Machine optimized for the embedded environment, running on top of different Realtime OS. Therefore, some Python features have been removed and some other features more suitable for the embedded have been added. Everything has been developed from scratch by Zerynth, thanks to the support of a Kickstarter Campaign. For a more detailed comparison take a look here.
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.