* 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
* Go JLCPCB and make order with the gerber zip file (latest `Production\PCB\geki_main_xxx.zip`), regular FR-4 board, black or white color, **1.6mm** thickness.
<imgsrc="doc/pcb.jpg"width="60%">
* 1x Rasberry Pico Pi Pico or pin-to-pin compatible clones (U1).
* 35x WS2812B-4020 side-facing RGB LEDs for the circular gimbal daughter PCBs (D2-D36). Be careful with the orientation when soldering: D2 to D4 and D34 to D36 should be facing sideways, while the others should be facing up.
* 2x Small speakers no larger than 20mm\*20mm\*5mm, 8ohm or close, (SPK1, SPK2), you can even harvest similar sized ones from old broken toys.
Try search on Google with keywords: "smd speaker 1540"
* 1x SS49E linear Hall sensor (U5).
https://mou.sr/4gDuQKu
https://www.digikey.com/short/fmm54dzq
* 1x Small 3V to 5V DC-DC step up or up-down converter (U6). Make sure its output is 5V and input range covers 3.3V. If the one you get has different pinout, you need to hand wire it.
https://www.dfrobot.com/product-1766.html
* 8x 0603 0.1uF (0.1~1uF all fine) capacitors (C1 to C8), OPTIONAL but strongly recommended.
* 2x 0603 5.1kohm resistors (R1, R2) for the USB.
* 1x 0603 10ohm resistor, (1-20ohm all work fine) (R3).
* 1x 0603 10kohm resistor (R6).
* 1x 0603 20kohm resistor (R7).
* 8x Kailh Choc v1 or v2 switches (2 of them must be Choc v1). Choose linear ones, such as "Red Pro" or the latest Lofree branded Ghost.
<imgsrc="doc/choc_v1_red_pro.jpg"width="30%">
* 1x PN532 Module (the Red Square board version, cheap clones work too). It's optional, if you want a built-in card reader, then you need it.
* If you're using 8002A boards, leave R4, R5, R8, R9, C9 ~ 12, U3, U4 empty.
* Leave U2 empty, it only provides placebo effect for better ADC reference voltage.
* This is how it looks after soldering. Please note that the two circular daughter PCBs are fully wired, so you can test them before cutting them off.
<imgsrc="doc/pcb_solder_1.png"width="90%">
<imgsrc="doc/pcb_solder_2.png"width="90%">
* Becareful of 2 pin holes. It's a common oversight to either forget to solder them or to leave air bubbles during the process. To avoid this, solder slowly from one side of the hole, using minimal solder wire and a generous amount of flux.
<imgsrc="doc/usb_txrx_holes.png"width="40%">
### 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 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
* PTFE or UHMW Film Tape, >=10mm wide, >=0.3mm (0.5mm is best) thick, one-side adhesive.
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, don’t and never tighten them.
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.
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 covers fit into the windows on the support part.
14. Finally screw the lever handle into the lever shaft.
* 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)
* 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.
* To emulate IO4 TEST/SERVICE/COIN, you can put your hand at higher position over the right ToF sensor. When you see the WAD lights flashing, the AUX buttons become TEST and SERVICE, swing the lever for "INSERT COINS".
* AIME is on a secondary COM port. You can set mode or toggle virtual AIC function.
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.