Skip to content

About μGui

μGui exists because the panels that most need a dependable, polished interface — infusion pumps, patient monitors, automotive clusters, industrial controllers — are usually the ones stuck with the fewest resources: a small MCU, a fixed RAM budget, and a codebase that has to survive an audit.

Most embedded GUI stacks make you choose: look premium or stay small or pass review. μGui's position is that you should not have to choose.

The principles

Zero heap, always. Every widget is a pair of caller-declared structs. The memory footprint is known at link time, fragmentation cannot exist, and there is no allocator to reason about in a safety argument.

Defaults are the design system. Calling *_init() yields a widget that already looks right — themed, sized, anti-aliased. Styling is a refinement, not a prerequisite. That keeps application code short and keeps products visually consistent.

Semantics over decoration. Alert, nominal and informational colours are first-class palette entries with defined meanings, not conventions someone has to remember. The four theme slots — accent, surface, knob, background — drive every widget default, so a rebrand or a dark/light switch never touches application code.

Documentation that cannot lie. Every screenshot on this site is rendered by the library itself from a buildable demo screen, and every code snippet is quoted verbatim from that screen's source.

Compliance posture

μGui is developed with regulated products in mind:

  • IEC 62304 — positioned as SOUP (software of unknown provenance) with a compliance documentation set covering classification and lifecycle interfaces.
  • ISO 26262 — positioned as a Safety Element out of Context (SEooC) for automotive programs.
  • MISRA C — the codebase is checked with static analysis and a MISRA report is maintained in the repository.
  • Tested — unit-test suites with coverage reporting run on every change to the library.

A small detail we like

The typeface on this site is Lexend — the same face the library ships as a 2 bpp anti-aliased bitmap font. What you read here is what your users see on the panel.