Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ Supported operating systems : macOS, Windows, Linux (incl. Raspberry Pi), basica
| <img src="res/docs/xuanfang.webp"/> | <img src="res/docs/UsbPCMonitor_5inch.webp" width="60%" height="60%"/> | <img src="res/docs/kipye-qiye-35.webp" width="60%" height="60%"/> |
| revision B & flagship (with backplate & RGB LEDs) | Unknown manufacturer, visually similar to Turing 3.5" / 5". Original software is `UsbPCMonitor.exe` | Front panel has an engraved inscription "奇叶智显" Qiye Zhixian (Qiye Smart Display) |

| ✅ WeAct Studio Display FS V1 0.96" | ✅ WeAct Studio Display FS V1 3.5" |
|---------------------------------------------------------------|--------------------------------------------------------------|
| <img src="res/docs/weact_0.96.jpg" width="60%" height="60%"/> | <img src="res/docs/weact_3.5.png" width="60%" height="60%"/> |
| ✅ WeAct Studio Display FS V1 0.96" | ✅ WeAct Studio Display FS V1 3.5" | ✅ Solarmax / HL-VMAX (Artinchip) |
|---------------------------------------------------------------|--------------------------------------------------------------|---------------------------------------------------------------|
| <img src="res/docs/weact_0.96.jpg" width="60%" height="60%"/> | <img src="res/docs/weact_3.5.png" width="60%" height="60%"/> | Ultra-wide PC case & secondary displays (320x1480, 462x1920) |

<details>

Expand Down
11 changes: 6 additions & 5 deletions config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ config:
# Theme to use (located in res/themes)
# Use the name of the folder as value
# Choose a theme made for your screen size (see DISPLAY_SIZE inside theme.yaml)
THEME: 3.5inchTheme2
THEME: "Cyberpunk 2077 Vertical"

# Hardware sensors reading
# Choose the appropriate method for reading your hardware sensors:
# - PYTHON use Python libraries (psutils, GPUtil...) to read hardware sensors (supports all OS but not all HW)
# - LHM use LibreHardwareMonitor library to read hardware sensors (Windows only - NEEDS ADMIN RIGHTS)
# - STUB / STATIC use random/static data instead of real hardware sensors
# - AUTO use the best method based on your OS: Windows OS will use LHM, other OS will use Python libraries
HW_SENSORS: AUTO
HW_SENSORS: PYTHON

# Network interfaces
# Linux/MacOS interfaces are named "eth0", "wlan0", "wlp1s0", "enp2s0"...
Expand Down Expand Up @@ -59,14 +59,15 @@ display:
# - TUR_USB for Turing HW revisions 1.x: 4.6"/5.2"/8.0"/8.8"/9.2"
# - WEACT_A for WeAct Studio Display FS V1 3.5"
# - WEACT_B for WeAct Studio Display FS V1 0.96"
# - VMAX for Solarmax / HL-VMAX (Artinchip VID 0x33C3 PID 0xF101)
# - SIMU for simulated display (image written in screencap.png). Width & height will be detected from the theme
# To identify your smart screen: https://github.com/mathoudebine/turing-smart-screen-python/wiki/Hardware-revisions
REVISION: A
REVISION: VMAX

# Display Brightness
# Set this as the desired %, 0 being completely dark and 100 being max brightness
# Warning: revision A display can get hot at high brightness!
BRIGHTNESS: 20
BRIGHTNESS: 80

# Display reverse: true/false
# Set to true to reverse display orientation (landscape <-> reverse landscape, portrait <-> reverse portrait)
Expand All @@ -77,4 +78,4 @@ display:
# By default, this program resets the display on startup, in case it is in a degraded state from previous runs.
# This behavior causes the display to disconnect/reconnect, and the COM port to change.
# On some displays (like rev. A) it can be an issue, in this case change the value to "false".
RESET_ON_STARTUP: true
RESET_ON_STARTUP: false
15 changes: 13 additions & 2 deletions configure.py
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
XUANFANG_MODEL = "XuanFang rev. B & flagship"
KIPYE_MODEL = "Kipye Qiye Smart Display"
WEACT_MODEL = "WeAct Studio Display FS V1"
SOLARMAX_MODEL = "Solarmax / HL-VMAX (Artinchip)"
SIMULATED_MODEL = "Simulated screen"

_SIZE_2_1_INCH = "2.1\"" # Only for retro compatibility
Expand All @@ -77,6 +78,7 @@
SIZE_8_INCH = "8\""
SIZE_8_8_INCH = "8.8\""
SIZE_8_8_INCH_NEWREV = "8.8\" / 9.2\" (V1.X new HW rev.)"
SIZE_11_3_INCH = "11.3\" / 9.2\" (320x1480 / 462x1920)"
SIZE_12_3_INCH = "12.3\""
SIZE_2_8_INCH_NEWREV = "2.8\" round (V1.X new HW rev.)"

Expand All @@ -92,6 +94,7 @@
SIZE_8_INCH,
SIZE_8_8_INCH,
SIZE_8_8_INCH_NEWREV,
SIZE_11_3_INCH,
SIZE_12_3_INCH,
)

