I've been trying to get a touchscreen monitor to work with my Raspberry Pi 3. The monitor is 15", externally powered, and is to be connected via HDMI and USB for the touchscreen interface. The HDMI works fine, however the USB is not detected by the PI.
With the USB plugged in I listed the USB device with lsusb. Here are the results:
Bus 001 Device 006: ID 1c4f:0026 SiGma Micro Keyboard Bus 001 Device 005: ID 045e:0040 Microsoft Corp. Wheel Mouse Optical Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
As you can see my USB keyboard and mouse are successfully detected, however no sign of the touch controller.
Next I cleared kernel message buffer with sudo dmesg -C and printed it with dmesg both after plugging in and pulling out the USB cable of the touchscreen, but there were no new messages in the buffer.
At this point I would've thought the device is dead, however after plugging it into my windows laptop it was instantly detected, and after installing a driver it was operating perfectly. I took a screenshot of the device properties in Windows.
The power consumption of the device shouldn't be an issue, since these are usually low power devices, but just to make sure, I did the same tests with a powered USB 2.0 hub connected to the PI and got the same results.
My system (uname -a):
Linux raspberrypi 4.9.41-v7+ #1023 SMP Tue Aug 8 16:00:15 BST 2017 armv7l GNU/Linux
At this point I have no idea how should I get this device to work, so any advice is appreciated.
EDIT: I have tried running a live Raspberry PI Desktop on my laptop and after plugging in the touchscreen it was working perfectly. So I guess the source of the problem is the different hardware. Any ideas what could cause this?
SOLUTION: Okay, I have managed to find out what cause the problem. I was using an open-frame monitor which was custom built by a local company and as I later figured, they didn't do a particularly good job.
I disassembled the monitor to see the touch controller. The touch controller is marked ETP-4500UG-B. After finding the datasheet and some documentation the touch controller seemed perfect however the wiring seemed iffy inside the monitor, as the controller's connections wired onto an existing usb connector on a different board.
After checking the connections I realised the Vbus(5v) connection of the touch controller was not connected to the usb socket, but to some internal 5V supply. The voltages were perfect, only the touch controller wasn't powered by the USB host. Since the ground was still common, the host should've been able to communicate with the slave, however it seems like the PI couldn't for some reason.
After fixing the USB connections inside the monitor, it was instantly working. After calibration using xinput-calibrator (by following some tutorials) the monitor was working like a charm.