Skip to content

Releases: mathoudebine/turing-smart-screen-python

Release 3.5.0 - CPU Fan manual selection & bugfix

18 Jun 17:18
0759c80
Compare
Choose a tag to compare

New feature : CPU fan manual selection for Linux platforms

On Linux platforms, the CPU fan is often controlled by the motherboard unlike the GPU fan.
Because of that, it does not contain cpu in the sensor name, and cannot automatically detected.
E.g. with an AMD CPU on an Asus motherboard: the CPU fan sensor is managed by nct6798 Nuvoton's Super I/O Controller

>$ sensors
nct6798-isa-0290
Adapter: ISA adapter
fan1:                      707 RPM  (min =    0 RPM)        #
fan2:                      906 RPM  (min =    0 RPM)        #   One of those is the CPU fan, but which one?
fan3:                      691 RPM  (min =    0 RPM)        #
fan4:                      657 RPM  (min =    0 RPM)        #
fan5:                        0 RPM  (min =    0 RPM)
fan6:                        0 RPM  (min =    0 RPM)
fan7:                        0 RPM  (min =    0 RPM)

amdgpu-pci-0800
Adapter: PCI adapter 
fan1:         825 RPM  (min =    0 RPM, max = 3200 RPM)     #   GPU fan is clearly identified

On previous releases, when CPU fan could not be automatically detected, it was ignored with the following warning on logs:

20/02/2024 18:05:13 [WARNING] Your CPU Fan Speed is not supported yet

With this new release, there is now a new field in the config.yaml configuration file:

  # CPU fan
  # For Linux/MacOS platforms, the CPU fan is amongst all fan sensors gathered from the motherboard chipset
  # If value is AUTO the system monitor will try to auto-select the CPU fan
  # If auto-detection fails, it might be necessary to manually indicate which fan is the CPU fan
  # Value must be 'controller/fan' e.g. 'nct6798/fan2'. Use configuration wizard for help in selection
  CPU_FAN: AUTO

And the CPU fan can be manually selected in the configuration wizard:

image

A tooltip also indicates which package to install in order to detect hardware sensors from the motherboard:

image

What's Changed

Full Changelog: 3.4.0...3.4.1

Release 3.4.0 - Line graphs & bugfix

19 Feb 21:28
Compare
Choose a tag to compare

New feature: line graphs!

Thanks to @hicwic's PR #371 the System Monitor program now supports line graphs!
image

The line graph feature has been added to many metrics like: CPU/GPU/Disk/Memory usage, temperature, CPU Fan speed, FPS...
Check https://github.com/mathoudebine/turing-smart-screen-python/blob/main/res/themes/theme_example.yaml and look for LINE_GRAPH key:

      LINE_GRAPH:
        SHOW: False
        X: 300
        Y: 220
        WIDTH: 133
        HEIGHT: 70
        MIN_VALUE: 0
        MAX_VALUE: 100
        HISTORY_SIZE: 10
        AUTOSCALE: False
        LINE_COLOR: 61, 184, 225
        AXIS: True
        AXIS_COLOR: 255, 135, 0
        # BACKGROUND_COLOR: 0, 0, 0
        BACKGROUND_IMAGE: background.png

The history size (number of previous values displayed on the graph) can be adjusted for its data.
With AUTOSCALE: True the line graph Y axis will constantly adjust to the min/max displayed values, otherwise set MIN_VALUE/ MAX_VALUE for a static Y axis
Graph axis can be show or hidden with AXIS: True / False and set to a specific color with AXIS_COLOR (default to the LINE_COLOR if not set)

New themes:

This release comes with 2 new themes that use the line graph functionality:

Cyberdeck theme (3.5 inch)

@hicwic released the theme he made for his Cyberdeck project

Check this discussion #374 for more details and final prototype!
282247624-9716c07c-f939-45af-8369-f067f6df4e11

Task Manager theme (5 inch)

This theme takes full advantage of the line graph feature, and is inspired by the (in)famous Windows Task Manager
theme_taskmanager5inch

Other fixes

This release also contain the following fixes:

  • System Monitor: Workaround for models failing to display their previous content after being turned off/on #427 (fixes #419)
  • Theme Editor: only refresh theme if theme file still exists (fix for vim text editor) #428 (fixes #401)
  • System Monitor: Custom stats not displayed if numeric value is zero #444 (fixes #442)
  • System Monitor: Better error message when missing ImageTk dependency #443
  • System Monitor: Do not use psutil virtual_memory used/free: not reliable. Use total/available instead #462 (fixes #450)
  • System Monitor: User proper conversion for Memory values (power of 1024 instead of power of 1000) #463 (fixes #449 partially)
  • System Monitor: Fix LibreHardwareMonitor computation for swap/pagefile usage in case no swap/pagefile defined #391 (fixes #390)