Expand All @@ -114,6 +117,9 @@
('TUR_USB', SIZE_2_8_INCH_NEWREV): TURING_MODEL,
('WEACT_A', SIZE_3_5_INCH): WEACT_MODEL,
('WEACT_B', SIZE_0_96_INCH): WEACT_MODEL,
('VMAX', SIZE_11_3_INCH): SOLARMAX_MODEL,
('VMAX', SIZE_8_8_INCH): SOLARMAX_MODEL,
('VMAX', SIZE_8_8_INCH_NEWREV): SOLARMAX_MODEL,

('SIMU', SIZE_0_96_INCH): SIMULATED_MODEL,
('SIMU', SIZE_2_x_INCH): SIMULATED_MODEL,
Expand All @@ -123,10 +129,14 @@
('SIMU', SIZE_5_2_INCH): SIMULATED_MODEL,
('SIMU', SIZE_8_INCH): SIMULATED_MODEL,
('SIMU', SIZE_8_8_INCH): SIMULATED_MODEL,
('SIMU', SIZE_11_3_INCH): SIMULATED_MODEL,
}
# This map is used to write the correct config.yaml "REVISION" from selected smart screen model and size
model_and_size_to_revision_map = {
(KIPYE_MODEL, SIZE_3_5_INCH): 'D',
(SOLARMAX_MODEL, SIZE_11_3_INCH): 'VMAX',
(SOLARMAX_MODEL, SIZE_8_8_INCH): 'VMAX',
(SOLARMAX_MODEL, SIZE_8_8_INCH_NEWREV): 'VMAX',
(TURING_MODEL, SIZE_2_x_INCH): 'C',
(TURING_MODEL, SIZE_3_5_INCH): 'A',
(TURING_MODEL, SIZE_4_6_INCH): 'TUR_USB',
Expand All @@ -151,6 +161,7 @@
(SIMULATED_MODEL, SIZE_5_2_INCH): 'SIMU',
(SIMULATED_MODEL, SIZE_8_INCH): 'SIMU',
(SIMULATED_MODEL, SIZE_8_8_INCH): 'SIMU',
(SIMULATED_MODEL, SIZE_11_3_INCH): 'SIMU',
}
hw_lib_map = {"AUTO": "Automatic", "LHM": "LibreHardwareMonitor (admin.)", "PYTHON": "Python libraries",
"STUB": "Fake random data", "STATIC": "Fake static data"}
Expand Down Expand Up @@ -606,7 +617,7 @@ def on_theme_editor_click(self):
# Load binary (for releases) or Python file with system interpreter
theme_editor = next(MAIN_DIRECTORY.glob("theme-editor*"))
if platform.system() == "Windows":
subprocess.Popen([str(theme_editor), self.theme_cb.get()], shell=True)
subprocess.Popen([str(theme_editor), self.theme_cb.get()], creationflags=0x08000000)
else:
subprocess.Popen([str(theme_editor), self.theme_cb.get()])

Expand All @@ -624,7 +635,7 @@ def on_saverun_click(self):
# Load binary (for releases) or Python file with system interpreter
main_file = next(MAIN_DIRECTORY.glob("main*"))
if platform.system() == "Windows":
subprocess.Popen([str(main_file)], shell=True)
subprocess.Popen([str(main_file)], creationflags=0x08000000)
else:
subprocess.Popen([str(main_file)])

Expand Down
6 changes: 6 additions & 0 deletions library/display.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
from library.lcd.lcd_comm_rev_d import LcdCommRevD
from library.lcd.lcd_comm_weact_a import LcdCommWeActA
from library.lcd.lcd_comm_weact_b import LcdCommWeActB
from library.lcd.lcd_comm_vmax import LcdCommVmax
from library.lcd.lcd_simulated import LcdSimulated
from library.log import logger

Expand Down Expand Up @@ -76,6 +77,8 @@ def _get_theme_size() -> tuple[int, int]:
return 480, 1920
elif config.THEME_DATA["display"].get("DISPLAY_SIZE", '') == '9.2"':
return 480, 1920 # 9.2" displays are 1920x462 but using 1920x480 to be compatible with 8.8" themes
elif config.THEME_DATA["display"].get("DISPLAY_SIZE", '') == '11.3"':
return 320, 1480
elif config.THEME_DATA["display"].get("DISPLAY_SIZE", '') == '12.3"':
return 720, 1920
else:
Expand Down Expand Up @@ -109,6 +112,9 @@ def __init__(self):
elif config.CONFIG_DATA["display"]["REVISION"] == "WEACT_B":
self.lcd = LcdCommWeActB(com_port=config.CONFIG_DATA['config']['COM_PORT'],
update_queue=config.update_queue)
elif config.CONFIG_DATA["display"]["REVISION"] in ("VMAX", "SOLARMAX"):
self.lcd = LcdCommVmax(com_port=config.CONFIG_DATA['config']['COM_PORT'],
update_queue=config.update_queue, display_width=width, display_height=height)
elif config.CONFIG_DATA["display"]["REVISION"] == "SIMU":
# Simulated display: always set width/height from theme
self.lcd = LcdSimulated(display_width=width, display_height=height)
Expand Down
Loading