Open firmware for Waveshare’s 7 inch touch screen

Some time ago I was searching a touch display for a project of mine. The requirements were 7 inch in size, capacitive touch digitizer and at least a resolution of 800x480px. I figured out Waveshare’s “7 inch HDMI LCD (B)” would be the perfect match. And I was thrilled that not only it was not only relatively cheap, but they got it right and (so the claim) implemented “fully valid” HID protocol (their shop still states “When work as a computer monitor, supports Windows 10/8.1/8/7, five-points touch, and driver free”).

When I received the display, everything was working out of the box with my Raspberry Pi 2 running on Windows 10 IoT. Then the Anniversary Update came and that’s when things got weird. Over-night my slightly laggy touch display turned into one that responded to scroll movements, but I could hardly get a “click” to trigger. Later I found that thread over at the MSDN support forums: Waveshare 7 inch display doesnt work on windows 10 iot core

After a few days of discussion Microsoft acknowledged that there was some change in the HID report processing pipeline, which now discards HID reports that are malformed. The advice was to contact Waveshare to see what they could do about the issue. Long story short, I never got a satisfying answer. So I decided to fix it on my own.
Continue reading