I'm trying to integrate an existing PCAP touch screen into an experimental project I'm working on. For it to work the way I want, I need access to the raw data from the touch-screen nodes instead of what the controller would normally output, post-filtering and finger detection etc.

I've found an example of someone achieving a similar result using the official Raspberry Pi 7" screen : Example using the official RPI 7" screen

That shows exactly the sort of raw output I would be looking to obtain. In that case however, the controller just happens to already have a separate I2C output and the controller chip in question is documented and provides the raw data, in addition to the filtered.

Ideally for a prototype I need to use something at least 24-28". I had a Hanns G 28" touch screen lying around, so after taking it to pieces I discovered it's using a SiS9250 + SiS9202 + Lenovo(HST)_28"_V02 controller. These chips are ganged together to handle the large format. The particular chips don't seem to have any datasheets or reference available so I'm guessing they're proprietary for OEMs, and this appears to be the case for all the larger size screens I've looked at. The touch controller board has 3 FPC (70pin) connectors, so I would guess there are 70 driving electrodes and 140 sensing based on the configuration of the chips on the board. Their site mentions a high driving voltage of 30V but that's about the limit of the technical details.

I have an RPI 3 and some microcontrollers lying around and was hoping to get something wired up using one of them.

The two approaches I could think of would be:

  1. Use a controller which exposes this raw data, assuming that the controller provides some sort of I2C / GPIO capability alongside the processed touch data. This would be a preferred option, as this process could run independently from the existing OS/driver applications requiring touch support.

  2. Ignore the controller completely, connect up 3 FPC 70pin connectors, using either the R.PI or MCU drive (30V ?) through the drive electrodes sequentially and then read the voltage from each column, possibly through a bunch of analog multiplexers as we'd have 140 inputs. Assuming the effect of the capacitance on the nodes is interpreted as a voltage change (range) on the inputs.

If anyone has any ideas how to go about this or has attempted something similar, any suggestions on the way forward would be hugely appreciated!

  • \$\begingroup\$ So, you are looking to get the I2C data out of the touch controllers? Or, if that's not possible, read the waveforms off the receiving lines? Do I have that right? \$\endgroup\$ – Annie Jul 5 '18 at 20:39
  • \$\begingroup\$ That is correct. The end result is that I want to be able to create a 140x70 image which I will up-sample. Basically I need a custom touch-controller that receives all the data as normal, but ignores all the filtering and looking for fingers as I won't be using fingers. \$\endgroup\$ – JohnHankinson Jul 6 '18 at 7:59
  • \$\begingroup\$ It's not looking for fingers? Are you looking for touches at all, or this serves some other purpose? If you are just looking for a binary condition (there is a touch somewhere/there is no touch somewhere), then monitoring the RX lines becomes a bit more realistic. But still not easy. \$\endgroup\$ – Annie Jul 6 '18 at 17:42
  • \$\begingroup\$ It would be looking to detect other items which are conductive. These work on normal touch screens as-is, but by having access to the raw data I can look for things which may be filtered out as being too small, or the wrong shape to classify as a finger/touch as well as overcome the 10-touch limit of most displays as I need about 30 in most scenarios. Ideally depending on the sensitivity I may be able to detect items not quite in contact with the screen (this is usually also filtered out by the normal controller) but this is more of a nice-to-have. \$\endgroup\$ – JohnHankinson Jul 6 '18 at 21:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.