What's Changed

  • Fix LibreHardwareMonitor computation for swap/pagefile usage in case no swap/pagefile defined by @mathoudebine in #391
  • Add listing of SubHardware from LibreHardwareMonitor by @mathoudebine in #395
  • ⬆️ Update psutil requirement from ~=5.9.6 to ~=5.9.7 by @dependabot in #422
  • ⬆️ Bump actions/setup-python from 4 to 5 by @dependabot in #407
  • ⬆️ Bump actions/upload-artifact from 3 to 4 by @dependabot in #414
  • ⬆️ Bump github/codeql-action from 2 to 3 by @dependabot in #412
  • ⬆️ Update babel requirement from ~=2.13.1 to ~=2.14.0 by @dependabot in #411
  • Workaround for models failing to display their previous content after being turned off/on by @mathoudebine in #427
  • Theme Editor: only refresh theme if theme file still exists (fix for vim text editor) by @mathoudebine in #428
  • Fix: Custom stats not displayed if numeric value is zero by @mathoudebine in #444
  • Update error message when missing ImageTk dependency by @mathoudebine in #443
  • ⬆️ Update pillow requirement from ~=10.1.0 to ~=10.2.0 by @dependabot in #434
  • ⬆️ Update psutil requirement from ~=5.9.7 to ~=5.9.8 by @dependabot in #457
  • ⬆️ Bump actions/dependency-review-action from 3 to 4 by @dependabot in #454
  • Feature - plot graph by @hicwic in #371
  • Do not use psutil virtual_memory used/free: not reliable. Use total/available instead by @mathoudebine in #462
  • User proper conversion for Memory values (power of 1024 instead of power of 1000) by @mathoudebine in #463
  • ⬆️ Update sv-ttk requirement from ~=2.5.5 to ~=2.6.0 by @dependabot in #464
  • ⬆️ Update ruamel-yaml requirement from ~=0.18.5 to ~=0.18.6 by @dependabot in #466
  • @hicwic PR #371 by @mathoudebine in #461

New Contributors

Full Changelog: 3.3.4...3.4.0

Release 3.3.4 - Python 3.12 compatible

07 Nov 19:13
d44505f
Compare
Choose a tag to compare

What's Changed

  • Compatibility with Python 3.12 by @mathoudebine in #345
  • Update bash green theme with radial by @Rollbacke in #352
  • ⬆️ Update ruamel-yaml requirement from ~=0.17.32 to ~=0.17.33 by @dependabot in #342
  • ⬆️ Update babel requirement from ~=2.12.1 to ~=2.13.0 by @dependabot in #350
  • ⬆️ Update ruamel-yaml requirement from ~=0.17.33 to ~=0.17.35 by @dependabot in #351
  • ⬆️ Bump stefanzweifel/git-auto-commit-action from 4 to 5 by @dependabot in #355
  • ⬆️ Update pythonnet requirement from ~=3.0.2 to ~=3.0.3 by @dependabot in #357
  • ⬆️ Update psutil requirement from ~=5.9.5 to ~=5.9.6 by @dependabot in #360
  • ⬆️ Update pillow requirement from ~=10.0.1 to ~=10.1.0 by @dependabot in #361
  • ⬆️ Update ruamel-yaml requirement from ~=0.17.35 to ~=0.17.40 by @dependabot in #366
  • ⬆️ Update babel requirement from ~=2.13.0 to ~=2.13.1 by @dependabot in #372
  • ⬆️ Update ruamel-yaml requirement from ~=0.17.40 to ~=0.18.3 by @dependabot in #377
  • ⬆️ Update ruamel-yaml requirement from ~=0.18.3 to ~=0.18.4 by @dependabot in #380
  • ⬆️ Update ruamel-yaml requirement from ~=0.18.4 to ~=0.18.5 by @dependabot in #383

Full Changelog: 3.3.3...3.3.4

Release 3.3.3 - Custom data sources & theme author

26 Sep 17:31
97ff030
Compare
Choose a tag to compare

Custom data sources

Following this feature request #306, it is now possible to easily add custom data sources to this project (unsupported hardware sensors, sound from music players, web API data...) and display them on themes like other sensors.

For this, a Python CustomDataSource class must be implemented in library/sensors/sensors_custom.py. This class can have numeric and/or text data to display.
There is no limitation on how much custom data source classes can be added!
Two examples have already been implemented in the file with comments to help you get started.

To display these custom data sources to a theme, they must be added to a new CUSTOM: field in the theme.yaml file of your theme.
The name of the class in theme.yaml must be an exact match to the class name in sensors_custom.py
A theme has been developed to match example classes from sensors_custom.py : res/themes/CustomDataExample/theme.yaml

Theme authors

