Skip to content

pylvgl smart screen: Python Themes and LVGL Smart Display ​

简体中文 · English

pylvgl smart screen

Put the data you care abouton another screen on your desk

Define themes with Python. Render interfaces with LVGL. Bring your ideas to the screen with AI assistance.

pylvgl-smart-screen is a USB smart display project for D125 devices. The Windows host collects and organizes data, then sends it over USB. The device renders themes locally using MicroPython + LVGL to show hardware status, Cursor/Codex usage, Chinese A-share market data, or custom information.

Simulated host application and theme previews

Composite of actual application screenshots and project theme previews. All readings in this image are demonstration data; this is not a photograph of a physical device.

Download · Themes · How it works · Get started · Support

Customize a theme as easily as editing a script ​

Change the interface with Python, without compiling routine theme changes ​

Use MicroPython's LVGL bindings to describe your interface in Python. Adjust layouts, colors, text, charts, and refresh logic within each theme to adapt the same screen to different information needs.

Within the capabilities of the existing firmware and interfaces, edit theme scripts and assets, preview them, deploy them, and reload as prompted. There is no need to recompile the firmware or rebuild the host EXE.

Flexible scripts, native LVGL rendering ​

The LVGL graphics engine is compiled into the device firmware. Python accesses its widgets and drawing capabilities through bindings. Scripts organize the interface while the native graphics engine handles rendering, combining flexible customization with efficient drawing.

The PC sends data, and the device updates the display locally. Layout changes do not require rebuilding the graphics engine. Actual smoothness depends on theme complexity, asset sizes, and device capabilities.

Start customizing without first becoming an embedded engineer ​

Start with an existing theme and describe your idea: “Make the CPU temperature larger, show memory as a ring chart, and use a dark color scheme.” AI helps propose changes and generate theme code. Check the preview and review the differences before deploying to the screen.

Common interface changes can start with an idea and a template, without setting up an embedded build environment. AI editing requires a compatible model API and operates within the theme editor's supported scope. New hardware drivers, firmware capabilities, or data collection interfaces still require development work.

From an idea, to a script, to a desktop information screen of your own.

Why choose it ​

CapabilityWhat it offers
Python theme scriptsEdit scripts and assets within existing interfaces; routine changes require no firmware compilation
Precompiled LVGL enginePython calls the bindings; the device's native graphics engine renders the interface
USB connectionHID carries live data and controls; MTP manages themes and configuration
Local device renderingStructured data is sent to the SoC for rendering; this is not desktop mirroring
Multiple data sourcesChoose hardware monitoring, Cursor/Codex usage, or A-share market data
Portrait and landscape themesSelect an orientation supported by the theme's layouts
Independent theme managementCreate, import, preview, synchronize, deploy, and export themes without rebuilding the EXE for routine theme changes
Optional AI editingStart with a template and a natural-language request, then preview and review changes before applying them

Where it fits ​

  • PC status dashboard: Keep supported CPU, GPU, memory, and network metrics visible on a separate screen.
  • Developer workspace: Display usage information supplied by Cursor or Codex data sources with less window switching.
  • Market display: Choose stock symbols and view A-share quotes fetched online by the PC.
  • Personalized display: Adapt layouts, colors, information hierarchy, and existing image assets in a theme.

Available metrics depend on PC hardware, collection permissions, and the data source. Themes do not sign into accounts themselves to obtain usage information. Market-data availability and update timing depend on the provider.

How it works ​

A shared theme system connects both sides: the Host organizes data and manages themes; the Device receives data and updates the display. Theme rendering is separate from the common device runtime, and visual themes do not need to depend on one another.

Hardware overview ​

The same D125 hardware, with different firmware for different applications.

pylvgl-smart-screen shares its hardware platform with the D125 Zephyr display bring-up board. Refer to that page for board, connector, and hardware information. This project uses its own compatible MicroPython + LVGL firmware, working with the Windows host over USB to run customizable Python themes.

To use this project, install the firmware and complete runtime files supplied for pylvgl-smart-screen. The two projects use different firmware; the Zephyr solution's firmware is not a substitute for this project's runtime firmware. The current package includes the D125 2.5 IMG and checksum files; see GitHub repository · Download package.

Hardware connection ​

Logical USB connection between a Windows PC and D125

  1. Prepare a Windows PC, a USB cable that supports data transfer, and a compatible D125 device.
  2. Make sure the device has compatible firmware and a complete set of runtime files.
  3. Connect USB, refresh the device list in the host application, and select the device.
  4. Select a theme, deploy it if needed, and start sending data.

This is a logical connection diagram. Consult the actual board documentation for connector type, power supply, rated voltage, pinout, and TF-card requirements; these are not confirmed hardware specifications on this page.

Appearance and color concept ​

Product concept with red, green, and blue portrait displays and a yellow landscape display

