Skip to content

About

Modern replacement for the UsbMonitor app of 3.5-inch USB system-monitor screens (Turing Smart Screen rev A and clones). 4 pages, 7 themes, landscape + portrait. FA/EN

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Smart-Screen

A modern replacement for the "UsbMonitor" app of 3.5" USB system-monitor screens (Turing Smart Screen rev A and clones).

English · فارسی · Website

Views

Smart-Screen, Carbon theme, landscape

Which screens does it work with?

Smart-Screen talks to the screen with the rev A serial protocol (USB CDC, 115200 baud). It works with:

Screen Size / resolution How to recognise it
Turing Smart Screen 3.5" (original, rev A) 3.5", 320×480 USB ID VID_1A86 & PID_5722 in Device Manager
3.5" "UsbMonitor" / "UsbPCMonitor" IPS screens (AliExpress / Amazon clones, often sold as "3.5 inch IPS USB-C computer monitor / AIDA64 sub-screen") 3.5", 320×480 Came with UsbMonitor.exe; USB serial number USB35INCHIPSV2

Both are found automatically (by USB ID or serial number). If yours shows up as a different COM port, pick it by hand in Settings → Screen port.

Not supported (different protocol): Turing 2.1" / 5" / 8.8" (rev C), XuanFang 3.5" (rev B), Kipye / WeAct screens (rev D). For those, use turing-smart-screen-python.

Computer: Windows 10 / 11, 64-bit. Python 3.10+ (the installer installs Python 3.14 with winget if none is found).

Close the vendor UsbMonitor.exe first. Only one program can use the screen's COM port at a time; the installer offers to turn off its autostart.

Features

  • 4 pages, rotating automatically or fixed:
    • System: CPU / GPU / RAM gauges, temperatures, clocks, power, load graph, network and ping
    • Network: download / upload graph, VPN status, public IP + country, HTTP latency to several targets (and your own server, optional), traffic since boot
    • Storage: every drive with fill bar, disk read / write, top apps by CPU, uptime
    • Clock: big clock, Gregorian + Jalali (Persian) date, weather with a 3-day forecast
  • 8 themes: HUD (sci-fi frame with ring gauges, one colour per metric), Pulse (one-panel dashboard with arc gauges and sparklines), Midnight, Neon (glow), Ember, Frost (light), Aurora and Carbon (textured backgrounds that hide LCD ghosting / burn-in)
  • Landscape and portrait, plus Flip 180° and Mirror (horizontal / vertical) for screens mounted upside down or seen through glass
  • Page effects when the page or theme changes: Fade, Fade + dissolve, Wipe (down / up / right / left), Curtain, Iris, Diagonal, Blinds, Checkerboard, Spiral, Dissolve or Random (see below)
  • Text size: normal, large, extra large; values shrink to fit instead of overflowing
  • Brightness and night dimming (time window)
  • Fast: draws one frame a second and sends only the parts that changed, plus a full redraw every 60 s (or tray → Full redraw now) to clear anything a partial update missed
  • Tray icon for everything (theme, page, rotation, brightness, screen off, restart) and a Settings window with live preview: nothing reaches the screen until you press Apply
  • Real temperatures through LibreHardwareMonitor (CPU and GPU), with nvidia-smi as a fallback for NVIDIA cards
  • VPN-aware latency: measured as an HTTP round trip on an open connection, so TUN-mode VPNs (v2rayN, sing-box, Clash…) can't fake a 1 ms ping
  • Weather that just works: if the Open-Meteo city search is blocked on your network, the city is looked up with Photon / Nominatim instead
  • Clear ghost image: a slow colour cycle at full brightness that helps fade LCD image retention
  • Starts with Windows (scheduled task with admin rights, needed for CPU temperatures), no UAC prompt

Screenshots

All 4 pages per theme (rendered by the app itself with sample data):

Theme Landscape (480×320)
HUD
Pulse
Carbon
Aurora
Midnight
Neon
Ember
Frost

Portrait (320×480):

Page effects

Page effects: fade, iris, spiral, dissolve, curtain, blinds, diagonal

Pick one in tray → Page effect or Settings → Display → Page effect (default: Fade). The effect plays when the page or the theme changes; the normal once-a-second updates stay fast.

