I have a MicroBot Push - looks like this:

enter image description here

Below the blue ring on the top is a capacitive touch pad and a TTP223-BA6 controller. Here's what it looks like under the hood.

It's a long story, but I need to be able to trigger that touch pad automatically (from an Arduino over USB, ideally). Interfacing over Bluetooth (the recommended way) isn't an option for a variety of reasons.

Today I tried placing a dime over that ring, then touching a small grounded wire to it. It worked! Until you don't touch it for at least four seconds, in which case this part of the datasheet appears to come into play:

  • Auto calibration for life
    At low power mode the re-calibration period is about 4.0sec normally, When key detected touch and released touch, the auto re-calibration will be redoing after about 16sec from releasing key

After that magic ~4-16 second window, my solution no longer works. If I take the dime off and try to trigger it with my finger, it feels "hard" - I have to press extremely hard to trigger the sensor. Wait four seconds, and it's back to normal. It seems like it's "learning" the capacitance of the dime, which ruins my ability to control it.

How can I consistently fool the capacitive sensor on demand? Other questions recommend foil (which I've tried), but many are pointed toward capacitive screens, not these one-key sensors.

Is there something I'm missing here? Could I use an electromagnet, or capacitor in some configuration? There seems to be (relatively) precious little information out there - or I just don't know how to look for it!

I'd really like to design this as simply and as close to solid-state as possible. If there's a relay involved, so be it - but beyond that, I may as well push the button directly.

  • \$\begingroup\$ Do you want to continuously trigger or to activate it from time to time using and Arduino? \$\endgroup\$ – Lucas Sep 10 '17 at 22:17
  • \$\begingroup\$ Time to time, @Lucas - about half a second at a time is plenty, likely many seconds or even hours apart. \$\endgroup\$ – Undo Sep 10 '17 at 22:18
  • \$\begingroup\$ Each capacitive sensor has its own algorithm to recalibrate, but in most cases, as long as you let go from the button (remove the additional capacitance) it will reset the recalibration timer. In other words, if you add capacitance (the coin) and remove before the recalibration timer runs out, you can press it once again without causing it to recalibrate. Do you want to do it by opening it and wiring the Arduino to it or using some external device. If you don't want to open it up, you can watch a piece of metal (like the coin) to a servo arm and simulate a press from time to time. \$\endgroup\$ – Lucas Sep 10 '17 at 22:28
  • \$\begingroup\$ Do you know of a way to add capacitance without a servo involved? Would it be possible to wire a relay connecting a stationary dime to a larger capacitance (or, possibly, to a capacitor)? Opening it up isn't desired - we're looking for a maximum of simplicity in assembly, and those tiny Torx screws are tiny. \$\endgroup\$ – Undo Sep 10 '17 at 22:31
  • \$\begingroup\$ To be honest it's very hard to achieve what you want. The capacitance depends on how much area of the conductive object (the coin or your finger) overlaps with the button sensor. That means that you can change it by connecting a capacitor to the coin. You need to physically change the overlapping area or the distance of your conductive object. The most feasible idea I can think right now is to use something like a servo to displace the coin. \$\endgroup\$ – Lucas Sep 10 '17 at 22:45

Your Answer

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

Browse other questions tagged or ask your own question.