AI-edited concept based on a supplied reference image, not a photograph of physical devices. From left to right at the back: red Hardware, green Cursor, and blue Codex Mist; the front yellow display shows A-share in landscape. Screens use theme previews: hardware and usage readings are simulated, while A-share shows historical data from 2026-10-30. Enclosure colors are illustrative; actual appearance and available colors depend on the physical product. Connector close-ups and power labels remain to be supplied.

Software architecture ​

Host: the PC application ​

Host architecture: UI, application assembly, library, sources, encoding, transport, and preview

ModuleResponsibility
ui / appPySide6 interface, sessions, service assembly, theme operations, and application state
sourcesShared data collection, source registration, and optional theme collectors
libraryTheme metadata validation, import/export, dependencies, and device synchronization
Theme encoding / stream / protocolEncode snapshots as theme data, construct common frames, and schedule transmission
transportSend HID data and controls; read and write files through MTP
previewPC preview using shared theme drawing and portable decoding
aiOptional model requests, restricted file context, change plans, and candidate validation
Portrait preview · Codex MistLandscape preview · Codex Mist
Portrait host simulation with demonstration dataLandscape host simulation using host/tools fake data

Isolated simulations of the actual host interface, rendered natively by Qt at 2× and saved as lossless PNGs. Both window images are 1096 × 1166. No hardware, user accounts, or model APIs were connected. The previews and original theme images use the same fake data.

Device: the SoC application ​

Device architecture: MicroPython entry point, common protocol, theme decoding, and LVGL rendering

ModuleResponsibility
main.py / runtimeStartup, polling, refresh, theme switching, and display lifecycle
transport / protocolReceive USB data, validate common frames, and read control fields
Theme decoderApply shared or theme-local protocol data to telemetry state
storage / configConfiguration, theme mappings, and file management
ui/<slug> / LVGLLoad theme drawing code, images, and fonts; refresh the device display

The device uses MicroPython + LVGL. MTP file transfer is provided by the compatible device firmware. The device Python application in this repository is separate from the low-level firmware build project.

Themes: extensible units connecting both sides ​

text
themes/<slug>/
  theme.json              Name, version, source, protocol, and API requirements
  host/
    preview.json          PC preview and supported orientations
    source.py             Optional: theme-specific data collection
    encoder.py            Optional: local protocol encoding
  device/
    dashboard.py          Device interface rendering
    layout.py             Layout definitions, when needed
    decoder.py            Optional: local protocol decoding
    assets/               Images and other theme assets

Standard themes reuse shared protocols. New data interfaces can use dedicated collector plugins or local encoders and decoders. Device themes handle display, not PC account login or network collection. Code and assets travel together in the theme package for sharing and migration.

Theme background resources — 2026-11-06 ​

This update includes source code, background images and shared protocols for seven themes: Hardware, Holo Glass, Millennium, Cursor, Codex, Codex Mist and A-share. The cards below use a consistent layout to present the supplied original backgrounds. Switch orientation or open an original image for a closer look.

These are static background resources, not complete running interfaces. Theme code adds dynamic values, charts, controls and some foreground decorations at runtime. Any text or readings already embedded in a background are part of the artwork, not live data. Portrait images are 720 × 1280; landscape images are 1280 × 720.

Download standalone theme resources (2026-11-06) · SHA-256 checksum

The standalone archive includes theme source, shared protocols and reference documentation. It does not contain the host EXE or firmware. Back up existing themes, extract to a separate directory and follow the matching application's theme import workflow. Preserve theme slugs, directory structure and resource filenames.

From a template to your own interface ​

Create and share ​

  1. Click New in the host application and set the name, identifier, version, template, and supported orientations.
  2. Edit the theme and check the PC preview.
  3. Stop streaming, import or deploy the theme, and review library alignment and deletion prompts.
  4. Restart the device as prompted, resume streaming, and check the physical display.
  5. Export the complete theme ZIP to back up or share it.

EXE users can manage themes and use AI editing without installing Python. The supplied runtime executes theme scripts; routine changes require no compilation. For manual coding, refer to the Python, LVGL, and theme interface documentation. Additional dependencies must be supported by the existing runtime.

Optional AI editing ​

Describe an idea → Generate a plan → Approve its scope → Generate changes → Review differences → Apply and validate.

Configure a compatible model API of your choice. The built-in editor handles a restricted set of theme drawing files, display metadata, and preview settings. It does not automatically modify collectors, communication protocols, or common device code. Back up the theme before applying changes. If validation fails, you decide whether to request a repair.

Before using AI editing

Planning, code generation, and repair requests may each incur API charges. Review the content being sent. The application does not intentionally send its API configuration file or key, but you must remove any secrets embedded in theme source files. Static checks and PC previews cannot replace hardware validation.

Quick start ​

1. Prepare the device and application ​

Use a D125 with compatible firmware and runtime files installed. Extract the complete release package and keep these entries together:

text
pylvgl-smart-screen/
  pylvgl-smart-screen.exe
  assets/
  themes/
  docs/
  device/firmware/

