Capacitive Touch Button not working on pcb


I'm trying to use TTP223 touch buttons touch button.
I placed them (3) on a PCF8574 inputs.

They work fine on the breakout board but don't work on the PCB, because the signal voltage doesn't drop low enough (about 2.5 to 3v instead of ~0). Then it doesn't trigger the I2C controller.

I'm running out of ideas to diagnose this case. Can someone help ?

Here is what I did already.

#1 Isolate from electric, magnetic and electrostatic field
I put the touch button at the end of dupont wires to make sure nothing interferes with the button.
=> No luck

#2 give a power boost
I added a big enough capacitor on the power, next to the button, to make sure anything else doesn't requires too much power.
=> No luck

#3 Checked the program to make sure software is right.
I removed the touch button and played with dupont wires to send LOW or HIGH signal to the I2C controller (PCF8574)
=> Works well

#4 Checked the power
Powered in 5v

#5 remove power noise
I added a tiny capacitor next to the buttons to make sure power is cleaner.


Which breakout board? Circuit diagram?

How do you power the circuits?

Thanks @DrDiettrich
I'm sorry, please read breadboard, not breakout board...
The full diagram is large on several boards, but the way touch button and I2C expander are powered on the breadboard and the PCB are the same:

  • Arduino powered by 12v + mosfet reverse voltage protection + big capacitor for devices requesting peak current (actually not connected)
  • I2C expander and touch buttons powered by the arduino 5V output

I also tried to power the arduino with USB only. It makes no difference, works on the breadboard, but not on the PCB.

You can test the touch buttons without a controller and find out when/why the output becomes unreliable. Then make a connection to either an expander or controller pin - any differences?

When you can't prove it works, just make it not working !

As Buttons are inputs, I did not set levels on the corresponding pin of the I2C controller, to avoid forcing levels on the touch button output.

So, to make it not working, I tried to force the signal during setup to HIGH level, then everything is working fine. I can read the diagram of the I2C controller but I can't find why there is this kind of "Strong" low level priority.

Yes, that's how such o.c. I/O pins of the expander should be configured for input.

Can you post pictures of how you have mounted the switches and your PCB?

Thanks.. Tom... :smiley: :+1: :coffee: :australia:

Here it is. It's raised to fill the gap from the board and the "screen" behind the one they are.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.