- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
We have designed a capacitive sensing trackpad using the CYBLE-214015-01 module. We followed the Cypress recommendations when creating our 7 by 7 trackpad. Now for a project, we are using the PSOC Creator Sense Tuner in order to acquire the x and y positions of a finger touch on our trackpad. From the Widget View on the Sense Tuner I am able to see the 7 rows and 7 columns working perfectly and going over the finger threshold. The problem we are having is that when we log the x and y positions and then extract it and analyze it we seem to be missing data points. Is there any recommendations as to how to fix this? Below I show what our raw data looks like. In reality the data points should be spread across the entire area as I went back and forth the entire trackpad surface for an entire minute. We do not understand why there is some areas that are completely blank. For the parameters, we are using a 8 bit resolution and a 3x3 centroid. I have attached the code that I am using in order to use the tuner.
Solved! Go to Solution.
- Labels:
-
PSoC Creator & Designer Software
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @vebr_4751981 , Since the entire data structure received in the client is set as the buffer of EZI2C, the BCP (I2C master) can read specific values from this buffer using the index.
Check section Using Bridge Control Panel to Monitor Raw Counts and Baselines from the document below for reference
https://www.cypress.com/file/489491/download
Bragadeesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @vebr_4751981 , I think you have attached an incorrect project to your thread. Can you please reattach the project that has the trackpad firmware in it?
Also, this looks to me like a logging issue. Are you using Tuning Over BLE project to log the position data? Do you see any data points missing in the Tuner Widget view while moving across the trackpad?
Bragadeesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Sorry about that. I have reattached the project that has the trackpad firmware that I am currently using. And yes I am using Tuning Over BLE project to log the position data. In the Tuner Widget view while moving my finger across the trackpad I do not see any data points missing. It moves very smooth and I can see the touches across the entire trackpad. The problem is that once we try to extract the data from the tuner, points are missing.
Thank you
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @vebr_4751981 , You have attached the wrong project again. I see only Client project inside the archive file. Could you please right click on the project name and do an archive of the project alone?
Bragadeesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @vebr_4751981 , Thank you for sharing the project. I do not see any issues in the firmware. Although can you check the following?
1. Check if you are missing any positions in the TouchPad view of Tuner.
2. Did you try to use some other logging tool (for example Bridge Control panel) to log the data? You need to simply read the position data from the CapSense DataStructure that is received in the Client side with the correct index.
3. The resolution of the trackpad seems to be very low. Can you ensure that you are getting 5:1 SNR at the set resolution?
Bragadeesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In regards to #1, what exactly do you mean? Should I just observe the pointer in the Touchpad view of the Tuner? If so, the answer is no
In regards to #3, the reason why we use such a low resolution is because we need to continuously track the position of the pointer, in order to calculate the frequency of movement. And as we increase the resolution the refresh rate decreases and therefore the number of data points communicated via BLE decrease drastically. Hence, hindering our frequency calculation. I would really appreciate your help with this.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Regarding #1, I just wanted to make sure that we do not miss any data points in the Touchpad view on Tuner.
Any updates on BCP / other data logging tools other than tuner?
Bragadeesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @BragadeeshV
Thank you for the reply and information.
I have never used the BCP before so I have a couple of questions
How am I able to modify the server code/CapSense DataStructure to print the X and Y position of the touch that the trackpad detects?
Thank you!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @vebr_4751981, The CapSense Tuning over BLE example is intended to tune the capsense sensors over the air so that you do not require any wires from your end product to tune your board. If you already tuned your capsense sensors for good performance then we do not recommend you to use this project for sending custom data to the client.
However for debugging, you can use the existing project that sends the entire CapSense data structure to the client (remember that this has the X and Y coordinates as well). At the receiving end treat this as simply an array buffer and the contents of the buffer (rawcounts, hardware parameters etc) can be simply assessed using correct index. Now to find the correct index for each items, refer to the CapSense_Registermap.h under Generated Sources/ CapSense. For example : buffer[46], buffer[47] would give X position.
Bridge control panel is installed along with PSoC Programmer. Please refer to the Help section of the Bridge Control Panel to get started with entering the commands. It is fairly straightforward. Please get back to use if you face any difficulties.
https://community.cypress.com/t5/PSoC-5-3-1-MCU/how-to-use-Bridge-control-panel/td-p/39968
Bragadeesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for the information.
We understand that in order to access the Y and X position coordinates at the receiving end we need to use the correct index. Now, my question is once we know what the correct indexes are, do we need to edit the main code of the client? or can we just use these indexes in the BCP?
Thank you
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @vebr_4751981 , Since the entire data structure received in the client is set as the buffer of EZI2C, the BCP (I2C master) can read specific values from this buffer using the index.
Check section Using Bridge Control Panel to Monitor Raw Counts and Baselines from the document below for reference
https://www.cypress.com/file/489491/download
Bragadeesh