Skip to main content

HMI & Embedded Platform · Software

DiscOS — Embedded HMI Operating System

Coming soon

A ready-made OS for your touchscreen device: bootloader, updates, app model and a shell that machines can talk to.

DiscOS: app launcher and OTA update card on an aluminium-framed 7-inch HMI panel, with VibroBal behind

Overview

The problem. An OEM developing a touchscreen device rewrites the same infrastructure on every project alongside the HMI framework (TouchGFX/LVGL): bootloader and safe updates, settings persistence, logging, Wi-Fi provisioning, file system, a production/test shell. This layer is the invisible half of the product; its bugs show up in the field as "bricked" devices, corrupted settings and unreachable logs. Off-the-shelf HMI panels (DWIN/Nextion) are cheap, but the application logic stays on a separate MCU, and updates and integration become fragmented.

The solution. DiscOS delivers this layer as a product: a dual-image flash map (USB-free, headless bootloader + application), staging over QSPI with CRC32-verified installation, hybrid self-confirm with RTC backup + boot-meta and automatic rollback; display/touch/network/system tasks on FreeRTOS; two-tier settings (core + per-app KV); littlefs; a framed binary protocol with the ESP-01 co-processor, captive-portal Wi-Fi provisioning and a telnet shell; a power policy (dim/off when idle). The App_t application model (enter/tick/touch/exit) and the function-table app_host_t enable loadable .dap packages. The OEM writes only its own application.

Positioning. DiscOS is not a competitor to TouchGFX/LVGL but the "OS" layer beneath and around them. Today it ships with its own lightweight GUI toolkit (no TouchGFX/LVGL); a GUI library option is planned.

Bare HAL + HMI libraryOff-the-shelf HMI panel (DWIN/Nextion) + separate MCULinux (Yocto/Buildroot)DiscOS
Bootloader / safe OTAWritten per projectPanel and MCU separateYes (complex)Yes, CRC + rollback
Boot timemss5–20 sms (target < 1 s)
App model / loadable appsNoneNoneYesYes (.dap)
Machine shell / test automationNoneNoneSSHAI-first shell, 3 transports
Cost (BOM)LowLowHighLow (STM32F7 + ESP-01)
File system / loggingWritten per projectNoneYeslittlefs, log ring + live stream
DiscOS on the bench: HMI panel with launcher, VibroBal and a laptop driving the device via shell over USB
Concept

This product is in development or field testing. Contact us for technical information, pilot use and a preliminary quotation.

Features

  • AI-first shell: a machine-parsable grammar, identical on all three transports; agents and CI scripts run self-tests, screenshots, updates, file transfers and app installs through the host tool (device_cli) (bench: self-test 20/20, 25/25 including crash scenarios); log marks give test flows a deterministic anchor.
  • Loadable apps (.dap): the same source builds as a built-in app or as a package, the only difference being the added load base; busy rules ensure safe replacement.
  • Update discipline: "the OS downloads, the bootloader installs"; USB-free, headless bootloader; IWDG refresh per block; interruption, resume and rollback drills.
  • Hardware truth in one file: the board profile (board.yaml) is the single source of truth; documents carry no pin copies, and a profile checker enforces consistency.
  • Power and display policy: CPU-free PWM dimming, UI freeze/resume; the shell and screenshots keep working with the display off.
  • Rail monitor: 3V3 rail droops are tracked with ADC VREFINT + analog watchdog; RF power-ladder measurement.
  • Lock screen: SHA-256 + salt; a UI gate, not a security boundary.
  • TargetElmes HMI board: an STM32F7/H7-based OEM board with 7" and 4.3" displays.
  • TargetSigned images: update images verified by signature.
  • TargetGUI library option: LVGL integration.
  • TargetPackage repository, multiple languages and OEM branding: an app store/package repository, a multilingual interface and OEM-specific branding.

Packages

Packages
Model codeContentsHardwareStatusRequest information
DOS-F769-DKDevelopment kit: DiscOS image + ESP-01 Wi-Fi + SDK + host toolsSTM32F769I-DISCO (MB1225) + ESP-01 (CN2)Prototype (single reference board)Request information: DOS-F769-DK
DOS-SDKApplication SDK (app_sdk.h, template, .dap packager, device_cli) + documentation—Available for internal use; external package plannedRequest information: DOS-SDK
DOS-OEMTargetOEM HMI licence: image + bootloader + OTA infrastructure, Elmes HMI boardElmes HMI board (STM32F7/H7, 7" / 4.3")PlannedRequest information: DOS-OEM
DOS-APP-*TargetApplication packages (e.g. VibroBal measurement, oven HMI)—PlannedRequest information: DOS-APP-*

Specifications

Values marked “Target” are design targets, next-generation values or chip-vendor data; they are updated as measurement and certification are completed.

