I needed a controller to use while testing different hardware with retropie. I basically used a joystick library with a arduino pro micro. Luckily it had just enough pins (12 digital) for a d-pad a b x y and shoulder buttons plus start and select
SpoilerShow
SpoilerShow
I made my own shoulder buttons because I couldn't find any soft touch right angle buttons. Its just a PCB that connects the buttons SMD pads to 2 thought hole pads so you can solder on 2 right angle male headers.