Custom Gamepad from scratch - DIY Project?


I would like to build my own Joystick/Gamepad. In simple terms just copy all the buttons and switches from a common controller like the PS4 Dualshock with its main features and complete my design with additional controls.

A N Y B O D Y A N Y I D E A ? :smiley:

Doing the main circuit isn’t the problem I think but when it comes to software it’s getting magical :smiley:. Firstable the problem is to simply connect the developer-board to the logic bricks in armory. Next getting the controller running by itself and then you have to read single values. For example you want the player not only to move in the direction of the joystick but also accelerate the player’s speed proportional to the angle of the controller. Or jumping higher if you are pressing the force sensing resistors harder. But finally you wanna also know if the battery of the controller reaches 10% - so the gamepad has to run autonomously also…

Plenty of issues. But if there is some sort of patent formula of building hardware controllers for armory there could be a total new gameplay experience, in my opinion. :slight_smile:

To give an example: I often saw some tutorials about flashing-scripts for Arduino-Boards in the Sim-Racing category. Arduino uses its own IDE. But I’ve heard that you can take a Raspberry Pi to communicate via Python. Maybe here are some interface designers for software or electronical engineering.

(Controller should be for PC)


I would use existing keys to encode new operations, and in Armory 3d taught them to decode


As for the scalable buttons (analog between -1 and 1), you could use a multiplexed audio cable.You could then send a key every multiplex update to stay in sync. Of course, I haven’t seen any keyboard software/firmware for the raspberry pi, you could read strings from an Arduino, though. Another option, still staying with the pi, is to connect the ethernet jack to your computer and code a server in haxe.


Thanks for the advice :slight_smile:

…maybe a direction to follow…


I’ve found this from an older post. But this method uses websockets. I need to configure some offline controller instead. Only for windows, mac or linux apps.


I.e. no internet access, or no use of internet peripheral (like an ethernet cable)? The platform constraint is a little annoying… Through wasm, you could call c code for tcp, but I haven’t figured it out myself, so I can’t recommend it. If you really can’t use an ethernet cable from raspberry pi to your computer, then, of course, it’s a different task entirely, don’t know what advice I can offer.


@the_beginner Depending on what you want to accomplish there are many ways to go about it. Check out Gimx for starters. You’ll get the most bang for your Arduino buck. There is a wealth of info for interfacing anything with anything in the wiki and forums.

In my case in 2016 I used an $8 computer C.H.I.P with Arduino to play PS4’s SFV/IV on a PS4 using an X-Arcade Dual Stick (Gimx can run on a PC or a Raspberry Pi too). The Arduino runs a sketch to become a Generic USB Gamepad and hardwire, or Xbox/DS3/DS4/Mouse/Keyboard/Steering Wheel whatever. Point being don’t reinvent the wheel since Armory will support most brands and standards.

Have fun!