Smaller SpaceMouse with Hall Effect Joysticks - Heat Inserts (no visible Screw Heads) (with FreeCAD source)
by StefanN · via Printables
| Format | STL |
| Category | Mechanical |
| License | CC BY-NC-SA |
| Triangles | 45.2k |
| Uploaded | Jan 10, 2026 |
⬇ 36 downloads
❤ 12 likes
👁 394 views
Description
At 2024 @TeachingTech invented a SpaceMouse buildable for $20 and evolved it to a much smaller version V2. His descriptions are valid for all joystick-driven designs and is a good starting-point to learn about building a SpaceMouse. While searching for a design that looks best for me I found the SpaceMouse Mini slim from @Doug Joseph that has a holder for the Arduino that presents the USB-port to directly connect the cable. Also the integrated fasteners for cable ties were an interesting detail for me. I built that SpaceMouse with resistive joysticks. It is ok, but has two drawbacks: 1. there are huge deadbands, so no reaction on small movements; 2. the pure kinematics-math produces some “ghost-movements”. The next evolution step is the Smaller SpaceMouse with Halleffect-Joysticks and metal-balls and metal-guides invented by @Kempy. I thought about building it, but I disliked the visible screw heads and I didn‘t want to use a base-PCB to build it. So I took the files from @Kempy, remixed them and used some ideas of @Dough Joseph. What I modified replaced all self-tapping screws by metric M3 screws and heat inserts M3s from Ruthex - only to fasten the balls onto the joysticks you have to use self-tapping screws… added ducts in the frame to hold cable ties to fasten the wiring added a plate to hold the Arduino with USB-C port which is accessible from the back to connect the SpaceMouse added a hole and console for a reset-button that is reachable from the backside (proved to be neither necessary for development nor usage of the SpaceMouse) designed a new knob in two variants Bill of Material To build this model you have to get 4 Hall-Joysticks for PS5 4 PCBs for the Hall-Joysticks 4 metal balls 8mm diameter with a 2mm hole 4 ball bearings type 608 (used for roller-skaters) 4 M2x14 self-tapping, countersunk screws for the balls 4 washers 2mm, I didn'use them 4 M3x10 countersunk screws for the bottom 4 M3x6 hexagon socket head cap screws for the lid 5 M3x8 hexagon socket head cap screws for the dome (4) and the knob (1) 16 M3x5 nylon head cap screws for the PCBs 1 M3x10 hexagon socket head cap screw for the knob 29 M3s heat inserts (Ruthex) 6(or more) cable ties 2,5x100mm for the wires (4) and the Arduino (2) 1 Arduino Pro Micro ATmega32U4 5V 16MHz with USB-C connector 1 USB-C cable to connect the SpaceMouse to the PC 1 print touch switch 6x6x8mm, I installed one but didn't need it Additional tools a drilling machine with a 1,5mm drill for the joysticks (see @Kempy) calipers to adjust the PCBs (not mandatory but more acurate) a piece of sturdy wire (e.g. a bent paper clip) or a needle to adjust the Joysticks How to build this SpaceMouse Important: First read the descriptions of the three linked models (see above) - there you find necessary and valuable informations for building SpaceMice as this one - I will only describe differences to the others here and some useful tips I didn‘t find anywhere. I had printed the parts of my SpaceMouse from Eryone PLA black using 0,2mm LH and 0,4mm LW on my Anycubic SonicVyper. All parts that hold heat inserts should be printed with a wall thickness of 2mm. After printing the parts, melt in all Ruthex M3s heat inserts. For the Halleffect-Joysticks buy the PS5-version with two orange hall-sensors. The black/orange ones won't work on the Joystick-PCBs! Get four Joystick-PCBs as @Kempy describes. Buy some 608 ball-bearings and 8mm metal-balls with 2mm hole. After delivery check that the balls fit into the middle-holes of the ball-bearings and can be moved and rotated freely. If they don‘t fit, you have to buy balls from another seller… On the Joysticks drill the top-holes of the sticks to 1,5mm as @Kempy describes and fasten the balls with the M2x14mm self-tapping screws. Be sure to have the screws in line to the sticks and the balls centered for best results! After soldering the joysticks to the PCBs you should solder the four wires to each PCB (SW isn't used). The PCBs should be fastened with M3x5 NYLON-screws because the upper and lower face of the PCBs transport +5V and 0V of the USB-supply and are not spared out at the screw-holes (a small design-flaw at the PCBs), so a metal-screw might short-circuit the USB power-supply! Use your calipers to adjust all PCBs by measuring from the top surface of the frame to the upper right and upper left corner of the PCBs. Adjust all 8 corners of the 4 PCBs to the same height. At the same time try to align the sticks/balls symmetricaly. By aligning the (corners of the) PCBs you get all up/down-axis at the same heighht-level and all right/left-axis parallel to the top-surface and therefore parallel to each other. Route the wires from the Joystick-PCBs to the Arduino using the lower space at inner surface of the frame (below the joysticks). Solder all +5V wires to one and also all 0V wires to one, isolate the solderjoints with heat-shrinking tube. The one +5V-wire and one 0V-wire are also soldered to the Arduino. Fasten the routed wires with cable ties in the frame using the built-in cable-tie-ducts and fasten the Arduino ontop of the plate of the frame, the USB-C-port pointing out of the hole. DO NOT assemble anything else now! Connect the Arduino-Joystick-assembly to your computer, get the firmware from @AndunHH on github. As an alternative you can use my enhanced firmware-version (@StefanNouza) with better support of the halleffect-joysticks and less necessity to compile and reupload. My version might be merged into AndunHH's version in the middle of 2025, a pull request is pending. Compile and install and the firmware using the Arduino- or PlatformIO-IDE and start a terminal-software to reach the serial debug menu of the SpaceMouse. Use debug menu function “1” to check all Joysticks in all directions. When all joysticks are working, open a beer/wine/champagne and congratulate yourself - you have mastered the hardest parts to build your SpaceMouse! (really!!) After this little celebration you should start the same debug function “1” and observe all signals of the untouched joysticks. They should read 512 - if a signal is significant higher/lower (e.g. more than +/-30), you should adjust the joystick itself using a needle or wire. You can find videos explaining this procedure on YouTube - watch some. Now you have done all adjustments in hardware and can put the whole SpaceMouse together and adjust it in software as described by Kempy, TeachingTech and in the firmware (AndunHH, StefanNouza) itself. I put my FreeCAD-file into this model - feel free to modify it further, but don't complain because it's a mess… I should have redrawn some parts instead of modifying the existing ones.
Originally published on Printables