mathoudebine / mathoudebine/turing-smart-screen-python

unending SerialExceptions 😲 after ~30 minutes of sending commands to screen —— having to power cycle 😥

Open
#562 10 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

Describe the bug

First off, i LOVE this project. I was so happy to see that i could do something ELSE with my turing model "A" screen. They are going for only $13 on aliexpress right now.

Anyway —— Is this a bug, or do I just need to throttle my commands at a slower rate?

To Reproduce
Steps to reproduce the behavior:

  1. Run my current winamp_dashboard.py program, which isn't yet published yet
  2. Watch it fail over unending SerialExceptions after 30 minutes or so
  3. Power cycle the frame because it will never ever reset eve again after this

I spent so long getting this thing to work, and once it worked. The frame conks out in 30 minutes.

Expected behavior
The library would not cause serialexceptions simply due to using it, or would return a more meaningful error code explaining what is going wrong and how to prevent that

Screenshots / photos of the Turing screen
Add screenshots or photos of the rendering on the smart screen to help explain your problem.
You can drag and drop photos here to add them to the description.

DEBUG]     lcd_comm_rev_a: DisplayPILImage. is being run on an image of dimensions 800x40
DEBUG]     lcd_comm_rev_a: DisplayPILImage. [2] image_width/h=0x0,actual=800x40
DEBUG] DDDDDDDDDDDDrawing: DisplayPILImage: [4] x=0,y=0,x0=0,y0=0,x1=799,y1=39,image.size[0]=800,image.size[1]=40
DEBUG] DDDDDDDDDDDDrawing: DisplayPILImage: [5] self.SendCommand(Command.DISPLAY_BITMAP, x0=0, y0=0, x1=799, y1=39)
ERROR] SerialException: Failed to send serial data to device. Infinitely retrying.
DEBUG] Static COM port: COM4
ERROR] Cannot open COM port COM4: could not open port 'COM4': FileNotFoundError(2, 'The system cannot find the file specified.', None, 2)

Environment:

  • Turing A [the one that uses lcd_command_rev_a.py]
  • Version of your project? 2024/08/21 (I pulled it 3 days ago, so probably the latest?)
  • WIndows 11
  • 3.10.9
  • AMD Ryzen9 5950X 16core 3.4/4.9GHz CPU+Gigabyte Aorus Ultra mobo+64G 4400Hz G.Skill RGB RAM+RTX3060 12G video+1TB WD PCIe4.0 NVMe M.2 SSD+18TB WD HD+liquid cool(w/RGB cpu light)+6 RGB fans+Phanteks case

Additional context
I can totally publish the product if you want to look at it, but I assume you probably do not. It's just one .py script (winamp.py) and one library (claire_winamp.py, i always put my first name into my own libraries so i don't forget it was me who wrote them 😂). Heck i could even email them if you want to look at them (but you probably don't).

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 reviewing the serial retry and COM-port handling in lcd_command_rev_a.py, then compare it with the logged failure for COM4 and SerialException. Reproduction depends on the reporter's unpublished winamp_dashboard.py; done would mean identifying the cause of the long-running failure and defining a reliable recovery or meaningful error behavior.

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
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.