This is a functional two-button USB trackball.
It was made using:
- a 57.2mm billiard ball
- PMW3360 optical sensor
- the PCB from here: https://github.com/jfedor2/rp2040-pmw3360
- Kailh GM mouse button switches (or any other switch with the same footprint)
- this PCB for mounting the switches: https://github.com/jfedor2/mouse-switch-mount-pcb
- KU-B8-OFK (R053010810) ball transfer units ("d" version)
- 2.5mm zirconium oxide (or silicon nitride) bearing balls ("e" version)
- M2x4, M3x4 screws for mounting the PCBs
- M3x12 flat head screws for assembling the case
- a USB cable
I printed the parts at 0.20mm layer height, they don't need supports.