I’ve wanted to make my own USB controller for a while now. It hadn’t occurred to me that I had all the parts to put one together staring me in the face. I took this as an excuse to try out some different soft touch SMD buttons and the idea I had for the L and R buttons. Follow me below to see how it came out.
- Arduino pro micro
- 10 SMD soft touch buttons
- 2 x L and R custom button PCB
- 4 x M3 standoffs
In a my last retropie handheld I used some through hole rubber buttons but I didn’t like the feel of them. While browsing Aliexpress I found some different soft touch buttons that were SMD and smaller footprint, I ordered some to see what they were like. Turns out they were exactly what I was looking for.
The next problem I had to solve was how was I going to do the L and R shoulder buttons. I had been using some clicky right-angled buttons.
The thing I didn’t like was that it took more effort to push these then the soft touch ones so the controller didn’t feel consistent. I had a brain wave, I made a PCB to so that I could attach the SMD buttons to a right angle male header. To be honest I didn’t know if this would even work but as it turns out it worked really well.
This project was kinda just an excuse to try out how the buttons felt in this layout and how they felt to play games with them. I’m using what I learn from mounting the screen and speakers in the xmas bauble project and these buttons/layout in this project. Also the power bank board from the zero boot system to be combined into my next project so stay tuned
The Arduino I’m using is a Arduino pro micro because it supports HID, As it turns out it had just enough pins for the amount of buttons I needed. It also has 4 analog pins so I could in a future rev to add 2 analog sticks.
I decided to mount the Arduino to the under side of the board, I did this because I didn’t want the on board LED’s to blind you while using it.
The last few times I’ve had my PCB’s made I’ve switched from using OSHPARK to using JLCPCB, For one they are much cheaper but they also give you 10 boards. This is great for the project because I’m using an unpopulated PCB as a backing for the controller. I used M3 standoffs, It feels great in the hand.
Board files and arduino code – https://github.com/facelessloser/zero_control
Joystick library – https://github.com/MHeironimus/ArduinoJoystickLibrary