Releases: mathoudebine/turing-smart-screen-python
3.9.5 - 🏢 Weather city search, reset screen on startup
⚠️ Having anti-virus alerts for this program?
Click here to know more: https://github.com/mathoudebine/turing-smart-screen-python/wiki/Troubleshooting#windows-installer--portable-zip-are-flagged-by-my-anti-virus
Weather city search (#823)
Thanks to @rud01f, the configuration window now allows you to search for a city instead of manually entering the latitude/longitude.
The results are pulled using openweathermap Geo API, and require entering valid API key.
The search results are also selected language agnostic, resulting in localized country and state names.
RESET_ON_STARTUP option (#828)
A new option RESET_ON_STARTUP has appeared in config.yaml to solve issues with some 3.5" screens not being able to connect after a reset. By default it is set to true like it was in previous versions: screen is always reset when program starts unless explicitly told not to.
Better max. fan speed assumption (#835)
When using Python for hardware monitoring on Linux, maximum fan speed is sometimes unknown to the system. Previously, this limit was arbitrarily set to 1500 RPM. Thanks to @vsalvador, it is now dynamically set based on the current fan speed. Not a perfect solution but still better.
Rev. C (Turing 2.1/5/8.8") asleep/awake detection fix (#873)
On some Linux systems, a Turing screen can be detected as both sleeping and awake (2 serial ports listed). In this case, try to wake it up once then assume it is awake to avoid being stuck in a wake loop.
What's Changed
- ⬆️ Update ruamel-yaml requirement from ~=0.18.10 to ~=0.18.11 by @dependabot[bot] in #780
- ⬆️ Update ruamel-yaml requirement from ~=0.18.11 to ~=0.18.14 by @dependabot[bot] in #787
- ⬆️ Update requests requirement from ~=2.32.3 to ~=2.32.4 by @dependabot[bot] in #788
- ⬆️ Bump stefanzweifel/git-auto-commit-action from 5 to 6 by @dependabot[bot] in #791
- ⬆️ Update pyinstaller requirement from ~=6.13.0 to ~=6.14.1 by @dependabot[bot] in #789
- ⬆️ Update sv-ttk requirement from ~=2.6.0 to ~=2.6.1 by @dependabot[bot] in #790
- ⬆️ Update numpy requirement from ~=2.2.6 to ~=2.3.0 by @dependabot[bot] in #792
- ⬆️ Update pillow requirement from ~=11.2.1 to ~=11.3.0 by @dependabot[bot] in #803
- ⬆️ Update numpy requirement from ~=2.3.0 to ~=2.3.1 by @dependabot[bot] in #799
- ⬆️ Bump Minionguyjpro/Inno-Setup-Action from 1.2.5 to 1.2.6 by @dependabot[bot] in #794
- ⬆️ Update pyinstaller requirement from ~=6.14.1 to ~=6.14.2 by @dependabot[bot] in #804
- ⬆️ Update pyinstaller requirement from ~=6.14.2 to ~=6.15.0 by @dependabot[bot] in #822
- ⬆️ Update numpy requirement from ~=2.3.1 to ~=2.3.2 by @dependabot[bot] in #816
- Upgraded options with search and autofill city latitude and longitude with geoapi by @rud01f in #823
- ⬆️ Update ping3 requirement from ~=4.0.8 to ~=5.1.3 by @dependabot[bot] in #825
- Add config option RESET_ON_STARTUP by @mathoudebine in #828
- ⬆️ Update ping3 requirement from ~=5.1.3 to ~=5.1.5 by @dependabot[bot] in #831
- ⬆️ Bump actions/checkout from 4 to 5 by @dependabot[bot] in #832
- ⬆️ Bump Minionguyjpro/Inno-Setup-Action from 1.2.6 to 1.2.7 by @dependabot[bot] in #839
- ⬆️ Update numpy requirement from ~=2.3.2 to ~=2.3.3 by @dependabot[bot] in #849
- ⬆️ Update psutil requirement from ~=7.0.0 to ~=7.1.0 by @dependabot[bot] in #854
- ⬆️ Bump actions/setup-python from 5 to 6 by @dependabot[bot] in #845
- ⬆️ Update ruamel-yaml requirement from ~=0.18.14 to ~=0.18.15 by @dependabot[bot] in #837
- ⬆️ Update pyinstaller requirement from ~=6.15.0 to ~=6.16.0 by @dependabot[bot] in #853
- ⬆️ Update requests requirement from ~=2.32.4 to ~=2.32.5 by @dependabot[bot] in #836
Update LibreHardwareMonitor to 0.9.5-pre464 to avoid malware false detection by @mathoudebine in #858reverted as the beta version is not stable enough: some sensors do not work like CPU clock frequency- Fan max RPM is hardcoded to 1500. There are fans of 1500, 2200 and 3000 by @vsalvador in #835
- ⬆️ Bump github/codeql-action from 3 to 4 by @dependabot[bot] in #871
- ⬆️ Bump stefanzweifel/git-auto-commit-action from 6 to 7 by @dependabot[bot] in #875
- ⬆️ Update pyyaml requirement from ~=6.0.2 to ~=6.0.3 by @dependabot[bot] in #864
- Rev. C: Fix wake-up mechanism in case old asleep device is still detected by @mathoudebine in #873
- Update copyright format and add SPDX header by @mathoudebine in #877
- Move Python version check to a common file and add upper bound by @mathoudebine in #876
- ⬆️ Update numpy requirement from ~=2.3.3 to ~=2.3.4 by @dependabot[bot] in #878
- Disabling Icelandic language support. by @willoucom in #881
New Contributors
- @rud01f made their first contribution in #823
- @vsalvador made their first contribution in #835
- @willoucom made their first contribution in #881
Full Changelog: 3.9.3...3.9.5
3.9.3 - Fix for Turing 8.8" scrambled display
This release fixes the issue #724 with Turing Smart Screen 8.8" and ROM version > 88
Please not it is NOT the support for the newer Turing 8.8" screens with hardware revision V1.1 (issue still open: #727)
What's Changed
- Fix Lint issues by @mathoudebine in #733
- ⬆️ Update pillow requirement from ~=11.1.0 to ~=11.2.1 by @dependabot in #742
- ⬆️ Update pyinstaller requirement from ~=6.12.0 to ~=6.13.0 by @dependabot in #743
- ⬆️ Update numpy requirement from ~=2.2.4 to ~=2.2.5 by @dependabot in #748
- ⬆️ Update numpy requirement from ~=2.2.5 to ~=2.2.6 by @dependabot in #773
- Fix BGRA mode for Turing 8.8" depending on ROM version by @mathoudebine in #770
Full Changelog: 3.9.2...3.9.3
3.9.2 - MacOS corruption fix
This release fixes some corruptions that can happen on MacOS like:

It may not fix all corruptions cases: see #7 for a follow-up.
Users of other platforms can ignore this release if they already have 3.9.1
What's Changed
- Fix/7 screen displays corrupted images on mac by @mathoudebine in #721
- ⬆️ Update numpy requirement from ~=2.2.3 to ~=2.2.4 by @dependabot in #716
Full Changelog: 3.9.1...3.9.2
3.9.1 - Turing 8.8" & 2.1" support (bugfix)
This is a 3.9 point release for the following changes:
- Restore compatibility with Python < 3.11 for rev. C and rev. D screens
- Add portable Windows package
For the full 3.9 changelog see https://github.com/mathoudebine/turing-smart-screen-python/releases/tag/3.9.0
To discuss about the 3.9 releases: #691
Is this a malicious program?
Some users reported that the Windows packages published for releases are flagged by their anti-virus solution like Avast or NOD32.

Why are these packages detected as malicious?
Anti-virus software now use heuristic filters to try to detect new threats that have not yet been identified.
Windows packages can trigger the anti-virus heuristic filters for the following reasons:
- Python code packaged as an executable: could disguise some malicious code as a legitimate program
- DLL loading as administrator: could load external malicious code, or infect critical system components
Of course it is not possible to know precisely why these packages are flagged by anti-virus software. The heuristic filters are kept secret to prevent them from being bypassed by harmful programs.
Can I trust this program?
This project is open-source, you can review the code from the main page using Github browser: https://github.com/mathoudebine/turing-smart-screen-python
No security concerns have been reported so far despite the daily activity.
The Windows packages for releases are generated using Github Actions platform on cloud containers from Github. No manual intervention is made, and the files never leave the secured container environment.
The Github actions to generate the packages are available here: https://github.com/mathoudebine/turing-smart-screen-python/blob/main/.github/workflows/generate-windows-packages.yml and https://github.com/mathoudebine/turing-smart-screen-python/blob/main/.github/workflows/generate-windows-packages-debug.yml
I still don't want to take any risks
If you still don't trust Windows packages for releases, just download the source code instead:

Then follow the manual installation procedure. You will need to install Python manually and run some commands from a terminal.
What's Changed
- to_bytes: Restore compatibility with Python < 3.11 by @mathoudebine in #701
- Dev/add windows portable package by @mathoudebine in #702
Full Changelog: 3.9.0...3.9.1
3.9.0 - Turing 8.8" & 2.1" support
This release brings the the long-awaited support for Turing 8.8" and 2.1" displays!


The Configuration window has been updated to support the new display sizes. You can also spot a new "Open themes folder" button for quick access to themes.
Theme Editor has been updated as well with buttons to zoom in/out, useful for wide screens like 8.8":
This release comes with a first set of themes for both display sizes:
To get these new themes, don't forget to check "Default themes" during setup (and backup your local theme modifications before!):
Please do not hesitate to raise an issue if you find some bugs in this release!
What's Changed
- ⬆️ Update numpy requirement from ~=2.2.2 to ~=2.2.3 by @dependabot in #684
- ⬆️ Update psutil requirement from ~=6.1.1 to ~=7.0.0 by @dependabot in #686
- Implement support for Turing 2.1" and 8.8" screens by @mathoudebine in #690
Full Changelog: 3.8.2...3.9.0
3.8.2 - Optimizations ✨
This release adds common optimizations for all screens:
- Thanks to @hchargois the optimized serialization process already applied to rev. A (Turing Smart Screen 3.5") has been extended to all supported displays: Turing 5", XuanFang, Kipye... The image serialization is now up to 60x faster!
- Sensor monitoring does not start until screen is fully initialized and background is displayed, to avoid serial buffer overload and "burst" mode where the screen displays data frantically during the first 10 seconds
- A debug installer is now generated for each release, with command window to display logs. Useful for debugging.
- For rev. B screens (XuanFang) a cool-down of 0.05 seconds has been added between each frames to reduce drastically the problem of "corrupted bitmaps" for themes with a lot of content.
Full list of changes
- ⬆️ Update pyinstaller requirement from ~=6.11.1 to ~=6.12.0 by @dependabot in #671
- Use Numpy for all revisions by @hchargois in #641
- Generate debug installer for Windows by @mathoudebine in #678
- Optimize load to avoid "burst" at startup, fix rev. B corruption by @mathoudebine in #679
Full Changelog: 3.8.1...3.8.2
3.8.1 - Windows Installer fix
What's Changed
- Fix Windows Installer not opening Theme Editor because of spaces in paths by @mathoudebine in #676
Full Changelog: 3.8.0...3.8.1
3.8.0 - Windows Installer 💾
Windows Installer now available
This feature has been requested a lot in Issues and Discussions, it is now available starting from this release!
It means Windows users will now be able to easily install and update the Turing System Monitor program without having to install Python and dependencies manually.

During the first installation, the System Monitor is installed along all default themes and configuration.
When updating to a newer version, the installer will offer a way to reinstall default themes and configuration. This is unchecked by default in case the user has made changes to the default themes and want to keep it. Custom themes added manually will always be preserved.

After installation is complete, the System Monitor program will be installed in %localappdata%\Programs\Turing System Monitor and can be launched (or uninstalled) from the Start Menu:

If you already used the System Monitor program on your machine, you will need to reconfigure it and import your themes to %localappdata%\Programs\Turing System Monitor\themes. To open this folder type Win+R and enter this path then press Enter.
Every time a new release is created, the Windows installer will be built by Github Actions and attached to the release notes: see "Assets" below this message and download turing-system-monitor_3.8.0.exe now!
Weather & Ping configuration
Following release 3.7.0 that added the support for weather and ping sensors, they can now be setup through the Configuration window:

Python 3.8 support removed
Python 3.8 is now EOL and support has ended since 2024-10. Some Python modules this project uses have started to drop Python 3.8 support, which means this project cannot support Python 3.8 anymore.
If you have Python 3.8, you can stick to the previous version of this project (3.7.0) or update Python.
New themes
@takattila added its themes to this project, thanks!

All changes
- ⬆️ Update ruamel-yaml requirement from ~=0.18.6 to ~=0.18.7 by @dependabot in #633
- Fix time/date fields of all themes to avoid ghosting by @mathoudebine in #636
- ⬆️ Update pillow requirement from ~=11.0.0 to ~=11.1.0 by @dependabot in #637
- ⬆️ Update ruamel-yaml requirement from ~=0.18.7 to ~=0.18.8 by @dependabot in #638
- Add weather and ping options to configure wizard by @mathoudebine in #639
- Fix most type hinting issues in library/lcd by @hchargois in #622
- ⬆️ Update ruamel-yaml requirement from ~=0.18.8 to ~=0.18.10 by @dependabot in #643
- Create installer for Windows by @mathoudebine in #640
- Remove Python 3.8 support by @mathoudebine in #658
- ⬆️ Update numpy requirement from ~=2.2.1 to ~=2.2.2 by @dependabot in #651
- ⬆️ Bump Minionguyjpro/Inno-Setup-Action from 1.2.2 to 1.2.5 by @dependabot in #659
- ⬆️ Update babel requirement from ~=2.16.0 to ~=2.17.0 by @dependabot in #663
- Simple themes by @takattila in #662
New Contributors
- @takattila made their first contribution in #662
Full Changelog: 3.7.0...3.8.0
Release 3.7.0 - 🌦️ New Ping & Weather sensors, advanced radials, LHM update
New Ping & Weather sensors
Thanks to @Psykotik, new sensors are available in this release:
PINGsensor to display ping delay between your computer and any other internal/external host/IPWEATHERsensors to display weather forecast (temperature/humidity/text forecast) from your location using OpenWeatherMap API
Check the new ColoredFlat theme to get started!
These sensors needs to be configured in config.yaml. OpenWeatherMap API needs a key created from an account on their website.
Advanced radial graphs
Thanks to @caerffili it is now possible to create intersecting radials:

Check the Advanced Radial theme example to get started!
LibreHardwareMonitor 0.9.4 update
If you are using Windows, this release includes the new LibreHardwareMonitor release 0.9.4 to support latest hardware.
Check the release note to see if your hardware is included in this release.
New themes
LandscapeModernDevice35 (3.5")

Full changelog
- ⬆️ Update pillow requirement from ~=10.4.0 to ~=11.0.0 by @dependabot in #586
- Incorrect log message when configuring manually in *nix environments. #582 by @nhomar in #583
- Added new theme by @napobear in #594
- Fix total_memory is NAN for AMD GPUs crashes thread by @Pepper-the-kobold in #573
- [Add] Ping and Weather custom sensor + ColoredFlat Theme by @Psykotik in #510
- Advanced radials by @caerffili in #500
- Replace relative path with absolute, to allow launch from another folder by @mathoudebine in #623
- Add LineGraph new properties: axis legend font and font size by @mathoudebine in #624
- ⬆️ Update psutil requirement from ~=6.1.0 to ~=6.1.1 by @dependabot in #627
- Update LibreHardwareMonitor to 0.9.4 by @mathoudebine in #630
New Contributors
- @nhomar made their first contribution in #583
- @napobear made their first contribution in #594
- @Pepper-the-kobold made their first contribution in #573
- @Psykotik made their first contribution in #510
- @caerffili made their first contribution in #500
Full Changelog: 3.6.0...3.7.0
Release 3.6.0 - Python 3.13 and numpy 2.x support, bugfixes
This quick release adds support for Python 3.13 and numpy 2.x, as well as features ans fixes since latest release including:
- Add text box width and height by @Xzonn to use non-monospaced fonts on text fields without "ghosting" effects
- Add line width option for Line graphs by @MAIKS1900
- Fix CPU temperature bar graph and radial graph inverted by @mathoudebine
- New "Total vRAM" sensor by @majormer
- New "SystemUptime" sensor by @NurNano
- Fix AMD GPU load sensor by @sutaburosu
- Use Nvidia GPU in priority with Python sensors by @mathoudebine
I also want to thank you all for your contributions wether it is PR, issues, themes...
This project has been an amazing journey and I'm glad to see a such a good spirit of support in the Discussions space
I wish I could have more time to answer to all of you individually
I will try to review and integrate as much PRs as I can during the following weeks
Happy end of year ! ✨
Full Changelog
- Update service file to remove root as user by @mathoudebine in #520
- Add text box width and height by @Xzonn in #487
- Add line width option for Line graphs by @MAIKS1900 in #509
- ⬆️ Update tkinter-tooltip requirement from ~=3.0.0 to ~=3.1.0 by @dependabot in #523
- Fix CPU temperature bar graph and radial graph inverted by @mathoudebine in #528
- ⬆️ Update pillow requirement from ~=10.3.0 to ~=10.4.0 by @dependabot in #529
- Correct TaskManager5inch net up/down display by @rWolstenholme in #532
- Do not monitor hardware sensors that are not used by the theme by @mathoudebine in #540
- Add Total vRAM by @majormer in #485
- New sensor: GPU total memory by @mathoudebine in #541
- SystemUptime by @NurNano in #492
- SystemUptime by @mathoudebine in #542
- Convert
amd_gpu.query_load()value to a percentage by @sutaburosu in #544 - ⬆️ Update pyyaml requirement from ~=6.0.1 to ~=6.0.2 by @dependabot in #549
- ⬆️ Update babel requirement from ~=2.15.0 to ~=2.16.0 by @dependabot in #552
- Use Nvidia GPU in priority with Python sensors by @mathoudebine in #571
- ⬆️ Update pythonnet requirement from ~=3.0.3 to ~=3.0.5 by @dependabot in #617
- Update numpy to v2 by @hchargois in #615
- ⬆️ Update numpy requirement from ~=1.26.4 to ~=2.2.0 by @dependabot in #614
- Python 3.13 support by @mathoudebine in #618
- ⬆️ Update tkinter-tooltip requirement from ~=3.1.0 to ~=3.1.2 by @dependabot in #606
- ⬆️ Update psutil requirement from ~=5.9.8 to ~=6.1.0 by @dependabot in #589
New Contributors
- @Xzonn made their first contribution in #487
- @MAIKS1900 made their first contribution in #509
- @rWolstenholme made their first contribution in #532
- @NurNano made their first contribution in #492
- @sutaburosu made their first contribution in #544
Full Changelog: 3.5.0...3.6.0









