gordwait
We have an application where we mount the TM105065-2 Trackpad into an aluminum housing with a silicone gasket (for moisture resistance) but we've found that if we tighten the case beyond finger tight, we start getting spurious ghost messages from the trackpad. 
If the trackpad is getting uneven or too much pressure will it act like this?
We did check that a bit of our silicone gasket material does not work as a finger..
Quote
Scott
Hello Gordwait;

Does the metal housing cover any of the touch active area of the sensor? That would cause some issues. If the metal is not covering the active area but is very close, this might cause some imbalance. If this is what is causing a problem, then this might be solved by doing a factory calibration after the sensor has been installed into the housing. 

What version of the TM105065 are you using, The I2C or USB version?
Do you have a way of accessing the registers of the module? (are you using our Dev kit and sample Arduino code?)

Scott

Quote
gordwait
The housing isn't touching the top of the panel, the silicone gasket is there. The back of the touchpad chassis ground edge is touching the aluminum of the case, but we have a ground wire from the pad on the back to a chassis ground screw on in our case. We are using the I2C version and we have access to it via our own hardware Altera 
Quote
gordwait
Altera FPGA with their soft cpu running. I don't think we've been running a calibration cycle after installing, that sounds like something we should definitely do!
Quote
Scott
We always recommend that a factory calibration is done once a touchpad is installed in a system. This will help remove any imbalances caused by the mechanical items around the sensor like overlays, bezels or metal close to the sensor. 

To force a factory calibration, you simply have to write a 0x03 to register 0xC2DF. The calibration should take less then 500 ms. You can verify it has been completed by reading the register again. Once the 0x03 has been cleared (reads 0x00) the factory calibration is complete.

It is important to not have anything touching the surface of our touchpad when this is done. 

A factory calibration should only be needed to be done one time. The calibration matrix is stored in flash and will be preserved on subsequent power cycles.

Give this a try and see if this solves the problem. If not, we might have to dig in a little deeper.

Scott

 
Quote
gordwait
We'll dig into this today, thanks for the tip!
Quote
gordwait
By the way, it seems like our team missed a developer document, can you point me in the right direction? I'm wondering if there are any other things like calibration we might have missed?
Quote
Scott
Most information can be found here: https://www.cirque.com/gen4-dev-resources
Quote
gordwait

Hi Scott, 
we're trying out various tests, but I have a question on the calibration instructions you noted above,
they don't seem to match the App Note register map, in GP-AN-130823 I2C Gen4 Interface.pdf. 
In that document there is a FeedConfig1.Calibrare bit (7) in register offset C2C4, 

The same document says that Bits 0 of offset C2DF are "Saves current configuration to NV RAM and that
bit 1 is "Saves factory compensation with a configuration save when set." 

Should we not first write the bit 7 in C2C4 to cause a calibration cycle before saving it?


Quote
Scott
This is a bit confusing some times. Even for us. We have a bad habit of using Compensation and Calibration sort of interchangeably but they really are not quite the same thing., 

In order for us to detect a finger, we have to detect the small change in capacitance the finger has on the sensor. In order for us to detect such a small capacitance, we have to remove the capacitance of the sensor itself without a finger. We do this by having a snapshot, in RAM, of what the sensor looks like without a finger touching it. We call this the Compensation Matrix, or "comp" for short. This matrix is constantly being updated over time, when there is no finger touching, in order to take out the small changes in the sensors balance that happen as temperature or humidity change. 

This Comp Matrix is only supposed to be updated when there is nothing touching, but it can also accidentally happen in some cases like if it happens to be updated just as a finger is touching down, or if a finger is on the surface on power up. When this happens is the new Comp matrix is not valid. Most of the time we have algorithms that catch this condition and will force a fresh comp image to happen. This normally happens automatically.

Bit 7 of C2C4 is way of forcing the FW to take a fresh Comp image and update the matrix that is in RAM. 

There is also a sensor image we use that is called a "Factory Calibration" or "Factory Comp". This is an image of the sensor that is placed into NVRAM when a Factory Calibration is performed. This image is used to detect if the sensor has changed drastically from what it normally looked like. This is needed to detect if the current Comp Matrix in RAM is bad. If the current image in RAM is drastically different that the one in NVRAM, this will force a new comp image to be taken. 

The Factory Calibration is usually only needed to be done once, after the sensor has been installed it its "normal" environment. This calibration is done by the writing a 0x03 to 0xC2DF. 

The reason I wanted to try this in your case was that I was worried that if there was a large change to the sensor balance when the sensor was installed into your metal housing, it might be a large enough change that would make the FW keep forcing a new comp. It could do this if the sensor has change a lot compared to the Factory Comp image which was done during the module testing at the factory (not installed into anything). By forcing a Factory Comp once the sensor has been installed, this will take into account the imbalances caused by the metal and the possible bending of the sensor. This might be what is causing the problems in finger tracking you see when you tighten things down.

Sorry for the long-winded post. It is a hard to summarize this stuff without giving a lot of backstory.

Let me know if this solves your issues.

Scott






Quote
gordwait
That makes a lot of sense, actually. Our current challenge is we can't reproduce our problem at the moment, and considering this continual correction this might make sense. We had one trackpad acting poorly but the issue vanished after a power cycle.
Quote
gordwait
Our troubled trackpad started with the ghost messages again this morning, so my co-worker (Kulwant) was able to run a factory calibration and make the issue go away again. It certainly seems like we're on the right track, but since the problem seems to come and go at random we're wondering how we can confirm 100% that we have an actual fix, or is it just a statistical anomaly.. 😉 Kulwant also tried to lock in a bad calibration by placing some metal, and also a finger on the trackpad during a factory calibration but it didn't seem to cause trouble. Is there a definitive way to make the trackpad fail with a bad calibration so we can then "fix" it with a good one?

What we're guessing is that our configuration has been right on the edge of failure since we haven't been doing the recommended factory calibration you describe above. 

Also is there a time factor in the odds of a trackpad going bad? Like I mentioned, we had a couple of days where none of the bad trackpads would show any issues. This weekend the system was left up and running and one trackpad was acting badly this morning, and thus potentially fixed by the factory calibration step. 

We're not sure how to convince ourselves we have a full solution since the error is so intermittent!

Also, is it enough to run a factory calibration here at our "factory" or is this something we should cause to happen at the place where the trackpads get installed for the end user? My guess is calibrating at our location is enough, there should not be any unexpected and permanent variation in capacitance at the customer site.. 

Any suggestions?
Quote
gordwait
Oh, (sorry for the barrage) - since we have an exposed aluminum surface below the trackpad, and the chassis ground strip around the outside edge of the trackpad can touch it and make contact, what happens if aluminum oxide builds up and makes a poor connection? Note that yes, we do have the ground wire soldered to the pad on the trackpad and attached to the aluminum case with a screw. 

Should we make sure the outside chassis ground strip on the back edge of the trackpad is insulated? Or made more conductive to the aluminum?
Either way I can't help thinking a change in conductivity may be causing our issue..
Quote
Scott
I have a few ideas to toss out. 

Is there any chance that the metal can flex over time or temperature? We have seen that if the touchpad gets bend (even a little) this could cause a bad RAM comp.

It is sounding like you are seeing some random "Phantom Finger" over time as the unit just sits. Is this correct? This could be a bad comp, or it also could be noise. Are you using the standard overlay from us or did you apply your own overlay? 

If this keeps being an issue, you might have to send me a "bad" unit so I can identify the problem.




Quote
Scott
If you would like, we can take this to email so you could send me some photos. I would like to see exactly how the Touchpad is being installed.
My email is sws@cirque.com

You could put them here if you wish, but this isn't exactly private. 

Scott
Quote