Take your DJing, gaming, and music production to the next level with this DIY stickless Arcade Pad & MIDI Controller!
This pad measures 210mm x 100mm.
Designed for portability and versatility, this device functions as both a MIDI controller for music production/DJing and a low-latency stickless arcade pad for fighting games.
I designed this from scratch for a close friend in the music industry who wanted the ability to have a small, portable stickless arcade pad that he can use for fighting games and also as a midi controller for his music!
Powered by a Raspberry Pi Pico running GP2040-CE firmware, this build is fully customizable, responsive, and optimized for precision input. Whether you’re mapping drum pads, triggering FX, or executing perfect fighting game combos, this device is designed for seamless integration into your setup.
This model does not feature any logos, in the model pictured I just embossed my design logo on it for show.
The button layout is similar to the Haute42 B16, however this is not a direct copy. Button spacing was adjusted to allow for a comfortable and clean final design.
Dual-Purpose Design - Use it as a MIDI controller for music production or as a GP2040-CE-powered stickless arcade pad for gaming.
Ultra-Low Latency - The GP2040-CE firmware ensures smooth and responsive inputs. Customizable Layout - Assignable buttons allow for full control in both gaming and music workflows.
USB Plug & Play - Works with DJ software, DAWs, and gaming systems that support HID controllers.
OLED Display - A 0.96-inch I2C OLED screen provides real-time status feedback.
DIY-Friendly - Designed for makers with 3D-printable parts and a straightforward soldering process.
Required Tools
To complete this build, you'll need:
Soldering iron & solder
Spools of wire
Heat-set insert tool (for threaded inserts)
Screwdriver set
Required Components
3D-Printed Parts (included in this model)
Case (top & bottom)
Cover
Internals
MX switch bracket plate & clips
Tactile button brackets
Hardware
Heat-set threaded inserts:
15x M2 x 4mm
2x M3 x 4mm
Screws:
10x M2 5mmflat countersunk (hot swap bracket)
4x M2 16mmflat countersunk (case)
1x M2 20mmflat countersunk (case, specific corner)
2x M3 5mmflat countersunk (microcontroller board)
4x M1.7 3mmself tapping screws(If only longer screws are available, washers are required to prevent puncturing the front)
Electronic Components
1xGP2040-CE Raspberry Pi Pico (Though this can be flashed yourself onto your preferred board, this model is specifically designed around the board in the link provided)
This is a complex build, so I have tried to write out the steps in an easy to follow way. This project requires 3D printing, soldering, and basic electronics knowledge. Take your time, and soon you’ll have a fully functional controller for gaming and music production.
Step 1: 3D Print the Parts
Print the following components in your preferred material: (PLA is fine, but harder is better)
Case (top & bottom)
Top Cover
Internals
Hot swap plate & clips
Tactile button brackets
16 Arcade Style Buttons
5 Small Buttons
Ensure all parts are printed with accurate tolerances for a snug fit.
Step 2: Install Heat-Set Threaded Inserts
Use a soldering iron or heat-insert tool to carefully press the M2 x 4mm and M3 x 4mm threaded inserts into the designated holes.
M3 threaded inserts are marked below, everything else will be an M2.
Ensure each insert is flush with the surface to avoid misalignment later.
Step 3: Install Hot Swap Sockets
This step requires some force. The tolerances are intentionally tight to secure the sockets in place.
Note the small square cutout on each hot swap socket, and ensure that this is facing towards the bottom of the plate.
Clip each Gateron low-profile hot swap socket into the hot swap plate.
Double-check alignment to ensure each socket sits securely in the plate.
If needed/desired, add a drop of super glue or other suitable adhesive to each clip on the backside of the plate.
Step 4: Solder Wires to the Hot Swap Sockets
Solder one wire to each end of every socket. This can technically be done before clipping in the sockets, but having done both ways, it's easier to solder them when they are already held in place.
Ensure strong solder joints, as these connections will handle repeated button presses.
If you're feeling fancy, you can label the wires based on the pictures from Step 8 below.
Step 5: Prepare the Tactile Switches
Remove the top two pins from each 6 x 6mm tactile switch and carefully bend the remaining two downward.
Solder a wire to the remaining two bottom pins of each switch.
Step 6: Connect the OLED Screen
Solder or use female jumper wire connectors to attach the OLED screen.
Carefully bend the screen's connectors downward so the wires lay flat inside the case.
Step 7: Secure Components
Hot Swap Socket Plate
Screw the hot swap socket plate into place, ensuring you use the printed washers.
OLED Screen
Screw in the OLED screen to keep it secure.
Small 3D-Printed Buttons
Insert the small 3D-printed buttons, ensuring the small flat side is facing the top of the case.
Place the button brackets over the printed buttons.
The photo below will show the proper configuration, keeping in mind the switches are sandwiched between the white and red brackets.
Tactile Switches & Brackets
Place the wired tactile switches into position.
Screw in the small button bracket to secure them.
For the single-button bracket, only install the left screw, as the right screw is used by the case.
Microcontroller Board
Screw the Raspberry Pi Pico (GP2040-CE) into place using the M3 screws.
Step 8: Wire Buttons to the Board
Follow the provided diagrams to connect the buttons' wires to the microcontroller. The pin identifier is marked next to each screw in slot.
For example, in the second photo, you can see that the button labeled LS (XInput) maps to pin L3 (GP2040) and the board diagram shows which pin that should be plugged into.
I highly recommend trimming each wire to the length needed to plug it in, as the case is designed to be as slim as possible, so there's not a ton of room once it's sealed up.
Another note, depending on the wires you use, the ground pins may be very crowded, as multiple wires need to go into each slot. In the photo above, you can see I twisted multiple ground wires together (mostly 4:1) before plugging them into the ground pins.
Step 9: Insert Switches into Sockets
In order to avoid cracking the thin socket plate, apply pressure from the back of the hot swap socket plate as you push each switch firmly into its socket.
Step 10: Configure the Firmware (GP2040-CE)
Enter Web Config Mode:
Hold the “Start” button while plugging in the device and navigate in a web browser to 192.168.7.1
If wired using the diagram and pins above, this is the second small button from the right.
Test Button Inputs:
Navigate to the Pin Viewer to check if every button works as intended: Pin Viewer Guide
The Pin Viewer tool is available to see what GPIO pin is physically wired to a button. Click on the button and follow the prompt. It will ask you to press the button and then display a "Pressed pin".
Enable Peripherals:
Navigate to Peripheral Mapping and enable:
I2C0
USB0
Configure OLED Screen:
Set up the OLED screen under Add-Ons using this guide: OLED Configuration
Save & Reboot
Step 11: Final Assembly & Testing
If everything is working correctly, screw on the bottom plate.
Your DIY Stickless Arcade Pad & MIDI Controller is now complete.
Additional Customization & Support
For more tweaks or troubleshooting, check out the official GP2040-CE firmware documentation: GP2040-CE Usage Guide
Build Complete!
This was a complex build, but now you have a fully functional arcade-style pad that works for DJing, MIDI control, and gaming. Enjoy your new stickless pad!
This project was a blast to make, I hope you have as much fun with building and using this as I did!