Pico controller for Maimai
Go to file
2024-02-13 21:06:39 +08:00
cad Remove duplicated dwg file 2023-10-14 18:07:30 +08:00
doc Update mpr121_cut.png 2024-01-02 13:25:19 +08:00
firmware Button GPIOs can be re-assigned thru CLI 2024-02-13 21:06:39 +08:00
PCB Readme and stuff for publish 2023-10-14 18:08:31 +08:00
Production Button via IO4 Support 2023-12-09 20:30:23 +08:00
.gitignore Readme and stuff for publish 2023-10-14 18:08:31 +08:00
LICENSE.txt Initial commit 2023-08-30 20:54:22 +08:00
README.md Small typo fix 2023-10-14 18:29:37 +08:00

Mai Pico - Maimai Style Mini Controller

Features:

  • Made with a 15.6 inch portable screen.
  • Arcade-like experience.
  • 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).

Notes

This project is the most complex one.

  • It needs a custom etched ITO glass and a portable display.
  • Heavily depends on 3D printing.
  • Requires skills to solder tiny components.
  • Requires many other DIY hands-on skills.
  • The IO PCB is still in prototype state, it works, but the layout and connectors are not perfect.
  • I didn't design the housing, so it's your job to make it look nice and structually stable, follow your imagination and taste.

You can also 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.

HOW TO BUILD

PCB

ITO Glass

  • Find a service to make custom etching ITO coated glass. The AutoCAD file is Production\CAD\mai_pico_ito_v*.dwg. Use 2mm thickness, 10-20ohm sheet resistance ITO coated glass.
  • The ITO coated glass is connected to the IO PCB by "zebra cable" (1.6mm pitch: 0.8mm black part and 0.8mm clear part). A silicon heater head at 200°C is used to stick the zebra cable to the gold finger part of PCB and ITO coated glass. The formal name of this cable is "Heat Seal Connector".
  • Custom ITO coated glass is relatively expensive, but ours is small, so it's not like arcade-size expensive. This is the shop I ordered the ITO glass. The minimal batch is around 5 pieces. But they provide service only in China as far as I know.
    https://shop378788148.taobao.com/?spm=2013.1.1000126.2.305e16c4LFf1GW

Button Ring

  • Print out the 8x set of base, link, button and cover from Production\3DPrint\mai_*.stl.
  • Buy 8x 2mm (diameter) * 40mm (length) steel shafts, they're used as the button hinge.
  • Here's how to assemble them, hinge shaft and components on PCB are not shown in this rendered image.
  • Here's how I assembled the ring. Please note that wiring for the button switches is missing in these pictures.
    • All discrete components ready.
    • Solder the button PCB first.
    • PCBs are daisy-chained using short 4-wire cable, they're LED_GND, LED, LED_5V and BUTTON_GND. So the BUTTON signal pin is not soldered yet.
    • You need 3M5423 UHMW film tape (or similar hard and super-smooth PTFE tape with 0.2-0.3 thickness). It is to lubricate the button surface that touches the keyswitch.
    • Assemble the 3D printed parts together with the PCBs.
    • Use shaft to expand the support holes a little bit, and apply some keyboard switch lubricant such as Krytox 205G0 to make the shaft super smooth.
    • Each link needs 8x M2*4mm screws to connect two bases together.
    • Install the cover, each needs 2x M2*5mm screws.

Portable Display

Glue Things Together

  • I use 3M VHB tape (0.5mm or 1mm thickness) to stick the button ring, the ITO glass and the monitor together.
  • Only use a little tape, I use 4 small pieces to stick ITO glass to the display and another 4 small pieces to stick button ring to the ITO glass.
  • Don't apply the tape on the traces of the ITO glass, you can see the traces or pads at certain angle.

Housing

  • It's your job to design it and make it look nice.

Firmware

  • UF2 file is in Production\Firmware folder.
  • 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.
  • LED and Touch protocols are implemented following Sucareto's research at https://github.com/Sucareto/Mai2Touch.
  • It has a command line to do configuration. You can use this Web Serial Terminal to connect to the USB serial port of the Mai Pico. (Note: "?" is for help)
    https://googlechromelabs.github.io/serial-terminal/
  • It implements 3 COM ports, one is for command line and the other two are for LED and Touch. By issuing "whoami" to the command line, each COM port will print their identities.
  • Button signal is sent to the host by HID Joystick or HID NKRO (keyboard). There're two set of NKRO keymaps, use hid <joy|key1|key2> to switch between them.

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/d8b39d27c9cb7990d9ce4d46/w/2c1baa71e391bfd1246f122b/e/f87f0f1c373fe2186ddc5c9c?renderMode=0&uiState=652a665608b4e07137e3861a