Skip to content

[EMB-486] add detection for new touchscreen touch driver in vnc server - #3

Merged
Robin den Hertog (robinmdh) merged 1 commit into
masterfrom
EMB-486-fix-vncserver-for-new-screen
Jul 31, 2026
Merged

[EMB-486] add detection for new touchscreen touch driver in vnc server#3
Robin den Hertog (robinmdh) merged 1 commit into
masterfrom
EMB-486-fix-vncserver-for-new-screen

Conversation

@robinmdh

@robinmdh Robin den Hertog (robinmdh) commented Jul 31, 2026

Copy link
Copy Markdown
Member

Description

The VNC server was not finding the touch input device on printers fitted with the new GoodIX touchscreen. The startup script hard-coded only the EDT touch controller I²C address (0038) and iterated over a fixed event0event5 range, which didn't cover the GoodIX device at address 005d.

Changes:

  • Renamed TOUCHSCREEN_ADDRTOUCHSCREEN_ADDR_EDT and added TOUCHSCREEN_ADDR_GOODIX="005d" for the new screen's touch driver.
  • Replaced the fixed {0..5} loop with a glob over /sys/class/input/event*, making it robust against the input event index varying between hardware revisions.
  • The grep now uses -qE with an alternation pattern so either controller is matched.

Known limitation — this PR is a partial fix:
The touch input is now correctly wired up, but the VNC server binary itself has a screen-update regression on the new display: it sends one full initial frame correctly, but subsequent frame updates are not transmitted. The result is that you can click and control the printer blind (touches work, control responds) but you cannot see what you are controlling. This is a separate issue with the framebuffer-vncserver binary and/or its interaction with the new framebuffer device; it is out of scope for this PR.

Workaround used in the meantime:
A patched Debian package was built manually with this script change applied directly, and deployed to the affected printer for local testing. That package confirmed that the touch-detection fix itself is correct — the /dev/input/eventX path is now resolved properly — but exposed the frame-update issue described above.

Out of scope: fixing the frame-update/screen-refresh regression; that likely requires changes to the framebuffer-vncserver binary or its framebuffer polling logic.

So for testing use apt install framebuffer-vncserver=2026.07.31-merge-master

How has this been tested

Manually deployed a patched Debian package containing this script to an NGP 2POC6 running the new GoodIX touchscreen. Verified:

  • Before fix: VNC server exits immediately (Could not find touchscreen device...) because the GoodIX address was not recognised.
  • After fix: VNC server starts, the correct /dev/input/eventX is passed as the -t argument, and touch input events are received by the server.
  • Residual issue observed: initial screen frame is sent correctly; no further screen updates are pushed to the VNC client after that.

The EDT (old screen) path was not regression-tested on hardware; the address and matching logic for 0038 are unchanged.

Ready for Review Checklist

  • the author has self-reviewed this work and is highly confident about the quality
  • this work satisfies all acceptance criteria that are stated in the linked ticket
  • this work has been tested on all product families and the process and results are documented in the above section
  • The description above is concise yet complete
  • the reviewer has been offered a walkthrough (if needed)
  • the code is cleaned from any rubbish (e.g. meaningless comments, log-spamming, etc...)
  • remaining #TODO comments mention a Jira ticket number
  • all CI checks are passing
  • all commits are (re)structured to be meaningful and clearly arranged, and all are prepended with the ticket number for traceability

The vnc server wasn't finding the event class object to send touch
events to. So we have to add the address for the goodIX device to
the startup script.

Signed-off-by: Robin den Hertog <r.denhertog@ultimaker.com>
@robinmdh
Robin den Hertog (robinmdh) merged commit 07401a8 into master Jul 31, 2026
4 checks passed
@robinmdh
Robin den Hertog (robinmdh) deleted the EMB-486-fix-vncserver-for-new-screen branch July 31, 2026 13:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants