Can MPR121 sensor be used with ITO PET film touchpads?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Can MPR121 sensor be used with ITO PET film touchpads?

1,515 Views
kursatuvez
Contributor I

Hi,

It has higher resistance and I am not sure if mpr121 can handle it.

I can't get it to work well, key gets stuck and misses touches frequently.

Here is more info

Touchpad

- The touchpad has about upto 10K resistance on the pads.

- It seems to comply with their http://cache.freescale.com/files/sensor ... AN3747.pdf

- Mechanically etched using a plotter

Software

- The baseline and filter values seems to be around 20-70, which is low. Here is the debug info

Filt: 62 25 39 21 24

Base: 72 24 36 20 24

- The current (CDC) is 63uA, CDT 32 usec

I've tried many things and ended up reading all the datasheet and application notes.

Tried autoconfig feature and original Adafruit code , none of them worked well.

It works well with silver ink touchpads that I have made. But they have around 1 ohm resistance.

Below is the modified Arduino code. Uses the default values from quick start quide

http://cache.freescale.com/files/sensor ... AN3944.pdf

boolean Adafruit_MPR121::begin(uint8_t i2caddr) {

Wire.begin();

_i2caddr = i2caddr;

writeRegister(MPR121_SOFTRESET, 0x63);

delay(1);

writeRegister(MPR121_ECR, 0x0);

uint8_t c = readRegister8(MPR121_CONFIG2);

if (c != 0x24) return false;

setThreshholds(2, 1, 5);

writeRegister(MPR121_MHDR, 0x01);

writeRegister(MPR121_NHDR, 0x01);

writeRegister(MPR121_NCLR, 0x00);

writeRegister(MPR121_FDLR, 0x00);

writeRegister(MPR121_MHDF, 0x01);

writeRegister(MPR121_NHDF, 0x01);

writeRegister(MPR121_NCLF, 0xFF);

writeRegister(MPR121_FDLF, 0x02);

writeRegister(MPR121_NHDT, 0x00);

writeRegister(MPR121_NCLT, 0x00);

writeRegister(MPR121_FDLT, 0x00);

writeRegister(MPR121_DEBOUNCE, 0);

writeRegister(MPR121_CONFIG1, 0b11111111); // FFI:2 34 samples, CDC:6 63uA

writeRegister(MPR121_CONFIG2, 0b11111110); // CDT:3 32us , SFI:2 18 samples, ESI:3 64 ms

writeRegister(MPR121_ECR, 0b11000101); //CL:2 , ELEPROX_EN:2, ELE_EN:4 Electrodes 0-4 enabled

pinMode(irq, INPUT_PULLUP);

return true;

}

Labels (1)
Tags (4)
2 Replies

858 Views
reyes
NXP TechSupport
NXP TechSupport

Hi Kursat Uvez,

I don’t think that the ITO PET film could be causing the problem, just remember that it is not recommended that the dielectric thickness is greater than 3.0mm and there should not be air gaps between the electrodes an the dielectric.

In case that you do not want to make changes in your hardware, I believe that you would need to do is test with different threshold values until you find the one that works for your application.

However, I would strongly recommend to make changes in your electrode design, your electrodes seems to be very closed to each other’s. A simple criteria to follow is to have electrodes separated 2 to 3 times as much as the dielectric thickness to be used. For example, if a 3 mm dielectric is used, then electrodes have between 6 mm and 9 mm separation. This is the ideal but it’s not a rule.

Another important thing that you are missing in your electrode design is the ground planes, we recommend to use X-hatch pattern ground plane below the electrodes area and in the space between the electrodes.

Please take a look at the application note AN3863 for further recommendations about the electrodes design: http://www.freescale.com/files/sensors/doc/app_note/AN3863.pdf


Have a great day,
Jose Reyes

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

858 Views
kursatuvez
Contributor I

Thanks Jose,

I've changed the electrodes and it works perfectly now.

I am happy that I used mpr121. It is little more complex than one other

cap sensor I was thinking of switching. But mpr121's the extra control

it what I needed.

It probably was a connector+electrode problem though.

I was using z-tape to connect ITO to board.

New electrodes with double the connector pad area fixed the problem.

Or maybe the ITO coating was removed when re-positioned.

Electrodes/traces have 0.3mm min distance between them and PET film above

is 0,125mm, 0.25mm is the trace thickness.

There wont be another dielectric on top of it at this time.

There is still no ground plate but it still works perfectly.

With auto-config and few FFI/SFI adjustments, I am getting filterdata readings around 350.