Third-party licences

Third-party licences

ctrl32 is built on open-source components. Every one of them is under a permissive licence — the kind that asks for a copyright notice and nothing else.

What this means for you

Nothing here obliges you to publish your project, your logic or your screens. You may sell machines with a ctrl32 panel on them, keep your know-how to yourself, and you owe no fees to anyone on this page. The only obligation is ours: to keep the notices, which is what this page does.

In the panel

Everything that runs on the machine.

Component Licence What it does
ESP-IDF Apache 2.0 the operating system on ESP32 panels
FreeRTOS MIT task scheduling — the PLC cycle runs as one of them
LovyanGFX BSD 2-clause the rasteriser that draws the screens
lwIP BSD 3-clause the network stack (ethernet, WEBview, Modbus TCP)
STM32Cube HAL BSD 3-clause the hardware layer on STM32 panels
cJSON MIT reads the small pieces of JSON the WEBview exchanges

The CANopen master is ours

ctrl32 does not use a third-party CANopen stack. The NMT master, SDO client, PDO mapping and the CiA 402 drive handling are our own code, so there is no licence on this page covering them.

In the editor

Everything that runs on your PC. None of it reaches the machine.

Component Licence What it does
Dear ImGui MIT the editor's user interface
SDL2 zlib window, input and the canvas the screens are drawn into
esp-serial-flasher Apache 2.0 writes the runtime to ESP32 panels
tree-sitter MIT parses Structured Text while you type
tree-sitter-iec61131-3-st MIT the IEC 61131-3 grammar for the above
yaml-cpp MIT reads and writes project files
stb_truetype public domain turns fonts into what the panel displays
zlib zlib compresses the WEBview files
TweetNaCl public domain verifies licence signatures offline

In the browser

The WEBview page is written from scratch — plain TypeScript on a Canvas, no framework. There is nothing third-party in it at all, which is also why it stays under 20 kB compressed.

Fonts

Font Licence Used for
Noto Sans SIL OFL 1.1 the editor interface and panel text
DejaVu Sans Mono permissive (Bitstream Vera / DejaVu) code and declarations
Tabler Icons MIT the icon set available to your screens

All three may be redistributed with a commercial product.

Fonts are worth checking when you add your own

Graphics libraries often bundle fonts under mixed licences. ctrl32 ships only the three above, deliberately. If you add a font of your own to a project, its licence is yours to check — the editor bakes it into the pack and it travels to the panel with everything else.

What is deliberately not here

The obvious way to write firmware from a desktop application is to bundle esptool, which is GPL-2.0. Shipping it would place obligations on the whole product — the very thing this page exists to rule out. ctrl32 uses Espressif's esp-serial-flasher (Apache 2.0) for ESP32 panels and its own ST-LINK client for STM32 panels, so no GPL component is distributed with the editor or the runtime.

Full licence texts

The complete texts are installed with the editor:

C:\Program Files\ctrl32\licenses\third-party-licenses.txt

One file, every component, each notice reproduced verbatim, with a summary table at the top saying which licence each part is under and whether it runs in the panel or in the editor. The file is generated from the build, and the release refuses to produce an installer when any component's text is missing — a licence file with a gap in it is worse than none, because it looks complete.

This page is not legal advice

It describes what ctrl32 contains and under what terms those parts were obtained. If your industry or your customer requires a formal licence audit, have this reviewed by a lawyer — that is a different document.

Tags