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
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
- Right-click on the canvas to open the creation HUD — pick a widget (button, label, image, slider, arc, bar, roller…) and place it.
- Click any widget to open its styling HUD — set size, position, alignment, colors, styles, flags, states, and bind events.
- 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
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.
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 registrationSee Generated code for what each file does, and Runtime & HAL for how to compile and run it on your MCU.
What's next
- Full editor walkthrough: Using Studio.
- Port the output to your board: Runtime & HAL.