Architecture
MCU / reference boardSTM32F769 (Cortex-M7, 216 MHz, 2 MB flash, SDRAM) — STM32F769I-DISCO (MB1225)
Product boardElmes HMI board (STM32F7/H7)Target
Layersapps → ui / os → drivers → bsp; HAL only in the bsp layer; layer rules enforced at build time
Language / APIC; app_sdk.h umbrella header; App_t (on_enter / on_tick / on_touch / on_exit); APP_API_VERSION 1; app_host_t with 63 entries (append-only)
Boot time< 1 sTarget
Interfaces
Display800×480 DSI command mode, LTDC + DMA2D, touch; backlight PWM (TIM8 → DMA → GPIO, 1 % steps)
Wi-FiESP-01 (ESP8266, 1 MB) on UART5, custom firmware 1.2.0-RAIL; TX power 10 dBm by default (rail-droop policy); measured up to 20 dBm with droop ≤ ~20 mV (bench)
ESP protocolFramed binary protocol (0xA5 · VER · TYPE · LEN · PAYLOAD · CRC16); captive-portal provisioning; telnet bridge; ESP OTA
Shell transportsUSART1 VCP, USB-CDC (8 KB ring buffer with NAK back-pressure), Wi-Fi telnet — byte-identical grammar
Software
Shell58 commands; ok / err + error code and key=value responses; machine-readable command inventory (help --machine); --yes confirmation for dangerous commands; live log streaming; PNG screenshots
Application package (.dap)64 B header + PIC image + u32 fixup list, CRC; stored under /apps/; 256 KB SDRAM arena, one loaded package at a time; installation over wired transports only
Settings storeCore struct (magic + checksum + 2 s debounce) + 4 KB TLV/KV per app
File systemlittlefs v2.11.3 (unmodified), memory-mapped read-only window, atomic file writes; ~7.5 KB/s write, ~4.7–4.9 KB/s read over VCP (bench)
Deployment
StorageQSPI MX25L512 (64 MB): staging area + 32 MB littlefs partition; internal flash: 64 KB boot, 1.44 MB application, boot-meta and settings sectors
Update pathsVCP (ST-LINK) ~7.5 KB/s; USB-CDC ~169 KB/s (window 32); Wi-Fi (update from URL)
End-to-end update time1.44 MB application slot: USB-CDC 14.6 s; VCP 31.3 s; Wi-Fi 37.2 s (bench)
Security & data
Image integrityHardware CRC32 (zlib-compatible), rollback to the last-known-good image, hybrid self-confirm; no image signing
Image signingSigned imagesTarget
Licensing & support
Licensing modelFree for internal and partner use; OEM licence as NRE + per-device feeTarget
Roadmap
Next stepsElmes HMI board, signed images, LVGL option, app package repository, multiple languages, OEM brandingTarget

Applications

  • Measuring instrument panels
  • Oven and process HMIs
  • Laboratory devices
  • Control panels
  • HMI base for Elmes products
  • Developer and training kit
  • Devices requiring test automation

DiscOS is being built as the HMI base for Elmes products: the first product is VibroBal, followed by an HMI option for the Elmes Thermal Process Controller and an advanced HMI for the Elmes OEM Device Control Platform. Exporting screen designs from Elmes HMI Editor as DiscOS screen definitions is planned.

On devices that require test automation, agents and CI scripts drive the device through the shell without any human reading in the loop.

Compliance & documentation

  • CE (product level)
    Platform software; the CE assessment is done at end-product level
    Out of scope
  • Application SDK guide, shell command reference, ESP protocol document
    Elmes internal document
    Available
  • External SDK documentation and getting-started guide
    Target
  • Licence text
    Target

Frequently asked questions

Does it work with TouchGFX or LVGL?

Today it ships with its own lightweight GUI toolkit; LVGL integration is planned. The bootloader, update and shell layers are independent of the GUI.

Which boards does it run on?

The reference hardware is STM32F769I-DISCO + ESP-01. Porting to other boards is done through the bsp layer; an Elmes HMI board is planned.

Will the device brick if an update is interrupted?

No; an image is never installed before it is verified in QSPI, and if the installed image is not confirmed, the device returns to the last-known-good image. SWD and the ROM bootloader always remain as recovery paths.

How are applications written?

In C against the app_sdk.h interface; you start from the template app, and the same source builds as a built-in app or a .dap package. Details are in the SDK guide.

Why is the shell "AI-first"?

Responses are ok/err + key=value lines, so agents and test scripts can drive the device without a human reading the output. A machine-readable help command dumps the full command inventory.

How is Wi-Fi security handled?

Provisioning via captive portal and a WPA2 STA connection. Image signing and an encrypted transport are planned; the lock screen is not a security boundary.

What is the licensing model?

It is not final yet; internal and partner use is free, and the OEM licence is planned as NRE + a per-device fee.

Get information about this product

Our engineering team replies within 24 hours.