I want to print buttons in the silk screen of one side of the PCB. And, I want to detect if a human finger touches any of these areas. What kind of sensor should I use?

Can I do this without using a sensor product? For example, by placing traces behind the button shapes in some certain topology, and detect change in the capacitance between two points on the traces?

enter image description here

  • 1
    \$\begingroup\$ Capacitve sensing candidate, Capacitve sensing read thru this and get an idea. Or an IC \$\endgroup\$ – RSM Mar 6 '15 at 20:35
  • \$\begingroup\$ Capsense would be a good start. I think most would agree that Cypress is about the best in the industry. \$\endgroup\$ – Matt Young Mar 6 '15 at 20:35

Any capacitive touch sensor will work for this. Most vendors have dedicated ICs for exactly this application.

You could even get away without a dedicated sensor if you used a MCU with built-in touch capability and an appropriate library, such as pairing Atmel's AVR chips with their QTouch library.


Yes, this is commonly done with capacitive sensing, often referred to as cap touch or cap sense.

This is a deep subject, way too complicated and with too many details and pitfalls you really need to know about to get into here. Most of the major microcontroller vendors have numerous app notes, sample code, working subsystems, and evaluation boards. Microchip even has some stand-alone hardware products for this purpose, and other vendors may too.

This is something you need to study before implementing. I'd start on the Microchip web site and look thru app notes about cap touch or cap sense.


You can create the capacitive sensors on the PCB itself right under the areas of interest. A filled circle with surrounding ground plane will form a capacitance you can measure. A lot of MCUs have a capacitive touch function built in, but you can also get away with just a timer and a GPIO pin.

You can get not so bad results quite quickly, but outside of the lab, things start to get tricky quickly as well.

I implemented something just with a timer and the comparator of the GPIO - still works after 5 years, but never left the lab (it's still running on the same battery as well).

It is based on the application note from Texas Instruments.

The basic idea is this:


simulate this circuit – Schematic created using CircuitLab

You set the GPIO at first as output and charge the sensor element. Then you switch it's functionality to input and as a trigger for a running timer. The external resistor will "slowly" (still a matter of microseconds) discharge the sensor element. When the voltage falls below the trigger point of the pin, it will capture the timer value.

If a finger comes close, the capacitance rises and the time to discharge will increase, with this you can detect if a finger is there.

In the application note there is a not so dumb algorithm to track environmental changes, as the will disturb your system in the long run.

For a real robust implementation, you are probably better off with a "real" touch sense controller and a study of how to design the touch sensing elements.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.