CSX and CSD Trackpads SNR

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
jcsb1994
Level 4
Level 4
First solution authored 50 replies posted 50 sign-ins

Hi,

I have been trying to find the best method to implement a trackpad with capsense. I bought the 41xx s-series pioneer kit, and played around with the example codes and capsense tuner to see which methods had the best signal and robustness, all of this using the 7x7 capsense touchpad mounted on the kit.

I used CapSense_Touchpad_Gestures_CSX and CapSense_Touchpad_Gestures_CSD because these seemed to be the closest examples to objectively compare CSD to CSX.

I was a bit confused when I lauched the capsense tuner with the CSX code. The signal does not seem to be very robust with this method..

First, I can see a couple signal spikes popping on the screen from times to times like this, mainly from the elements in the middle of the touchpad:

pastedImage_1.png

1. Are those spikes normal? Is it something that can be ignored when working with CSX or are there settings in the capsense block that could help reduce the noise in the middle of the trackpad?

Then, I checked the SNR of a few sensing elements.. The SNR measurements are almost always failed with an SNR of 2-3. I even had a 1.19 SNR result with one element. It tends to be worse in the middle of the trackpad. On the sides, it often fails to but I managed to get an sNR of 6 and another of 10 with two elements!

pastedImage_5.png

pastedImage_6.png

2. Is this something I should worry about if I decide to use a CSX touchpad in a custom application? And is there a reason why the pioneer kit design with an example does not reach a satisfying SNR?

The CSD version of the code was a little better. I had SNRs below 5 too, so they failed the SNR tests, but elements had results around 4:

pastedImage_7.png

pastedImage_8.png

Another weird thing is when I tried with a different example code: CE216892 USB-HID Trackpad. This one uses CSD, but results are very impressive and I can get SNRs of around 20 to 30!! And if I wait a few seconds without touching before running the SNR noise test, the noise drops to 0 and I get an SNR of over 600!!!

Here are some graphs:

pastedImage_9.png

On the right, I started acquiring noise not too long after touching the element, so there was some residual noise but after a few seconds the noise flattened. This gave me an SNR of 20-30. But at left, I waited for the "residual noise" (or whatever it is?) to disappear before running the noise acquisition. In that case, I had an SNR of 608!

3. What explains such a big difference in the quality of signal between the two CSD programs?? both run on a 7x7 touchpad. And would it be possible to replicate the feature where the noise just disappears at one point with CSX? I believe high noise is the main reason why I cannot get a high enough SNR with CSX so far.

Thank you so much for your time!

0 Likes
1 Solution
BragadeeshV
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hi JeSi_4326976​,

1. The spikes are due to the byte flips that might occur due to asynchronous i2c tuner read. Please change the tuner mode from asynchronous to synchronous to remove the spikes in rawcounts.

2. Please refer to the following code example for a step by step guide on how to tune CSX widgets to achieve 5:1 SNR

https://www.cypress.com/documentation/code-examples/ce228931-psoc-4-capsense-csx-tuning

3. The effect of noise on both CSD and CSX could be the same. The issue with high noise could be due to system level issues/ tuning issues.

Did you try using the widget filters to reduce noise in rawcounts and increase SNR?

For theory on CSX widget tuning, refer CapSense design guide (Pg 79)

https://www.cypress.com/file/46081/download

Regards,

Bragadeesh

Regards,
Bragadeesh

View solution in original post

0 Likes
1 Reply
BragadeeshV
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hi JeSi_4326976​,

1. The spikes are due to the byte flips that might occur due to asynchronous i2c tuner read. Please change the tuner mode from asynchronous to synchronous to remove the spikes in rawcounts.

2. Please refer to the following code example for a step by step guide on how to tune CSX widgets to achieve 5:1 SNR

https://www.cypress.com/documentation/code-examples/ce228931-psoc-4-capsense-csx-tuning

3. The effect of noise on both CSD and CSX could be the same. The issue with high noise could be due to system level issues/ tuning issues.

Did you try using the widget filters to reduce noise in rawcounts and increase SNR?

For theory on CSX widget tuning, refer CapSense design guide (Pg 79)

https://www.cypress.com/file/46081/download

Regards,

Bragadeesh

Regards,
Bragadeesh
0 Likes