Newhaven Products > TFTs

Capacitive touch problems under linux (FT5x06)

(1/5) > >>


now we are prototyping couple of devices using TI AM3358 Starter Kit. (
Original kit goes with resistive touch but we purchased couple of displays with capacitive touch from digikey:
1) NHD-7.0-800480EF-ATXL#-CTP
2) NHD-4.3-480272EF-ATXL#-CTP

Then we tried several FT5x06 drivers found on internet. One driver was good enough to work with touch screen. Most of them failed due to firmware version mismatch. However, several problems still exist.

1) Now driver works only with 7" display. 4.3" does not. Driver recognizes both displays via I2C, handshakes, etc. but in case of 4.3" there are no interrupts from FT5x06 during touch activity. We tried 3 different 4.3" displays from one purchase and result is the same. Then we supposed that driver has set touch threasholds too high so it does not recognize events. We tried to write different values of amplifier via the linux driver but this does not help. So, 4.3" touch does not work even without any glass.

2) Display of 7" works if direct touched but does not when placed beyond 4mm glass. Similar to item 1 we could not find solution how to improve sensivity.  We see in linux kernel log that 7" and 4.3" displays report slightly different descriptors during handshake. Now I cannot remember exact phrase but something about different number of rows in matrix.

Is there any guide how to set up touch controller settings to force it to work? We actually need it to be placed beyong glass as thick as 2 mm (or even 4 mm).

Best regards.

The 4.3" TFT uses the FT5306, and the 7.0" TFT uses the FT5406.  There are a different number of rows between the two touch panels.
The controller IC has various registers that can be set to custom values, such as touch threshold.  Below is a link to the FT5x06 application note, which shows these registers:
You can see the table of registers on pages 4-7, and more detail about the threshold registers on pages 9 & 10.


We could set up 7" sensivity and now it works with 4 mm glass cover. However, for this case threshold is too close to sensor noise margin. Spontaneous cursor movement can be seen with a threshold of 3 and glass strart to work at threshold 5. So, 7" touch screen works OK.

The most urgent problem remains with 4.3" display. As we discovered it does not work as described. In fact, it is present on i2c bus but it allways reads ad last byte written to it. For example, if we write in u-boot i2c tool:
i2c read 38 80.1 2 80200000
it reads two bytes: 80 80
if we asked it to read 5 bytes it would read 5 times the same byte, 80. The byte is always equal to register number being written.

7" display reads correctly: reading 5 bytes gives us 5 consecutive registers starting from given register number.

We tried both 400kHz and 100kHz bus speed. The rresults are the same.

So we still have problem with it.

The I2C protocol between the two displays should be the same.  Do you have another 4.3" TFT with capacitive touch panel to try?

We have three displays with the same behavior.

We tried to write to mode register hoping that it will hear and exit test mode but that didn't help.


[0] Message Index

[#] Next page

Go to full version