Getting Started

ZERYNTH is an easy to use development suite for the high level design of interactive objects, ready for the cloud and the Internet of Things. ZERYNTH is composed of a set of open source tools that allow approaching to the embedded world in few clicks.

The ZERYNTH IDE is a browser-based development environment that runs on Windows, Linux and Mac. Through the ZERYNTH IDE you can manage your boards and program them in Python.

Let’s start step by step!

Download the latest ZERYNTH IDE Release from the ZERYNTH Download page.
If you have a Linux or MAC machine just download the related package and install it, while if you have a Windows machine here you can find a dedicated step-by-step tutorial.
Start the ZERYNTH installation.
Just follow the instruction of the “ZERYNTH IDE Setup Wizard” and you’re done. At the end of the installation process the “ZERYNTH Bootstrap” window will open starting to download all the necessary packages building a working instance of the ZERYNTH IDE on your local machine.
ZERYNTH_Bootstrap.jpg

At the end of the bootstrap, the ZERYNTH IDE will start. A nice tutorial will help you discover all the features of the ZERYNTH IDE.

ZERYNTH_IDE-Intro_Tutorial.jpg

Enjoy it!

Create a ZERYNTH user account:
  • Open The ZERYNTH IDE;
  • click on the user icon on the top-right toolbar;
  • fill the form with your email and the username you prefer. Don’t forget to pick one of the possible categories of users, this will help us to improve the user experience according to your needs;
  • check your email and verify your new account by clicking on the provided link;
  • once the account has been verified the ZERYNTH IDE automatically logs you into the ZERYNTH cloud (the first time you create a user account an IDE restart can be required. If you have sign-in issues please restart the IDE)
create-user-ZERYNTH.gif
Why registering? With a ZERYNTH account you can:
  • join the ZERYNTH community ;
  • save your projects on the cloud and access them from different devices;
  • automatically receive updates and notifications through the ZERYNTH Package Manager having all your ZERYNTH Board Packages, Libraries, Examples and Modules always updated to the last version;
  • Publish your library in the ZERYNTH Community Library section, making it available and installable by the entire ZERYNTH community in just one click.

Now it’s time to code!

Clone an example and start to play with ZERYNTH Python Scripts.

The ZERYNTH IDE includes various basic examples and also all the examples related to the libraries installed with the ZERYNTH Package Manager. ZERYNTH examples can’t be edited, they are “read only” folders and can be used as reference for the design of new projects.

ZERYNTH examples can be cloned in just few clicks:
  • open the Examples browser clicking on the “light bulb” icon on the left toolbar of the ZERYNTH IDE;
  • select the example you prefer or use the search bar. For example, just search “Oscilloscope”
  • click on the chosen example;
  • clone it by clicking on the dedicated button;
  • At this stage ZERYNTH converts the example in a new project giving you the possibility to edit the Title, the Description and the Tags. Remember that ZERYNTH doesn’t allow two projects to have the same name. If you are trying to clone an example that you already cloned in the past leaving the default Title, then you need to give a different title to this new project.
  • click on “Clone” once again and you are done!
lone-example-ZERYNTH.gif

Connect your board and start play with it!

To make the board usable with ZERYNTH, you need to “Virtualize” it. The “Virtualization” is the process of installing the ZERYNTH Virtual Machine by flashing it on a board. When launched, the ZERYNTH IDE starts a Python local server that controls the connected peripherals and shows all the available boards on the Boards Management Toolbar.

The IDE toolbar allows to “Virtualize” the selected board. The supported boards are grouped into Physical Boards (the one(s) physically connected to the local machine) and Virtual Boards (the boards usable with ZERYNTH).

ZERYNTH currently supports the following boards, chips and architectures:

Chip Manufacturer Device Family Board
ST Microelectronics STM32F103 ARM Cortex M3 Particle Core
STM32F205 ARM Cortex M3 Particle Photon
STM32F401 ARM Cortex M4 ST Nucleo
STM32F205 ARM Cortex M3 Broadcom BCM943362WCD4
STM32F427 ARM Cortex M4 Mikroelektronika Quail Board
Atmel SAM3X8 ARM Cortex M3 Arduino DUE
SAM3X8 ARM Cortex M3 UDOO
SAM3X8 ARM Cortex M3 Mikroelektronika Flip & Click

Don’t forget to install the boards USB drivers following the procedures reported in Supported Boards.

The ZERYNTH Virtual Boards feature allows code verification on all the supported boards, without having them physically connected to the local machine.

VChooseBoard-ZERYNTH IDE.png
To “Virtualize” a board just follow these steps:
  • connect your board to the machine where you are running the ZERYNTH IDE, the message “board list update” should appear on the bottom left corner;
  • select the board from the dropdown menu;
  • click on the “Virtualize” icon. The IDE will guide you through the entire process. Some boards require to be set in Device Firmware Update (DFU) mode in order to allow the flashing of the ZERYNTH Virtual Machine. Detailed guides on how to Virtualize the supported boards and how to put them in DFU mode if required is available in the Supported Boards section of the ZERYNTH documentation.
connect-ZERYNTH-board.gif

The Boards Management Toolbar also includes a Board Info Window that allows to assign all the connected board with different names and IDs, so you can rename your board as you prefer in order to easily recognize it in future.

The ZERYNTH boards naming feature allows assigning a specific name to each board you plug to the local computer. It is possible to have boards of the same type named differently in order to easily recognize them when mounted in complex setups or projects.

