AnsweredAssumed Answered

Can MPR121 sensor be used with ITO PET film touchpads?

Question asked by Kursat Uvez on Apr 23, 2015
Latest reply on May 10, 2015 by Kursat Uvez

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;

}

Attachments

Outcomes