"Space Mushroom" : Full 6 DOFs Controller for CAD Applications

by shiura in Circuits > Computers

29638 Views, 375 Favorites, 0 Comments

"Space Mushroom" : Full 6 DOFs Controller for CAD Applications

3D Space Mouse "Space Mushroom" with Palm Rest
3D Printed Full 6 DOFs Space Mouse - "Space Mushroom"
tilted1.jpg
tilted3.jpg
horizontal1.jpg

Very simple and easy to assemble 3D mouse for CAD softwares. It can input full 6 degrees of freedom (rigid motion) simultaneously.

  • Very easy to assemble.
  • Tripod mount (thread hole) is on the bottom side of the triangle shaft.
  • Two types of base (tilted and horizontal types) are provided (personally I prefer tilted type.)

Note : My code (mouse.ino) is tuned for Blender on ARM based Mac. It handles very frequent change of keyboard / mouse button operation correctly. Some modifications or tunings (ex. insert weight function `delay()` or limit motion) might be necessary for the other environment.


Note (Jan. 1, 2023) : Code with conservative mouse operation (no frequent button press / release) is added. Please try "mouse-conservative.ino". You can configure this code for your app by modifying not "the code" but "table". Currently it has no function to switch between multiple apps, but it can be easily modified.


Note (Feb. 14, 2023) : Some people succeeded to port the code which makes the hardware compatible to SpaceMouse. Please take a look at the comments. Since my design and software are just at the level of prototype to present my ideas, the contributions to improve it from the both aspect of hardware and software are of course VERY VERY welcome.

Supplies

screw.jpeg
61YaBA6tkYL._AC_SX679_.jpg
  • Three analog joystick sensors with board. I used https://www.amazon.co.jp/dp/B082M4V5S9
  • "pro micro" (ATmega 32U4 based micro controller, Arduino Leonardo compatible)
  • 2mm tapping screws with various lengths

Print Essential Parts

スクリーンショット 2022-12-22 18.21.50.jpg
  • Print three copies of "ball-joint.stl".
  • Support structure is necessary to print "knob.stl". If you set it upside down on the build plate, support structure might be not necessary.

Assemble and Test

3dmouse.jpg
スライド1.jpeg
スクリーンショット 2022-12-28 2.03.24.jpg
thumb.jpg
  • Select adequate length of screws. For "ball-joint.stl", shortest screws (M2 x 4mm) are recommended.
  • Flash the program "mouse.ino" to "pro micro" microcontroller using Arduino IDE.
  • Connect analog joystick sensors and pro micro.
  • Modify the code to work with your CAD software. The current software is for Blender.
  • Mount the controller to your tripod and test it.

Note (Jan 1, 2023) : Code with conservative mouse operation (no frequent button press / release) is added. Please try "mouse-conservative.ino". You can configure this code for your app by modifying not "the code" but "table". Currently it has no function to switch between multiple apps, but it can be easily modified.

Mount to the Base / Palm Rest

horizontal-circult.jpg
tilted-circult.jpg
tilted4.jpg
horizontal2.jpg
tilted2.jpg
  • Two types of base (tilted and horizontal types) are provided (personally I prefer tilted type.)
  • Attach the knob to the base using 2mm tapping screws.
  • The model is 120 degrees rotation symmetric. My code assumes [sensor 1 = at 2 o'clock], [sensor 2 = at 10 o'clock] and [sensor 3 = at 6 o'clock]. You can change the angle of the knob every 30 degrees.
  • For tilted version, pro micro board is fixed by the inner structure and the hole of the cover.
  • For horizontal version, pro micro board is stored with the connector of microUSB in the housing space.
  • Stick rubber pieces to increase the friction.