- mathoudebine/turing-smart-screen-python
- Saved searches
- Use saved searches to filter your results more quickly
- License
- gerph/turing-smart-screen-python-mit
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- Saved searches
- Use saved searches to filter your results more quickly
- Releases: mathoudebine/turing-smart-screen-python
- Release 3.1.0 — Radial progress bars & bugfix
- Radial progress bars
- What’s Changed
- New Contributors
- Contributors
- Release 3.0.0 — Turing 5″ display support!
- Configuration Wizard
- Themes
- theme.yaml
- What’s Changed
- New Contributors
- Contributors
- Release 2.4.3
- What’s Changed
- New Contributors
- Contributors
- Release 2.4.2
- What’s Changed
- New Contributors
- Contributors
- Release 2.4.1
- What’s Changed
- Contributors
- Release 2.4.0 — config. wizard
- What’s Changed
- Configuration wizard
- Other changes
mathoudebine/turing-smart-screen-python
⚠️ DISCLAIMER — PLEASE READ ⚠️
This project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Turing or XuanFang brands, or any of its subsidiaries, affiliates, manufacturers or sellers of the Turing or XuanFang products. All product and company names are the registered trademarks of their original owners.
This project is an open-source alternative software, NOT the USBMonitor.exe / ExtendScreen.exe or any original software for the smart screens (even if some themes have been reused). Please do not open issues for USBMonitor.exe/ExtendScreen.exe here, instead you can use:
- for Turing Smart Screen, the official forum here: http://discuz.turzx.com/
- for XuanFang Smart screen, contact your reseller
A Python system monitor program and a library for 3.5″ & 5″ IPS USB-C (UART) displays.
Supported operating systems : macOS, Windows, Linux (incl. Raspberry Pi), basically all OS that support Python 3.8+
Supported smart screens models:
Turing Smart Screen 3.5″ | XuanFang 3.5″ | Turing Smart Screen 5″ |
---|---|---|
also improperly called «revision A» by the resellers | revision B & flagship (with backplate & RGB LEDs) | basic support (no video or storage for now) |
Please note the Turing and the XuanFang screens are different products designed and produced by different companies, despite having a similar appearance. The communication protocol is also different.
This project support products from both manufacturers, including backplate RGB LEDs for available models!
If you haven’t received your screen yet but want to start developing your theme now, you can use the «simulated LCD» mode!
Not supported yet or not tested smart screen models:
Turing Smart Screen 8.8″ | Turing Smart Screen 2.1″ | (Fuldho?) 3.5″ IPS Screen |
---|---|---|
Not tested, may use the same protocol as 5″ | Not tested, may use the same protocol as 5″ | Not supported, managed with proprietary Windows software SmartMonitor.exe |
SmartCool Lcd / GeekTeches AD35 / AIDA64 / AX206 | (Unknown manufacturer) UsbPCMonitor 3.5″ / 5″ |
---|---|
Not supported. Produced by multiple manufacturers, all use the same Appotech AX206 hacked photo frame firmware. Supported by AIDA64 and lcd4linux | Not tested. Visually identical to Turing 3.5″ / 5″ but managed by proprietary Windows software UsbPCMonitor.exe |
There are 2 possible uses of this project Python code:
- as a System Monitor, a standalone program working with themes to display your computer HW info. Check if your hardware is supported.
- integrated in your project, to control the display from your own Python code.
This project is mainly a complete standalone program to use your screen as a system monitor, like the original vendor app.
Some themes are already included for a quick start!
- Fully functional multi-OS code base (operates out of the box, tested on Windows, Linux & MacOS).
- Display configuration using GUI configuration wizard or config.yaml file: no Python code to edit.
- Support for 3.5″ & 5″ smart screen models (Turing and XuanFang). Backplate RGB LEDs are also supported for available models!
- Support multiple hardware sensors and metrics (CPU/GPU usage, temperatures, memory, disks, etc) with configurable refresh intervals.
- Allow creation of themes (see res/themes ) with theme.yaml files using theme editor to be shared with the community!
- Easy to expand: additional code that pulls specific information can be written in a modular way without impacting existing code.
- Auto detect comm port. No longer need to hard set it, or if it changes on you then the config is wrong.
- Tray icon with Exit option, useful when the program is running in background
Control the display from your Python projects
If you don’t want to use your screen for system monitoring, you can just use this project as a module to do some simple operations on the display from any Python code :
- Display custom picture
- Display text
- Display progress bar
- Screen rotation
- Clear the screen (blank)
- Turn the screen on/off
- Display soft reset
- Set brightness
- Set backplate RGB LEDs color (on supported hardware rev.)
Check simple-program.py as an example.
If you have trouble running the program as described in the wiki, please check open/closed issues & the wiki Troubleshooting page
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
MIT licensed reimplementation of library to access Turing Smart Screen 3.5″ IPS display.
License
gerph/turing-smart-screen-python-mit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Turing Smart Screen Python library
This is an implementation of access to the Turing Smart Screen as a Python library. It is a complete reimplementation from scratch using none of the code from the original library at https://github.com/mathoudebine/turing-smart-screen-python but under MIT license. Some of the methods are similar, because there’s only so many ways you can control these screens, and it’s useful to be compatible.
The library is Python 2/3 compatible, as this is required for the project it is to be integrated with.
The interface is through object construction and method operations, to allow it to be multiply instantiated and to allow us to inherit behaviour for each of the implementations.
from PIL import Image import serial ser = serial(DEVICE, 115200, timeout=1, rtscts=1) display = TuringDisplayAutoSelect(ser) # Hide everything display.enable(False) # If the display is rotated around 180 degrees, it image may been inversion display.invert(display.INVERT_XY) # Draw a picture in the display image = Image.open(bitmap_path) display.update_region_pillow(0, 0, image) # And show it in one go display.enable(True)
This library is released under the MIT license. The original was under the restrictive GPL, which precludes my incorporating it into my projects, so I have re-implemented the functions and made the system more object oriented.
About
MIT licensed reimplementation of library to access Turing Smart Screen 3.5″ IPS display.
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Releases: mathoudebine/turing-smart-screen-python
Release 3.1.0 — Radial progress bars & bugfix
Radial progress bars
Radial progress bars are now available in System Monitor themes (thanks @arthurferrai), check the LandscapeMagicBlue theme for examples!
What’s Changed
- Generate a Markdown file containing theme previews in a table by @mathoudebine in #258
- Add support for zenpower (k10temp alternative) by @alexwbaule in #255
- Fix rotation for newer models of Turing 3.5″ (no impact on previous models) by @mathoudebine in #266
- ⬆️ Update ruamel-yaml requirement from ~=0.17.31 to ~=0.17.32 by @dependabot in #268
- Added possibility to show radial graphs on themes by @arthurferrai in #260
- Retry read/write once if it fails by @mathoudebine in #270
- Add Radial to theme_example.yaml where supported by @mathoudebine in #271
- Do COM port autodiscovery only once at first connection by @mathoudebine in #272
- ⬆️ Update cython requirement from ~=0.29.35 to ~=0.29.36 by @dependabot in #280
- ⬆️ Update sv-ttk requirement from ~=2.4.5 to ~=2.5.3 by @dependabot in #279
- Add small delay on reconnect by @nneul in #283
New Contributors
Contributors
Release 3.0.0 — Turing 5″ display support!
This release comes with Turing 5″ displays support!
Many thanks to @alexwbaule @arthurferrai @MrFr1day and everyone that contributed in issues #81 and #90
Please note there is only basic support for now: no video or storage.
Documentation, Theme Editor, Configuration Wizard and Github workflows have been updated to handle 5″ devices as well.
This release comes without any breaking changes for 3.5″ devices.
Configuration Wizard
In the configuration Wizard, you can now select Turing 5″ as your smart screen model.
Themes
Because the display resolution is different for 3.5″ displays (320×480) and 5″ displays (800×480), themes made previously for 3.5″ displays cannot be used on 5″ displays.
New 5″ themes have been developed and packaged in this release:
When you select Turing 5″ in the Configuration Wizard, the theme list is automatically updated to display only compatible themes.
theme.yaml
To create a theme for 5″ devices, the format is the same as the 3.5″ themes. You can do it manually or using the Theme Editor.
The only property to add to your theme.yaml is:
If this property is not in the theme file (to keep compatibility with old/community themes) or if its value is different than 5″ then the theme will be for 3.5 displays.
What’s Changed
New Contributors
Contributors
Release 2.4.3
What’s Changed
- Radial Progress Bar (not implemented in themes for now) by @cobacdavid in #175
- Update dependencies to latest versions by @mathoudebine in #231
- Add specific error message if tkinter is not installed by @mathoudebine in #238
- ⬆️ Bump actions/setup-python from 3 to 4 by @dependabot in #235
- ⬆️ Bump actions/dependency-review-action from 2 to 3 by @dependabot in #234
- ⬆️ Update cython requirement from ~=0.29.34 to ~=0.29.35 by @dependabot in #242
- ⬆️ Update ruamel-yaml requirement from ~=0.17.26 to ~=0.17.27 by @dependabot in #241
- ⬆️ Update ruamel-yaml requirement from ~=0.17.27 to ~=0.17.31 by @dependabot in #250
- Only commit theme previews if they have changed by @mathoudebine in #251
New Contributors
Contributors
Release 2.4.2
What’s Changed
- Simplifying the color encoding for the XuanFang display (RevB) by @estevaozr in #196
- Fix struct.pack used incorrectly for image data by @mathoudebine in #211
- Add message when modules are missing, instead of default stacktrace by @mathoudebine in #213
- Detect and handle multiple GPUs better by @mathoudebine in #214
New Contributors
Contributors
Release 2.4.1
What’s Changed
- Turn screen off/on when computer goes to/resume from sleep (Windows) by @mathoudebine in #184
- Allow drawing zones and click to get coordinates for the theme by @mathoudebine in #186
- Upgrade LibreHardwareMonitor to 0.9.2 by @mathoudebine in #201
Contributors
Release 2.4.0 — config. wizard
What’s Changed
Configuration wizard
This release introduces the first version of the Configuration Wizard (#176) in configure.py
It offers an easy way to update the config.yaml file, as well as various checks and constraints on values (theme names, COM ports. ) to avoid errors. The selected theme is also displayed as a preview.
This GUI is similar to what is offered by the original Windows program from screen manufacturers, and will offer a serious alternative for beginners wanting to use this program instead!
The wizard also offers a quick way to edit a selected theme from the Theme Editor, and to start the system monitor main program.
Related documentation has been updated.
Other changes
- Auto-commit theme previews on master/release push by @mathoudebine in #173
- text alignment by @cobacdavid in #172
- Allow custom date/time formatting from babel module by @mathoudebine in #174
DAY: # Format (Y/M/D ordering, month/day translations. ) will match your computer locale TEXT: FORMAT: medium # short (2/20/23) / medium (Feb 20, 2023) / long (February 20, 2023) / full (Monday, February 20, 2023) HOUR: # Format (12/24h, timezone translations) will match your computer locale TEXT: FORMAT: short # short (6:48 PM) / medium (6:48:53 PM) / long (6:48:53 PM UTC) / full (6:48:53 PM Coordinated Universal Time)