Embedded software lives in a world of hard constraints:
- Boot fast
- Run for months
- Recover from faults
- Keep the UI responsive even when the device is busy doing real work.
For a lot of products that have embedded elements the UI is mostly a dashboard plus a few critical workflows. Things like:
- Status
- Configuration
- Alarms
- Device control
This is where WPE WebKit + Cog comes in, It lets you build a UI with web based technologies, but deploy it like an application.
What is WPE WebKit and Cog?
WPE WebKit is an open-source WebKit port designed for Linux-based embedded devices, built with flexibility and hardware acceleration in mind.
Cog is the “launcher”. It’s a small, kiosk-friendly shell that you can run on the device that embeds the WPE WebKit engine.
Why this stack fits an embedded UI
Modern UI without turning your device into a desktop PC
Most embedded systems need a clean layout, an often need touch-friendly widgets, charts or even video. Web tech is excellent at solving this UI challenge.
A kiosk model that matches workflows
Embedded software usually wants one UI that always comes back after a reboot and doesn’t “wander off” into tabs, menus, or the address bar. Cog is built around that kiosk-style “single app” approach.
A clean split between “control” and “UI”
This is a pattern that scales well for modern systems splitting the logic into 2 or more parts:
- Backend control service (Go/Rust/C++): talks to hardware, buses, sensors.
- UI (web app in WPE/Cog): shows state, guides workflows, sends commands through a local API.
This keeps privileged hardware logic out of the browser process and makes your UI restartable or tolerant to crashes without destabilizing the device.
Practical benefits for control software teams
Faster iteration without risking control stability
You can update UI logic (workflows, validation, display rules) more frequently than the underlying control software. The control service can stay conservative and heavily tested while the UI evolves at a faster rate.
Better observability and support tooling
Web UIs make it easy to add:
- A hidden diagnostics screen (“versions, uptime, network, last error, service health”)
- Remote support pages that display logs/telemetry snapshots
- Feature flags to enable or disable specific features
Categories: Developer Chat, Embedded
Leave a comment