geki_pico/README.md
2024-09-22 10:50:57 +08:00

13 KiB
Raw Permalink Blame History

Geki Pico - ONGEKI Style Mini Controller

点这里可以切换到中文版

Features:

  • It's small but closely replicates the feel of the arcade controller.
  • Smooth lever action with adjustable resistance.
  • Air WAD with sound feedback.
  • IO4 emulation.
  • Built-in AIME card reader.
  • Command line for configurations.
  • 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 projects and developers.

Notes

You can check out my other cool projects.

This Geki Pico project:

  • Heavily depends on 3D printing, you need a 3D printer.
  • Requires skills to solder tiny components.

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 and Components

3D Printing

  • Printing parameters
    • PLA or PETG.
    • Layer height: 0.2mm
    • Support: Yes, always.

Lever Parts

  • Lever Base: Production\3DPrint\geki_pico_lever_base.stl, white.
  • Lever Shaft: Production\3DPrint\geki_pico_lever_shaft.stl, white.
  • 2x Lever Fixer: Production\3DPrint\geki_pico_lever_fixer.stl, white.
  • Lever Handle: Production\3DPrint\geki_pico_lever_handle.stl, red.

Housing Parts

You need to rotate 135 degrees on Z axis to fit the bed.

  • Housing Bottom: Production\3DPrint\geki_pico_bottom.stl, I chose sakura pink, what's your choice?
  • Housing Support: Production\3DPrint\geki_pico_support.stl, semi-transparent. If you don't have ToF optical cover, or you're not happy with the cover's performance, use the geki_pico_support_no_cover.stl instead.
  • Housing Top: Production\3DPrint\geki_pico_top.*, white. If you have multi-color printing equipment and skill, use the 3mf one (button outlines and logo are black).

Button Caps

  • 6x Main Button Cap: Production\3DPrint\geki_pico_button_main_choc_*.stl, white, print up-side down so you get nice button surface and stem. Choc v1 and v2 are different, choose the right one.
  • 2x Aux Button Cap: Production\3DPrint\geki_pico_button_aux.stl, semi-transparent, print up-side down.

Lever

  • Required components
  • Assemble Steps
    1. Print out the parts.
    2. Stick PTFE/UHMW tape to the sliding surfaces of the fixer and the shaft. Then trim the tape to match the surface shape. If you have some keyboard switch lubricant, apply a tiny bit on the sliding surfaces. Turn the M2*5mm screws into the bearing fixers halfway, dont and never tighten them.
    3. Install the 2 bearings on both sides of the shaft and put it in the base, then use M2*16mm screws to fix the two bearing fixers on the base.
    4. Use some instant glue to stick the magnet to the bottom of the shaft. Make sure the poles are placed horizontally. A little trick is you connect several magnets together and draw a line to cross all the magnets, and then you know the poles.
    5. Install the lever handle onto the double-ended stud screw, put aside. Later when the housing is ready we need to screw it into the lever shaft.

Assembly

  • Other components needed

    • 4x M3*8mm regular screws for fixing the lever to the bottom.
    • 8x M3*20mm regular screws for the housing.
    • Some VHB double-sided tape to fix the speakers and the ToF sensors.
    • Some thin soft wires for the speakers and the ToF sensors.
  • Steps

    1. Install the lever to the bottom part, using M3*8mm screws.
    2. Wire (solder) the ToF sensors to the main PCB, each needs 4 wires.
    3. Use VHB tape to fix the ToF sensors on the ToF seats on the bottom part.
    4. Wire (solder) the speakers to the main PCB, each needs 2 wires.
    5. Use VHB tape to fix the speakers on the floor of the bottom part.
    6. Install the main PCB to the bottom part, no screws needed.
    7. Bend the hall-effect sensor (SS49E) so it stays on top of the lever magnets. Remember to leave a tiny gap so the shaft can move freely.
    8. Solder the PN532 module, 8002A modules to the main PCB if you haven't done it yet.
    9. Install the main button caps and the aux button caps onto the switches.
    10. Now it looks like this. Please note that in the picture it is the PCB v1. I've done some optimizations in the later version.
    11. Now it's the perfect chance to adjust the lever resistance. Slowly and gently turn the M2 screws to adjust the tension on the sliding surface. You may need to turn all the screws evenly.
    12. Put the support part on the bottom part, then put the top part on the support part.
    13. Align these parts and use M3*20mm screws to fix them together. You may need to carefully adjust the position of the ToF sensors so the IR cover (or the tiny sensor chip) fit into the windows on the support part.
    14. Finally screw the lever handle into the lever shaft.

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. There's a small hole at the bottom side of the Geki Pico, it is facing right to the BOOTSEL button.
  • If it's already running Geki Pico firmware, you can either use "update" in command line or hold down at least 4 buttons while connecting to USB to enter update mode.
  • To access the command line, you can use this Web Serial Terminal to connect to the USB serial port of the Geki Pico. (Note: "?" is for help)
    https://googlechromelabs.github.io/serial-terminal/

Usage

  • You need to calibrate the lever by "lever calibrate" command after you flash the firmware.
  • If you feel the lever direction is in correct, you can use "lever invert <on|off>" command to change it.
  • Volume of sound feedback can be set by "volume <0~255>" command.
  • ToF sensors have triggering zones, the purple zones are for the WAD, the orange zone is for SHIFT.
  • To emulate IO4 TEST/SERVICE/COIN, you can put your hand in SHIFT zone. When you see the WAD lights flashing, the AUX buttons become TEST and SERVICE, and swinging the lever for "INSERT COINS".
  • AIME is on a secondary COM port. You can set mode or toggle virtual AIC function.

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/eb38f3add988969c42b50060/w/86bcbeae8562f01c1a81c53e/e/feecb6f371a076c968584d3c