Electronic – Arduino – Trigger an iPhone’s touch screen with no human interaction


I'm trying to replicate part of this experiment. Specifically, I want to touch the screen with a cable and some aluminum foil whenever I send a signal from an Arduino pin. From the blog post linked above:

For communication from the Arduino to the Android tablet I'm using a relay to vary the capacitance of a aluminum foil taped to the screen. […] A relay allows me to float the foil or pull it to ground, effectively changing the capacitance. This is much more reliable, but requires a bulky relay. I think with some more experimentation I'll be able to find a solid sate solution.

This is how my circuit looks like right now:

Basically I have a relay switch switching from ground to float every second.

This works intermittently. Sometimes the screen stops accepting real touch from fingers until the cable is disconnected from the screen.

How can I make this circuit more reliable? How can I make this cable 'touch' the screen whenever I send a signal from the Arduino board?

EDIT 1: I was able to isolate the problem a little bit. If I put my hand behind the phone, even a few milimiters away from it, the trigger works. Otherwise, it won't. See: https://vine.co/v/bIeWP0pdvuP.

EDIT 2: If I connect the charing cable to the iPhone and touch the other end (the USB shield that gets connected to the computer) it works. I tried to connect that end to ground and works intermittently. It looks like a ground problem. The arduino is connected via USB to my laptop so I guess that's where my ground comes from.

Best Answer

The critical point here is to control the ground of the phone.

When you manipulate your phone for its normal usage, one hand is touching it and sets the ground. Trying to do the same manipulation with a phone sitting on a table will be less reliable.

To have the same effect in the lab, you should have your phone laying on a conductive layer that is connected to the ground (or any other fixed potential) of your circuit. A simple way to do so is to have your phone laying on a copper foil that is used as the common ground of your circuit.

Your phone does not need to have direct ohmic link to ground, a good capacitive coupling is ok too.