2. Connect and preview ​

Connect the device over USB, run the EXE, refresh the device list, and select the D125. Choose an existing theme, enable PC preview, and select an orientation that the theme supports.

3. Deploy and display ​

If the device does not have the theme, stop streaming and deploy it first. Review prompts about possible removal of other device themes. Restart as prompted, then click Start.

The application supports tray operation. Closing the window may only hide it; use Exit to quit completely.

Specifications and requirements ​

ItemCurrent information
Product namepylvgl-smart-screen
DeviceCompatible D125 board, firmware, and complete device runtime files
HostWindows; the released EXE requires no Python installation
Device softwareMicroPython + LVGL on the SoC
USB communicationHID: live data and controls; MTP: themes and configuration
Theme canvasPortrait 720 × 1280; landscape 1280 × 720
Orientations0° / 90° / 180° / 270°, subject to the theme's layouts
Data requirementsAccount usage depends on the corresponding source; quotes and model APIs require their network services
Firmware resourcesThe repository and user package include 2.5 image with checksums; obtain build tools and flashing utilities separately

This page does not promise unverified refresh rates, end-to-end latency, power consumption, or coverage of all PC hardware metrics. Verify firmware compatibility, power, and storage requirements on the target device.

Frequently asked questions ​

Is this an extended PC monitor? ​

It is a themed secondary display for structured data. The host transmits data and the device renders locally. It is not intended for dragging PC application windows onto it or mirroring the desktop.

Can I use it without AI? ​

Yes. Data display, theme import, and device deployment do not require a model API. AI editing is optional.

Does the PC preview exactly match the device? ​

The preview helps check layout and data. Fonts, assets, and the device runtime still require checking on hardware. A preview is not a screenshot of the physical display.

Can deployment affect existing device themes? ​

Yes. Synchronization and deployment align the theme library and may remove device themes that are not retained. Stop streaming, back up files, and read the prompts first. Storage capacity also limits the number of themes you can deploy.

How do I protect accounts and API keys? ​

Do not embed credentials in themes or share your local ai-settings.json. Hide accounts, keys, personal paths, and device identifiers before publishing screenshots or logs.

Download package ​

Download pylvgl-smart-screen 0.2.0: host application, themes, and firmware

Resource update: 2026-11-06. The complete archive below retains the 0.2.0 host application and includes the updated seven themes and shared protocols. This is a theme resource refresh.

Extract the complete Windows release package and run pylvgl-smart-screen.exe; no Python installation is required. It supports D125 devices with compatible firmware and complete runtime files already installed, and EXE-based theme development.

ItemContents
Filenamepylvgl-smart-screen-0.2.0.zip
Size110,919,254 bytes, approximately 105.8 MiB
ApplicationHost EXE and runtime assets, including theme creation and AI editing
ThemesSeven built-in themes, drawing source, images, preview settings, and shared encoding/decoding protocols
Firmwaredevice/firmware/: D125 2.5 IMG file, SHA-256 checksums, and Chinese/English instructions
User documentationChinese/English guides for quick start, operation, device setup, theme development, collector plugins, and AI editing
AI guidanceChinese/English docs/ai/THEME-EXE guides for theme development using only the EXE
Protocol documentationCommon USB HID, theme configuration conventions, and theme-specific protocols

Download the SHA-256 checksum

text
d4809e962051a0502a11b4980c491fe7017bbab72f23bbdb451aa227ec77f12d

Extract everything, keeping assets/, themes/, docs/, and device/ alongside the EXE. Verify the download with Windows PowerShell:

powershell
Get-FileHash .\pylvgl-smart-screen-0.2.0.zip -Algorithm SHA256

What else is needed for initial device setup?

This package includes PC usage and theme development materials plus D125 2.5 firmware image. It does not include the complete device runtime package, flashing utilities, or the low-level firmware build project. Read the instructions in device/firmware/, verify SHA-256, and select a version according to your board documentation. The image has not completed hardware flashing validation in this project. Initial setup, firmware upgrades, or custom device decoders require matching device documentation and runtime files. Confirm the board, power supply, and flashing procedure with the maintainer. Model API keys and account credentials are not included.

Resources and support ​

ResourceLink
Host, themes, and firmwareDownload 0.2.0
GitHub repositoryUltraSemiCN/pylvgl-smart-screen
Standalone themes (2026-11-06)Download theme ZIP · SHA-256
Hardware and design filesD125 display board

Ultrasemi Technology Development Co., Ltd.
Contact us for audio/video product solutions and IC selection support.
Email: doc@ultrasemi.com · QQ: 2272715136 · WeChat/Mobile: +86 13342996846

Ultrasemi Technology Development Co., Ltd.
Contact us for audio/video product solutions and IC selection support.
Email: doc@ultrasemi.com · QQ: 2272715136 · WeChat/Mobile: +86 13342996846