Auto-Timed PS4 Controller Button Press


I am wanting to use my Arduino Uno and breadboard to create a button, that when pressed, mimicks a button on my PS4 Controller being pressed for a certain amount of time (say 500 milliseconds), and then nothing should happen until I press the button again, where it should do the exact same thing as the first time I pressed it.

I have been able to take apart my controller and have soldered a wire to the contact point for the button I want to press, and also have a wire coming off of ground from the remote, when these two wires are touched, it is just like the button being pressed.

Now I am having trouble with the coding of the system to make this happen, and am unsure as to what should be wired where. If anybody knows how to create some code that would satisfy my need, your time would be greatly appreciate. Sorry if I am bad at explaining things. Thank you.


I remember that I've wanted to do this many times, especially for those games that needed long sequences of buttons to activate some power.

The case is as follows, many controls have a matrix scanning system, and with that, you may have some difficulty finding the correct way to keep track of this scan, and may even damage the control if you are not careful.

Maybe the best way to do this would be to use a relay, or an optocoupler.

The relay has a slow response time, so maybe the optocoupler should be more suitable.

There are many models, such as one of the simplest, PC817, or more sophisticated 4N25 or 4N35.

Connecting the wires you have welded, one with the other, may not be sufficient to know if an optocoupler will work, it may be worth practicing with the optocoupler.

I think it would be interesting to use a common diode, to check if it needs to have the correct polarity, because the optocoupler acts as a transistor.

I am impressed by the amount of work you've put into this man! But have you looked into an easier solution lol May be something like a Mega Modz Macro PS4 controller would do the job for you )))) You can assign any button to be a turbo one and then program the timing it's pressed with this thing in like 5 minutes if you are a beginner or 1 minute if you know how to use it already )))) It's pretty advanced functions can let you program other commands as well. Besides button holding down, you can do all popular mods aka Rapid Fire, Auto Burst etc etc for shooting games if you play those, or same button press, double and triple button press - you adjust or program the timing yourself, and of course a regular turbo button option. Let me know if you need help