I'm very thankful to the community for sharing their themes either using the Themes discussion space or as PR to this repository.
The author name has now been added as a new field to theme files, and is displayed on the Configuration Wizard below theme preview.
If the author name starts with @ it will be displayed as a hyperlink to the author's GitHub profile.
Existing themes on this repository have already been updated with their original author name!

What's Changed

  • Implement custom data sources, with theme example and comments by @mathoudebine in #338
  • Add authors for existing themes, and display it on Configuration Wizard by @mathoudebine in #339

Full Changelog: 3.3.2...3.3.3

Release 3.3.2 - Hotfix for rev. A

24 Sep 18:06
512333e
Compare
Choose a tag to compare

Regression for Turing 3.5 / rev. A display now fixed

Since release 3.3.0, there was a regression for Turing Smart Screen 3.5 / rev. A display in landscape mode.
It has been fixed in this release.

What's Changed

  • Create images & fonts caches to avoid opening files from the filesystem every time by @mathoudebine in #334
  • Fix issues with orientation for rev. A displays since release 3.3.0 by @mathoudebine in #336

Full Changelog: 3.3.1...3.3.2

Release 3.3.1 - FPS framerate & total RAM

23 Sep 18:39
2ab027b
Compare
Choose a tag to compare

FPS framerate

This release adds support for displaying FPS framerate on System Monitor!

Please note it only works for Windows platforms for now, requires administrator rights, and is limited to AMD GPUs
This is a limitation from LibreHardwareMonitor and GPU manufacturers

Example for a modified LandscapeEarth theme:
image

Check theme_example.yaml:276 to add this to your theme!

RAM total

Thanks to @majormer a new meter is available for RAM virtual memory total capacity

Check theme_example.yaml:380 to add this to your theme!

What's Changed

New Contributors

Full Changelog: 3.3.0...3.3.1

Release 3.3.0 - Kipye Qiye 3.5" support + breaking change

21 Sep 21:24
805aee5
Compare
Choose a tag to compare

Kipye Qiye 3.5" support

After the "UsbPCMonitor" 3.5" & 5" support in the previous 3.2.0 release, it is now the turn of the quite rare Kipye Qiye 3.5" smart display to be supported by this project!

This new screen is identified as "revision D" in the code & configuration files, and is available for selection in the configuration wizard.

image

As its resolution of 320x480 is the same as other 3.5" smart screens like Turing or XuanFang, all existing 3.5" themes can be used on this product.

BREAKING CHANGE - text anchor when using this project as a library

An important change in this release may break your layout if you use this project as a library to control a smart screen from your own code.
This change has been introduced in #313 to fix a previous behavior related to text display with the DisplayText() method.

Before the fix, we used to compute the empty "margins" around a drawn text via a call to textbbox at the (0,0) position, and subtract them to the drawn text's location.
This behavior is incorrect: when drawing text, we don't want it to jump up and down depending on the max. character height.
The correct behavior is to rather use the anchor parameter of the textbox() function set to a default value like "la" (left-ascender) or None which default to "la"
By fixing this in the current release, you may find your text fields moved down a bit on your screen.
You can fix your text location on the screen by either using the "lt" anchor in your calls to the DisplayText() method (not recommended) or simply update the x/y coordinates of the text fields manually.

NOTE: System Monitor main program is not impacted by this fix, no change for existing themes

What's Changed

Full Changelog: 3.2.0...3.3.0

Release 3.2.0 - UsbPCMonitor support

17 Sep 13:54
725237f
Compare
Choose a tag to compare

UsbPCMonitor 3.5" & 5" support

This release comes with support for "UsbPCMonitor" 3.5" & 5"smart screen models

These smart screens do not have any manufacturer/model name to identify them, other than their specific Windows software named UsbPCMonitor.exe
Since they use the same serial protocol as the Turing 3.5 (rev. A) displays, they are now supported un this project.

Reworked configuration wizard

The configuration wizard has been reworked to ask for display information before theme selection. This way the displayed themes will match the entered display size.

Configuration wizard

What's Changed

New Contributors

Full Changelog: 3.1.0...3.2.0

Release 3.1.0 - Radial progress bars & bugfix

19 Jul 12:31
1b10e09
Compare
Choose a tag to compare

Radial progress bars

Radial progress bars are now available in System Monitor themes (thanks @arthurferrai), check the LandscapeMagicBlue theme for examples!
LandscapeMagicBlue theme

What's Changed

New Contributors

Full Changelog: 3.0.0...3.1.0

Release 3.0.0 - Turing 5" display support!

07 Jun 16:22
Compare
Choose a tag to compare

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 (320x480) and 5" displays (800x480), 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:

display:
  DISPLAY_SIZE: 5"

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

Full Changelog: 2.4.3...3.0.0