Resources
The project
I spend a lot of time in CAD designing and refining parts for 3D printing—so when I discovered the 3DConnexion SpaceMouse, I was instantly hooked on the idea. But instead of buying one, I decided to make my own.
Design Goals
- Intuitive & easy to use → control the model as if you’re holding it in your hand.
- Accessible components → buildable with parts anyone can source.
- Clean design → should look good on the desk as well as perform well.
Hardware
- Adafruit BNO055 IMU sensor → detects rotation & orientation.
- Arduino Pro Micro → acts as a USB HID device so the PC recognizes it as an input controller.
- Compression & extension spring mount → 3D printed, gives the sensor “float” for accurate readings.
- Push button → toggles between rotation mode and pan/zoom mode.
Prototyping
- Breadboard test with the BNO055 gave immediate success → moving the sensor rotated models in Fusion 360.
- Button integration allowed for panning/zooming functions via custom Arduino code (thanks to ChatGPT-assisted scripting).
CAD & 3D Printing
- Enclosure and knob modeled in Fusion 360, STL files available on Printables.
- Added slicer pause points:
- Inserted square nuts into the knob.
- Dropped ball bearings into the base for extra weight & stability.
- Post-processing: extensive sanding, primer coats, and spray painting for a polished finish.
Assembly
- BNO055 mounted onto spring-loaded platform.
- Arduino Pro Micro soldered & fixed with hot glue.
- Push button painted to match overall aesthetic.
- Final assembly completed with 3D printed parts, nuts/bolts, and a bit of hot glue for security.
Results
The DIY Space Mouse works as intended—smooth model rotation, intuitive control, and toggled pan/zoom. It looks professional on the desk and ticks off all design goals. Future improvements: refining spray painting techniques for an even smoother finish.
