mathoudebine / mathoudebine/turing-smart-screen-python

(Turing 2.1) Screen isn´t recognize after restarting the app or rebooting the system.

Open
#993 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Rich Text Format
Stars
2.3k
Forks
412
Avg merge
21h 10m
Merged PRs (30d)
7

Description

What is the problem:
Sometimes the app can´t reset the screen but its kinda random. It stays frozen on the default message It`s your world! be creative!¨.
The only way to make it work again is by turning off the screen by unpluging it or unplug the power supply for a few secs.

To Reproduce
Steps to reproduce the behavior:

  1. Restart the app (whether using the main.py or the configuration.py)
  2. wait for the app to restart the device and load your settings

Expected behavior
The screen restarts and the image shows up with the graphics and info.

Logs
[DEBUG] HW revision: C
[DEBUG] Waiting for device /dev/ttyACM1 - UsbMonitor to be turned ON...
[DEBUG] Detected screen turned ON
[DEBUG] Auto detected COM port: /dev/ttyACM0
[DEBUG] Using Python 3.14.4 (main, Apr 11 2026, 09:29:24) [GCC 15.2.1 20260209]
[INFO] Tray icon has been displayed
[INFO] Initialize display
[INFO] Display reset (COM port may change)...
[ERROR] Failed to dock icon
[DEBUG] Static COM port: /dev/ttyACM0
[DEBUG] Display ID returned: ^Ai^@^@^@^A^@^@^@^@^
[WARNING] Display returned invalid or unsupported ID, try again in 1 second
[DEBUG] Display ID returned: ^@^@^@^@^@^@^@^@^@^@^@^
[WARNING] Display returned invalid or unsupported ID, try again in 1 second

Environment:

  • Smart screen model [Turing 2.1]
  • Revision of this project [latest commit]
  • OS with version [cachyOS - but it happened on other linux distros too]
  • Python version [Python 3.14]
  • Hardware [AMD 9800X3D, AMD Radeon RX9070XT, 32GB RAM]

Additional context
Add any other context about the problem here.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure through main.py and configuration.py, then trace the display reset and serial initialization around the logged invalid display IDs. Compare the reset path with the detected COM ports and device state. Done means the Turing 2.1 screen reliably resets after an app restart or reboot and displays the configured graphics without power cycling.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
embedded-iot
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.