Skip to content

Latest commit

 

History

History
154 lines (134 loc) · 12 KB

README.md

File metadata and controls

154 lines (134 loc) · 12 KB

Groove Pico - Groove Coaster Style Mini Controller

点这里可以切换到中文版

Features:

  • It's small but closely replicates the feel of the arcade controller.
  • Works as a Nintendo Switch controller.
  • Stereo haptic feedback.
  • 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 developers that inspired me and helped me: CrazyRedMachine (https://github.com/CrazyRedMachine), asesidaa (https://github.com/asesidaa).

And also:

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

https://discord.gg/M8f2PPQFEA

HOW TO BUILD

PCB

3D Printing

  • Printing parameters

    • PLA, PETG, ABS are all OK.
    • Layer height: 0.2mm
    • Support: Yes, always.
  • Bottom Part: Production\3DPrint\groove_pico_bottom.stl, semi-transparent filament.

  • Top Part: Production\3DPrint\groove_pico_top.stl, semi-transparent filament.

  • Gimbal Stick: Production\3DPrint\groove_pico_stick.stl, semi-transparent filament. If you have Bambu AMS system, print the upper (above 22mm) layers with black filament.

  • Gimbal Bolt: Production\3DPrint\groove_pico_bolt.stl, white filament.

  • Gimbal Tightener: Production\3DPrint\groove_pico_tightener.stl, white filament.

  • Button cap: Production\3DPrint\groove_pico_button_cap.stl, white filament, print up-side down so you get nice button surface and stem. If you have Bambu AMS system, use their special support material for the interface layer.

Nano Gimbal Modification (Optional)

  • The BETAFPV Nano Gimbals are designed for RC transmitters, the original equipped springs are a little too light for Groove Pico. If you don't like the loose feel, you can change the springs by yourself.
  • I measured the original springs, they're 0.3*3*10mm (means 0.3mm steel wire diameter, 3mm outter diameter, 10mm free length, the first pair from the left). So if you want a heavier feel, you can use 0.35*3*10mm (the second pair from the left), 0.4*3*10mm (the third pair from the left), or even 0.3*3*8mm (the last pair) tension springs.
  • You need to unscrew all screws to replace both X and Y axis springs. The job looks difficult but after you do it once, you'll find it's not that hard.
  • You may feel the gimbal a little too bouncy, especially the X axis. You can apply some damping grease to the sliding surface to reduce the bounce (put more on X-axis sliding surface). I found Type-T03 is a good choice.

Assembly

  • Other components needed

  • Steps

    • Solder 4 thin silicone wires to gimbal PCBs and twist them together like a braid. It would be easier if you have different colors. My mapping is red to V, black to G, blue to LED and yellow to SW.
    • Install the main PCB onto the printed base, using M2 screws.
    • Attach 2 silicone wires for each motors to the main PCB, and twist them respectively.
    • Install the BETAFPV Nano Gimbals onto the printed base part using M2.5 screws. Connect the potentiometer connectors to the main PCB.
    • Install the printed bolt to the shaft for both gimbals. You need to turn the bolts until there's no screw thread and then push it to the bottom.
    • Install the printed stick onto the shaft for both gimbals. You need to use a little force to push it in.
    • Install the flat vibration motor and the gimbal PCB onto the stick and guide the wires through the hole. Finally, use the printed tightener and a hex nut to fix the stick.
    • Fix the gimbal PCB to the stick using M2 screws, paying special attention to the direction.
    • Solder the wires for the gimbal PCBs and motors to the corresponding pads on the main PCB. Please reserve some extra wire length for the gimbal movement. Some duct tape can be used to fix the wires on the main PCB.
    • Now attach the printed top part to the bottom part with M2.5 screws. And apply anti-slip pads on the bottom side.
    • If everything works fine, push the printed button caps onto the Choc switches and done!

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 Groove Pico, it is facing right to the BOOTSEL button.
  • If it's already running Groove Pico firmware, you can either use "update" in command line or hold down all 3 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 Groove Pico. (Note: "?" is for help)
    https://googlechromelabs.github.io/serial-terminal/
  • NOTE: You need to calibrate the gimbals by "gimbal calibrate" command after you flash the firmware.

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/97629d37ec7dd45f32c42fed/w/4cdf2d6010b5ce7b9283904a/e/c8e2720760e1863ce3a69460?renderMode=0&uiState=6693eade6539e17fa80ec4fb