A compact keyboard-style controller for Pump it Up
Loading README and project media…
A compact, feature-rich keyboard-style controller for Pump it Up simulators

This readme may be rather large, but don't let that intimiate you! I've included as much information as possible to make sure this build is straightforward and beginner friendly. If you have any questions at all, feel free to shoot me a message through Discord (dj505#6697) or open an issue here.
Many components listed below are optional. If you prefer to spend as little as possible on this build, they can be entirely omitted. In the case of the FR4 plate, leaving it out will require you to 3D print or laser cut a plate/case.
All prices below reflect the bare minimum cost of building 5 controllers with PCBs and components from JLCPCB and LCSC respectively, as the minimum number of PCBs from JLCPCB per deisgn is 5. Some components link to AliExpress as it's generally a good, cheap source for keycaps, switches, and other components LCSC won't have, at the cost of long shipping times. It's highly recommended to buy a few extra of each component in case any are damaged, lost, or DOA.
| Components (per 1 controller) | Specs | Notes | Recommended Purchase Link | Approximate Min. Cost (USD, per 5 controllers) |
|---|---|---|---|---|
| 1x Raspberry Pi Pico | Any Pico that is not the Pico H | No pre-soldered headers. Pico W should work, but there is currently no WiFi or Bluetooth functionality here. This may change in the future. Pin-compatible clones should work (in case you want USB C) - be sure that the pin mappings are the same! These are not officially supported and it's up to you to make sure it works. | Link | $4 |
| Pin Headers | 2 rows of 20 headers | The Pico has 20 pins on either side. You can either go with 1 strip of 20 per side or 2 strips of 10 per side, whichever comes out cheaper and occupies all pins. | Link | $12 |
| 1x 3D printed shell | N/A | Cost depends on whether or not you own a 3D printer (or know someone who does) and what service you use. | N/A - STL file located in Case/3D Prints directory | N/A |
| 2x right angle tactile switches | Approx. 7.5x6mm, right angle. See recommended purchase link | Recommendation - buy a couple extras just in case. | Link | $0.96 |
| 10x keyboard switches | Must be Cherry MX compatible | The ones linked here are what I used personally for the sake of a price estimate. You can pick any kind of switch you want. Ensure the switches you choose will accommodate the LEDs you pick! | Link | $23.99 |
| 10x keycaps | Must be Cherry MX compatible | Ideally a "flat" or uniform profile like DSA, XDA, F10, etc. Recommendation - source these on your own for better quality and prices. | Link | $28.50 |
| 4x machine screws | M3 or M3.5*8mm, pan head | Black would look nice if you can source some. Countersunk screws will not sit flush, and it's not advisable to countersink fiberglass without amazing ventilation and a mask with filters. M3 or M3.5 depends on your printer and its tolerances, but the design was made with M3.5 in mind. Recommendation - buy a couple extras just in case. | Link | $1.45 |
| (OPTIONAL) 10x LEDs | 4x red, 4x blue, 2x yellow (or whichever colours you prefer tbh) | LEDs should be 3mm or smaller to fit your switches! Recommendation - source these yourself or find alternatives through LCSC. Buy a couple extras just in case. | Link | $3.29 |
| 10x resistors | Surface mount, 330Ohm, 0805 package | Only needed if using the above LEDs. Recommendation - buy a ton of them. They cost fractions of a cent each, and they're easy to lose! | Link | $0.17 |
| (OPTIONAL) 6x WS2812B LEDs* | Must be WS2812B or pin-compatible. Earlier WS2812 (non-B) LEDs with 6 pins will not work. | Used for underglow lighting. Definitely buy extras - they're somewhat delicate and easy to break or burn out by mistake during installation. | Link | $4.43 |
| 1x Main PCB | 1.6mm thickness, lead-free HASL or ENIG finish recommended | Estimated price based on default options, but with a lead-free HASL finish. | Link - gerber.zip located in gerber directory | $8.40 |
| (OPTIONAL but recommended) 1x FR4 plate | 1.6mm thickness, lead-free HASL finish recommended | Estimated price based on default options, but with a lead-free HASL finish. Not enough contacts or mask artwork to justify ENIG finish. | Link - gerber.zip located in Case/Plate/gerber directory | $9.30 |
| Total Cost | This cost estimate reflects building 5 full PicoFX controllers. If you're splitting the cost through a group buy, divide it by the number of people participating. | $96.89 |
* There are a few options for RGB underglow depending on your needs and experience.
If you have any questions about the parts requirements, costs, or sourcing components, feel free to shoot me a message through Discord (dj505#6697) or open an issue here.
If you've never ordered PCBs before, don't worry! The process is super simple on most websites. These instructions are here to make sure each step is clear and straightforward, and to avoid accidentally ordering a set of boards with the wrong options. Keep in mind, most manufacturers have a minimum order number of 3-5, which means you're going to need to order at least 3-5 of each PCB (main board and plate). Feel free to put together a group order with friends or sell the extras! I really don't mind others making and selling units, just make sure they're well made, thoroughly tested, and work properly (and consider donating a couple bucks if you can!) Here are my recommendations:
| Manufacturer | Minimum order number | Notes |
|---|---|---|
| PCBWay | 5 PCBs per design | Has sponsored the PicoFX, however opinions expressed are 100% my own. Offers several discount coupons for new users (first time order discount, coupons for completing a profile, etc). Straightforward order process, excellent quality end result. Also offers 3D printing, CNC, and PCB assembly, if needed. Recommended. |
| JLCPCB | 5 PCBs per design | Provides new user discounts. Straightforward order process, high quality end result. Also offers 3D printing and PCB assembly, if needed. Recommended. |
| OSH Park | 3 PCBs per design | Fewer options than the above two, but the minimum order number is smaller. Colour options are limited to purple and "after dark", a clear solder mask over black substrate so all the traces are visible (very cool but not very visible for this project). Overall a bit more costly, but shipping is generally faster as they're based in the United States. |
Some manufacturers may need you to manually specify the PCB dimensions. To save you some time, here are the dimensions for both PCBs:
| PCB | Width | Height |
|---|---|---|
| Main board | 120.7 | 70.6 mm |
| Plate | 139.1 mm | 77.2 mm |
The example order process described here is written with PCBWay in mind, but applies to most manufacturers. Be sure to sign up for an account beforehand and set up your delivery address/etc so you're good to go when you order.
To make sourcing a little easier and cheaper, you can find all the small components for this project on LCSC. This doesn't include more specialized or larger parts such as keyboard switches, or hardware such as keycaps or screws. Check the recommended purchase links for those, or source them from sites like eBay, AliExpress, etc.
The bare minimum numbers of each part per controller are listed below, but I would highly recommend ordering a few extras of each, as they're very small and can be easily lost or damaged. Thankfully they're very inexpensive and adding extras will only cost you a few cents to a dollar more. See the Components section for a recap of what is/isn't optional and the alternatives for each.
This build applies to the full materials list, including the FR4 plate and surface mount parts. Text descriptions will be provided for the optional alternatives, such as replacing SMD LEDs with LED strips or skipping the FR4 plate. Be sure to read through each step in its entirety before doing anything!
Build process & guide video on YouTube





You're done! Flash the firmware, install the bottom half of the case, and you're good to go.
Prebuilt PIUIO firmwares here!
Prebuilt HID gamepad/keyboard firmware here!
For the PIUIO firmware source, see the piuio-pico repository by 48productions. This firmware emulates a PIUIO board and can be used on Windows devices via IO2Key (helpful installation video by Nirvash) or on Linux via a custom kernel driver (installation instructions in the README).
If you plan to use this controller with simulators exclusively, see the HID gamepad/keyboard firmware linked above.
To install the firmware, plug in your Raspberry Pi Pico while holding the "BOOTSEL" button to put it in programming mode. It should show up as a USB mass storage device. Compile the firmware (if necessary) and copy the .uf2 file onto the Pico through the file explorer. It should automatically disconnect itself and restart. You're done!
LightsDriver line to read LightsDriver=PIUIO_Leds. If you're using the gamepad firmware, underglow lighting will be on by default and does not react to the game.Thanks to


