Start·01

Getting started

Launch Protok Studio, create your first project, build a screen, and run it in the simulator — no hardware required.

Protok Studio is a cross-platform IDE — available as a desktop app for Windows, macOS, and Linux, or directly in your browser. You design LVGL display interfaces and wire low-code HMI logic visually, simulate them against live CAN traces, and export deterministic C99 firmware for your target. This guide takes you from a fresh start to a running simulation in a few minutes.

1. Launch Protok Studio

Open Protok Studio in your browser, or download the desktop app for your platform from the downloads page (or from yourcustomer portal if you have a subscription). No installation required for the web version — just open and start building.

No account needed to try it

The Community tier is free for non-commercial use. You can explore the editor and simulator without signing in. A subscription unlocks unrestricted C99 generation and PDF passport exports — see Plans.

2. Create a project

On launch, choose New project. A Protok project (.lowcode) holds your display screens, widgets, CAN signal bindings, and low-code logic nodes — all in one file. Widgets and logic nodes live on the same canvas and share one signal bus.

3. Build a screen

  1. Right-click on the canvas to open the creation HUD — pick a widget (button, label, image, slider, arc, bar, roller…) and place it.
  2. Click any widget to open its styling HUD — set size, position, alignment, colors, styles, flags, states, and bind events.
  3. The canvas renders a live LVGL preview through the WASM engine — what you see is what the target renders.

4. Bind CAN signals

Import a DBC file (SAE J1939 or raw CAN) to get typed signals. Drag a signal onto a widget to bind it — the widget's value, text, or style updates automatically when that signal arrives on the bus. You can also feed signals into low-code logic nodes.

5. Wire logic nodes

Stay on the same canvas and drag logic nodes from the palette: comparisons (IF, OR, AND), math, delays, cyclic timers, watchdogs, screen switches, animation triggers, NVM, and C-script. Connect them to widgets and signals to build behavior without writing code — for example, switch screens when a signal exceeds a threshold, or trigger an animation when a watchdog fires.

6. Simulate

Hit Simulate. The WASM simulator runs the same C99 runtime your target will run, right in the app. You can:

  • Replay recorded CAN traces.
  • Inject individual CAN frames, GPIO states, or TRDP messages.
  • Watch the HMI and logic react in real time at full frame rate.

Simulate before you flash

The simulator is a faithful preview: it executes the generated runtime, not a mock. If it works in the simulator, it works on the target — provided your HAL port is correct.

7. Generate C99

When the design is ready, choose Generate C99. Protok emits a set of portable C99 source files you drop into your firmware project. No runtime royalties, no vendor lock-in — the code is yours.

generated output
ui_screens.c / .h     # LVGL screens + widgets (entry: ui_init)
assets.c / .h         # fonts, images as C-arrays
pli_can.c / .h        # CAN/J1939 processing + signal decode
pli_hal.c / .h        # weak HAL stubs — you override these
pli_nodes.c / .h      # logic nodes (comparisons, math, watchdogs...)
pli_timers.c / .h     # LVGL timer registration

See Generated code for what each file does, and Runtime & HAL for how to compile and run it on your MCU.

What's next