Diva Pico - Project Diva Style Mini Controller
Features:
- Two sizes, Diva Pico and Diva Pico+.
- It's small, but the buttons are still decent.
- Support Nintendo Switch, Steam PC and Arcade version.
- HID light for Arcade version.
- All source files open.
Thanks to many respectful guys/companies who made their tools or materials free or open source (KiCad, OnShape, InkScape, Raspberry things).
Special thanks to community developers that inspired me and helped me: CrazyRedMachine (https://github.com/CrazyRedMachine).
And also:
- GP2040-CE: https://gp2040-ce.info/ (for the PS4 support)
- RP_Silicon_KiCad: https://github.com/HeadBoffin/RP_Silicon_KiCad
- Switch_Keyboard_Kailh: https://github.com/kiswitch/keyswitch-kicad-library
Notes
This Diva Pico project:
- Heavily depends on 3D printing, you need a Bambu 3D printer (X1, P1 or A1, not the mini version).
- Requires skills to solder tiny components.
My Other Projects
You can check out my other cool projects.
- Popn Pico: https://github.com/whowechina/popn_pico
- IIDX Pico: https://github.com/whowechina/iidx_pico
- Chu Pico: https://github.com/whowechina/chu_pico
- Mai Pico: https://github.com/whowechina/mai_pico
- Diva Pico: https://github.com/whowechina/diva_pico
- AIC Pico: https://github.com/whowechina/aic_pico
- Groove Pico: https://github.com/whowechina/groove_pico
- Geki Pico: https://github.com/whowechina/geki_pico
- Musec Pico: https://github.com/whowechina/musec_pico
- Ju Pico: https://github.com/whowechina/ju_pico
- Bishi Pico: https://github.com/whowechina/bishi_pico
- Nos Pico: https://github.com/whowechina/nos_pico
- Voltex Pico: https://github.com/whowechina/voltex_pico
- Chord Pico: https://github.com/whowechina/chord_pico
- Dance Pico: https://github.com/whowechina/dance_pico
- Arcade Pico: https://github.com/whowechina/arcade_pico
Disclaimer
I made this project in my personal time with no financial benefit or sponsorship. I will continue to improve the project. I have done my best to ensure that everything is accurate and functional, there's always a chance that mistakes may occur. I cannot be held responsible for any loss of your time or money that may result from using this open source project. Thank you for your understanding.
About the License
It's CC-NC. So DIY for yourself and for your friend, don't make money from it. And plagiarism that doesn’t even dare to mention the original author is not acceptable. Plase note that pooling orders and group buying for raw materials is acceptable. Selling off any leftover components without profit is also acceptable.
If you're interested in some kind of commercial use, please contact me (Discord, QQ group, Wechat group or leave your contact in issue section).
My Discord Invitation
HOW TO BUILD
Frequently Made Mistakes
Many DIY enthusiasts commonly make certain mistakes during the building process. Please proceed with extra caution to avoid these.
- MISTAKE: Soldering everything together without conducting intermediate testing.
Remember, even professional engineers can make mistakes. It becomes significantly harder to identify the root cause of a problem when all components are already assembled or soldered. Therefore, it's advisable to solder and test in stages. The firmware is designed to function correctly even with some components missing, which is good for testing. - MISTAKE: Neglecting to cut the ADDR pin trace on the MPR121 module.
The MPR121 module in the market has the ADDR pin pre-connected to ground. But the board expects a floating ADDR pin, otherwise the ADDR pin will short the circuit. Please verify your "CUT" using a multimeter. - MISTAKE: Rushing to replace components when something fails.
Sometimes people prematurely assumes that the Raspberry Pi Pico or other modules are faulty. Be aware that desoldering and soldering large SMD components is a challenging task. It carries the risk of damaging the component or the PCB board. Patience and caution are crucial. Look at the schematics and PCB design files and ask help from community first. Questioning the integrity of these components should be your last resort.
PCB
-
Choose a PCB vendor (such as JLCPCB) and place an order with the gerber zip file (latest
Production\PCB\diva_xxx_xxx.zip), regular FR-4 board, black color, thickness is 1.6mm.

-
1x Rasberry Pico Pi Pico or pin-to-pin compatible clones.
https://www.raspberrypi.com/products/raspberry-pi-pico
Sticking a thin scotch tape to avoid short-circuit is a good idea.

-
16x WS2812B-4020 (32x for Diva Pico+) side-facing RGB LEDs for the slider.
https://www.lcsc.com/product-detail/Light-Emitting-Diodes-LED_Worldsemi-WS2812B-4020_C965557.html -
9x WS2812B-3528 RGB LEDs for Diva Pico buttons. For Diva Pico+, you need 17x WS2812B-3528 reverse mount RGB LEDs.
-
2x MPR121 modules (3x for Diva Pico+), there're many types in the market, choose ones like this.
https://www.sparkfun.com/products/retired/9695
Before solder MP121 module to the main PCB board, remember to use a knife to cut (unshort) the tiny trace that connects ADDR to the GND. You can cut the red part as shown in the image. Please be careful not to cut more than necessary.

-
8x 0603 1uF (0.1~1uF all fine) capacitors (C1 to C8), OPTIONAL, recommended.
-
4x Kailh choc v1 switches, dark yellow is recommeded for its 70gf force.

-
2x Alps SKSTAAE010 tactile switches. https://tech.alpsalpine.com/e/products/detail/SKSTAAE010/
-
1x Omron B3F-4005 or B3F-4000 micro-switch. https://www.mouser.com/ProductDetail/Omron-Electronics/B3F-4000?qs=B3tblJ0Nlt8c5sbFRctxww%3D%3D
-
For Diva Pico only, 3M 5423 or 5421 UHMW PE film tape, important for button feel. 5423 is better for its thickness.
https://www.3m.com/3M/en_US/p/d/b40069119/You need to apply tapes to the contact surface of button to switch and button to base clamp.

-
For Diva Pico only, 4x 2mm*50mm (diameter*length) steel rods for the button lever structure.
-
For Diva Pico+ only, 8x U-shape 2U stabilizer steel wires, you can also harvest them from regular 2U MX stabilizers. I invented this structure originally in my Voltex Pico project, checkout Voltex Pico repository for more details.
-
For Diva Pico+ only, 4x 3mm*5mm*10mm regular springs for increasing the button force.
Light Guide Panel
- Find a service to cut a light guide panel or a frosted acrylic panel. It's a perfect rectangle, 1.8mm to 2.0mm thickness
- For Diva Pico, the size is 240mm*42mm.
- For Diva Pico+, the size is 329mm*47mm.
- This is what a decent light guide panel looks like.

3D Printing
-
You might need a Bambu 3D printer:
- For Diva Pico, a 256*256mm bed is fine; for Diva Pico+ you need a H2D-sized bed.
- Its AMS system works great for multi-color printing.
-
Printing parameters
- PLA, PETG, ABS are all OK.
- The color "Arctic Whisper" works best for the main body.
- Layer height: 0.2mm
- Support: Yes, always.
-
Base:
Production\3D\diva_xxx_base.stl. -
Cover Base:
Production\3D\diva_xxx_support.stl. -
Cover:
Production\3D\diva_xxx_panel.3mf, with multi-color support. -
Buttons:
Production\3D\diva_xxx_button_combo.3mf, with multi-color support.
Note that button components (the button body, the seat and the logos on it) are mixed in one file, you need to cherry-pick before printing.

From top to bottom:
- Cover
- Cover Base + Light Guide Panel
- Buttons
- PCB
- Base
For Diva Pico, you need 6x M3*10mm regular screws to fix all things. For Diva Pico+, you need 9x M3*8mm regular screws and 4x M2*8mm flat head screws.
Apply some 10mm*2mm silicone anti-slip pads to the bottom side of the base to provide stability when playing.
Button dome choices
- Go buy 60mm dome buttons.
Firmware
- UF2 file is in
Production\Firmwarefolder. - For the new build, hold the BOOTSEL button while connect the USB to a PC, there will be a disk named "RPI-RP2" showed up. Drag the UF2 firmware binary file into it. That's it. There's a small hole at the bottom side of the Diva Pico, it is facing right to the BOOTSEL button.
- It has a command line to do configuration. You can use this Web Serial Terminal to connect to the USB serial port of the Diva Pico. (Note: "?" is for help)
https://googlechromelabs.github.io/serial-terminal/ - You can switch key mapping mode using either of the following methods:
- Hold Triangle, Square, Cross, Circle or Cross+Circle while plugging in the USB cable to switch to Nintendo Switch, PC Steam, Arcade, PlayStation and PlayStation Arcade mode, respectively.
- Use the
keymapcommand in the command line interface.
- In Nintendo Switch, PC Steam, and PlayStation modes, the left auxiliary button is used as a "SHIFT" key, changing the functions of the other six buttons.
- In PlayStation mode, if key-related files are missing, the console will disconnect controller input after 8 minutes. You can use the following tool to set a PS key.
https://whowechina.github.io/diva_pico/tools/ps4key_packer.html- Note The Diva Pico project will not provide any files or information related to acquiring these files. Do not request them through any communication channel (e.g., Email, Instant Messaging, GitHub Issues, Discord).
CAD Source File
I'm using OnShape free subscription. It's powerful but it can't archive original designs to local, so I can only share the link here. STL/DXF/DWG files are exported from this online document.
https://cad.onshape.com/documents/d9e9c1de2d4b98d5eaf21d07/w/7c216f367b558e083eb1f468/e/4536bf9859137db81313ff87?configuration=List_ilV09d08Sdz7FZ%3DButton_48&renderMode=0&uiState=65923e1383b3106c15b5c996
