Effect What you see
Fade backlight dims to black, the new page is drawn in the dark, then it fades back in (hides the drawing completely)
Fade + dissolve dims, the new page appears block by block in random order, full brightness again
Wipe down / up / right / left the new page comes in from one edge
Curtain opens from the middle to both sides
Iris grows from the centre outwards
Diagonal from the top-left corner to the bottom-right
Blinds all slats open at the same time
Checkerboard first the "white" squares, then the "black" ones
Spiral from the edges in to the centre
Dissolve blocks in random order
Random a different effect every time
None plain redraw, top to bottom

Directions follow Flip 180° and Mirror, so "Wipe down" really starts at the top of the screen as you see it.

Why no rotate / zoom / slide? The screen has no graphics chip: every pixel is sent over USB, and a full frame takes about a second. Smooth animations would need 25–30 full frames a second. So the effects are made from the order the new frame is sent in, and from the backlight (a 6-byte command), which costs no extra time.

Settings window with live preview:

Install

  1. Download: green Code button → Download ZIP, then extract it to a permanent folder (for example Documents\Smart-Screen).
  2. Plug in the screen and close UsbMonitor.exe if it is running.
  3. Double-click install.bat and accept the admin prompt. It:
    • closes UsbMonitor and offers to turn off its autostart
    • finds or installs Python, creates .venv and installs the packages (offline wheels for Python 3.14 are included; other versions download from PyPI)
    • installs the PawnIO driver that LibreHardwareMonitor needs for CPU temperatures
    • creates the "Smart-Screen" scheduled task (starts at logon, with admin rights) and starts the app
  4. The tray icon appears. Right-click → Settings… to pick theme, orientation, pages, weather city and more.
File What it does
install.bat Install or update (safe to run again)
start.bat / stop.bat Start / stop the background app
run-console.bat Run in a console window to see errors
uninstall.bat Remove the scheduled task (your files stay)

Settings are saved in config.yaml next to main.py and reload by themselves when the file changes. The log is smartscreen.log.

Troubleshooting

Problem Fix
"Screen not found" in the tray Close UsbMonitor.exe, replug the USB cable, or pick the COM port in Settings → Screen port
CPU temperature is empty The app must run as admin (use start.bat / the scheduled task, not python main.py) and PawnIO must be installed (run install.bat again)
Picture is upside down Tray → Rotate / Flip → Flip 180°
Text is too small Tray → Text size → Large or Extra large
Faint old image shows through dark themes That is LCD retention from the old app: try tray → Clear ghost image, or the Aurora / Carbon themes
Page change looks slow That is the USB speed (about 1 s per full frame). Fade hides the drawing best; None is the plain redraw
Weather stays empty Check the city name in Settings → Weather & names; the log (smartscreen.log) says which lookup failed
Ping shows < 1 ms with a VPN Use a URL target (default), not a local address; latency is measured over HTTP for this reason

For developers

main.py          app loop, page rotation, night dimming, tray menu
settings.py      Settings window (tkinter) with live preview
core/screen.py   partial updates: changed 16-px bands -> RGB565 -> screen
core/transitions.py  page effects: send order of strips / tiles, backlight fade
core/pages.py    the 4 pages, landscape + portrait layouts
core/themes.py   the 8 themes
core/sensors.py  psutil + LibreHardwareMonitor + nvidia-smi
core/online.py   latency, public IP / country, weather (open-meteo; Photon / Nominatim city search fallback)
library/lcd/     rev A driver from turing-smart-screen-python
tools/preview.py renders every theme/page to previews/ without a screen
tools/preview_effects.py  renders every page effect as a GIF to previews/effects/
tools/test_protocol.py  fake serial port that checks partial updates and every effect rebuild the exact frame
python tools/preview.py            # or: python tools/preview.py xlarge
python tools/preview_effects.py
python tools/test_protocol.py

Credits and license

Smart-Screen is released under the GNU GPL v3, see LICENSE.

About

Modern replacement for the UsbMonitor app of 3.5-inch USB system-monitor screens (Turing Smart Screen rev A and clones). 4 pages, 7 themes, landscape + portrait. FA/EN

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages