1
0
mirror of https://github.com/whowechina/popn_pico.git synced 2024-11-23 22:41:04 +01:00
Pop'n Music Pico Controller
Go to file
2024-10-18 23:24:44 +08:00
BUTTON More accurate keycap socket 2022-10-05 19:10:31 +08:00
CASE Finetune the pcb spacer model 2022-10-15 16:41:29 +08:00
doc Update document for PCB modification 2023-01-28 21:33:29 +08:00
FIRMWARE Firmware moved to a separate repo 2023-01-29 20:52:17 +08:00
PCB Fixed missing screw holes 2023-03-11 10:44:56 +08:00
PLATE Plate go manufacture 2022-09-01 21:33:54 +08:00
PRODUCTION Fixed missing screw holes 2023-03-11 10:44:56 +08:00
.gitignore Woking on plate 2022-08-28 23:30:49 +08:00
LICENSE Update license 2022-08-21 17:12:26 +08:00
README.md Cross-reference and Discord invitation 2024-10-18 23:24:44 +08:00

Pico Popn - Pop'n Music Controller

Features:

  • It's tiny.
  • 1000Hz polling rate.
  • HID lights (9 button lights and Logo RGB).
  • RGB rainbow effects.
  • Light brightness control (v1.2+).

Thanks to:

  • SpeedyPotato, for his great SDVX pico project which inspired me in the first place. I also got many materials from his repo. Check out his great projects: https://github.com/speedypotato.
  • CrazyRedMachine, I got panel arts from his SVG files: https://github.com/CrazyRedMachine/PopnPanel.
  • Many respectful guys/companies who made their tools or materials free or open source (KiCad, OpenSCAD, InkScape, Raspberry things).

Notes

For builds v1.1 and earlier, you need to do a small modification and the main PCB to get brightness control with latest firmware. See the bottom of this document.

My Other Projects

You can check out my other cool projects.

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 doesnt 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

https://discord.gg/M8f2PPQFEA

HOW TO BUILD

Step 1 - Buy

  • Place order at jlcpcb.com for PCB and plate. Gerber zip files are /PRODUCTION/PCB.zip and /PRODUCTION/PLATE.zip. Leave everything default in JLC's ordering page (board thickness is 1.6mm). Choose what ever color you like, I prefer white.

  • Order 3D printing service for the case, FDM with transparent PETG filament or SLA with half-transparent resin. If you own a 3D printer, do it yourself. The file is /PRODUCTION/pico_popn_case.stl.

  • Buy other components (get few more for tolerance):

Step 2 - Solder

  • Use the smallest soldering iron tip you have.
  • Use solder flux, always keep the pins "wet".
  • Soldering iron temperature set to around 300°C.
  • Use tweezers to hold components.
  • Tricks for Type-C socket and 4020 RGB LEDs.
    • Put flux on all those small pins. Melt a tiny little bit solder (seriously very very little bit) at the iron tip. Then quickly solder the pins. Flux and very little bit solder is the key.
  • 2 resistors near USB socket are 5.1k ohm, others are all 220ohm.
  • Don't forget to solder 3 "holes" which connects to the Raspberry Pi Pico's USB pins.
  • 4020 RGB LEDs are side-facing, don't make it "up-facing".
  • They look like this when finish:

Step 3 - Firmware

  • Use a USB cable to connect the PCB to a PC/Mac computer while pressing down the small button on Raspberry Pi Pico. An explorer window will pop up. If it doesn't show up, navigate to a disk labeled "RPI-RP2".
  • Drag the UF2 file (/PRODUCTION/pico_popn.uf2) to the root of this new disk.
  • The RGB lights will start rainbow effects.
  • If it's not working, go back to Step 2 and fix it.

Step 4 - Assembly

  • Insert 9 key switches into the plate, be careful, don't bend the leads.
  • Put the PCB into the case.
  • Gap between the plate and the PCB is about 3.4mm. There're many ways to fix and fasten boards and case. Here's my solution, I reprocessed the screws and spacers as they didn't come with proper length.
  • Another way is to use a long M3 screw from top side and a nut at the bottom side. Between PCB and plate, use a 3.5mm length M3 spacer with no threads. You can also 3D print some spacers using provided /PRODUCTION/screw_spacer.stl.
  • Don't forget get some anti-slip silicone pads.
  • Almost done.

Step 5 - Keycaps

  • If you have resin printer, you can make them by yourself.
    • Make half-transparent resin by mixing translucent and white resin (2:1) as the base resin.
    • Mix some drops of UV resin pigment, you can make all Pop'n Music button colors.
    • 3D file is /PRODUCTION/popn_keycap.stl or if you're using Chitubox - /PRODUCTION/popn_keycaps.chitubox. Orientation and support should be like this to get perfect button surface.
    • These are printed by my Elegoo Mars 3 Pro.
  • There're many other choices.
    • Homemade bottle cover keycaps
    • Homemade coat buttons keycaps
    • DSA color keycaps
    • DSA transparent keycaps
    • MA color keycaps
    • XDA 1.5U color keycaps
    • About the homemade process.
    • I bought these inexpensive 3gram/5gram distribution bottles just to get the covers (28-30mm diameter).
    • Cut the shaft/socket out of regular transparent keycaps.
    • Drill some holes on them so later we can apply UV resin better.
    • Apply UV resin, glue the socket and the cover together.
    • Don't forget alignment.
    • After cured by UV light, they look like this:

Modification for v1.1 and earlier PCB

In the first version of main PCB (v1.1 and earlier) I chose a wrong GPIO for the button 9 LED which caused a PWM conflict. To support brightness and fading control, that must be fixed.
The idea is to cut the old LED 9 track and wire it to a different pin (GPIO18). The blue * mark in the picture means "to cut the track" and the red * mark means "to solder".
If you don't need brightness and fading control, you don't need make this modification, just use v1.1 firmware. Sorry for the mistakes I made.