The current version of ZERYNTH doesn’t sync yet the board names with the ZERYNTH cloud, thus each local machine has its own board name set. The board names cloud sync feature will be added soon.

Board-Info-Window.gif

Finally, the Board Pinmap Window provides the pinout of the selected board, along with the hardware features and peripherals available on each pin. Moreover, thanks to the Board Pinmap Window it is also possible to understand how the board embedded peripherals are grouped and/or multiplexed in order to better understand how to use each specific hardware feature in the ZERYNTH Python scripts without having hardware conflicts.

Board-Pinout.gif
Verify and uplink a project into a virtualized board
The buttons on the upper left toolbar allow you to verify, clean and uplink a script into a board. To verify a project click on the Verify icon to check your script for errors. The errors will be reported in the console and in the code editor with helpful tooltips.
ZERYNTH-verify-project.gif

To Uplink your verified project into a Virtualized board just click the Uplink icon and follow the browser messages.

ZERYNTH-clean-project.png
ZERYNTH-uplink-project.gif

It is now time to develop your first ZERYNTH Project!

It takes just few steps:
  1. click on the button “Browse Project”;
  2. click on “New Project”;
  3. Decide a project title and write an optional description. Both title and description will be indexed by the ZERYNTH project search engine, making your life easier in finding old projects;
  4. ZERYNTH also allows you to insert tags. This will allow ordering your ZERYNTH projects list by title or by tags, making it easy to navigate within your development environment;
  5. click on the “Create” button.

Once you click on the “Create” button, the new ZERYNTH project opens and you will be prompted with the editor of the “main.py” file. The main is where the principal ZERYNTH code is written in Python: here is where you develop the logic of your script.

create-ZERYNTH-project-marked.png

If you wish to add more files to the ZERYNTH project you can easily do it. In ZERYNTH you can create html, json, txt, bin files and save them together with the bytecode on the board flash memory. You can also create more .py files where you can develop other parts of your code like modules and functions to be used in the main.py file.

To add new files to a ZERYNTH project, follow these steps:
  • click on “Current Project”;
  • click on “Add file to project” ;
  • after naming the file click on “Create”;
  • write the code within the empty field in the editor;

if needed, you can delete a file by clicking with the right button of the mouse on it and choosing “Delete”

When you add a .py file containing some code to be used in the main.py file (e.g. a file named helpers.py), you have to import it by adding the line import helpers in the main.py file. Thus, you can call functions located in the helpers.py file by using the following syntax:

helpers.fun_name(fun_attribute1, fun_attribute2,...)

Else, if you want to save the template.html in the board flash as resource to be used by a specific module like the ZERYNTH App library, you have to use the new_resource function defining the following code in the main.py file:

new_resource(“template.html”)

ZERYNTH_IDE-Add_File_to_Projects.gif

ZERYNTH is a modular suite that can be easily extend to fit your purpose by adding new libraries, board packages and modules.

The ZERYNTH Package Manager (ZPM) is the engine that allows users to customize the setup of ZERYNTH by installing and organizing just the necessary modules and packages.

The ZPM handles packages installation, upgrades, removal and downgrades, along with the automatic resolution of possible dependencies between packages. Moreover, you can read the changelog of the package version clicking on the “info” icon. In addition, the “lib” packages can be enabled or disabled.

The ZPM is accesible through the puzzle icon locate din the left bar of the ZERYNTH IDE. The ZPM toolbar is composed of a set of icons that help you sorting and filtering the packages according to how the packages are rated, downloaded and released. Various view for navigating the available ZERYNTH packages are selectable. The right side icon displays the installed packages with available updates.

Within each of these views, you can search the packages through the keywords you type in the search bar on the top. In addition you can filter the search results by clicking on the “setting” icon on the left of the search bar. Here you can find a dedicated tutorial on How To Use the ZPM.

ZPM-toolbar-icon.gif
To search and install a package:
  • click on the “Package Installer” icon of the left toolbar.
  • click on the “Search” icon of the ZPM toolbar.
  • type your query in the form. In this case we want to use the TOI Shield library.
  • click on the “Install” icon in the package view.
  • click on “Install”.
ZPM-install-toishield.gif
To update a package:
  • click on the “Package Installer” icon of the left toolbar.
  • click on the “Packages with updates” icon of the ZPM toolbar.
  • click on the “Update” icon in the package view.
  • click on “Install”.
ZPM-update_VMphoton.gif

To use a package in a ZERYNTH project it is necessary to import it.

Packages import syntax is very simple:

  • Official Packages are imported with: from c import m where “c” is the name of the package and “m” is the name of a module inside the package. (e.g. from cc3000 import cc3000 or from cc3000 import cc3000_tiny).
  • Community Packages are imported with: from community.b.c import “m” where “b” is the namespace of the package and “c” is the package name (e.g. from community.floyd.rtttl import rtttl)

The import autocomplete feature of the ZERYNTH IDE makes the task of importing modules even easier: as soon as “from” or “import” is typed in the code editor, the autocomplete box lists all the matching modules.

The documentation of each installed package is automatically added to the ZERYNTH IDE offline documentation during the package installation procedure. If the package contains usage examples, they can be found under the examples tab.

Finally, if you need help with Python, here you can find a good overview on Python 3 with simple and exhaustive examples.

The ZERYNTH Programming Guide and various programming examples are provided.

You can always post your questions and doubts on the ZERYNTH Community Forum logging-in with your ZERYNTH Cloud account.

If you are interested in ZERYNTH source code please fork it on our GitHub repository .