ErgonoMouse - 6DOF Controller Knob & Joystick with Wheel, Buttons & Keys

6DOF Arduino Controller with multiple options for Base, Knob and Joystick, including Keys, Wheel and Buttons.
Your funds support the creator's further activity.
$12
80
4
2315
updated February 1, 2025

Description

ErgonoMouse is a do-it-yourself 6DOF Controller (6 Degrees Of Freedom) based on Arduino. Or commonly known as "space mouse".

It uses commonly available hardware (see “Required Hardware” 🡣) and it requires intermediate printing, electronics and software skills. A fun, DIY project that would make every maker's delight!

It comes in many flavors: ErgonoMouse offers multiple options with different features for the Base, Knob and Joystick, with all variants available for both Left and Right Hands.

 

---------------------------------------------------------------------

Note: 

You can test the free version of ErgonoMouse here. It includes the “Simple” variants for the Base, Knob and Joystick assemblies (see “Variants” 🡣).

With the paid version, you get all variants for all features and assemblies.

---------------------------------------------------------------------

New! 

You can now test your printer capabilities with my QuBenchy - 3D Printing Torture Test Cube:

---------------------------------------------------------------------

 

Function

So what does the "6DOF" mean? It means you can move a camera or object in 6 different ways: Rotation on X, Y, and Z axis, as well as Translation on X, Y, and Z axis. This makes the ErgonoMouse ideal for CAD and 3D Design tasks, or even videogames.

The controller uses analogue sensors (KY-023 Joysticks) to register your movements. The ErgonoMouse design also adds new features such as:

  1. A wheel to simulate one of the axis (i.e. Zoom, like a mouse wheel), 
  2. Two buttons on the Knob and Joystick that can limit the movements to only rotation or only translation. This provides a more precise control by preventing undesired movements on some axis from bleeding into the intended ones.
  3. 6 Keys on the Base for macros and shortcuts. 
  4. The two buttons on the Knob and Joystick can be used as 2 additional keys, instead of the Kill Button functionality.

My personal preference is Left Hand, 6 Keys Base, Full Joystick (with Wheel for zoom and 2 Kill Buttons).

The project is based on Arduino and is compatible with the 3DConnexion software (see “Software” 🡣).

 

Overview

This project was inspired by @TeachingTech and his SpaceMouse v2. I had been looking for space mouse DIYs and commercially available options for a while when I stumbled across his video, and I finally decided to get one myself. While recognizing and appreciating his work, I wanted a more sleek, refined design. 

“It will be just a few hours worth of CAD”, “I will save money”, “I'll be proud of designing my own”, I said to myself. Now I know that only one was true, and it wasn't the time or money.

Let's just say that it got out of hands:

 

 

 

So after 3 months, a few orders to Amazon, a bunch of new tools including a new TS101, a new A1 Mini for rapid prototyping, a fair share of hardware, 5Kg of PLA, 20 iterations from MK I to MK XX, and 1.159 saved versions later (I did count them), I present to you:  the ErgonoMouse MK XX!

 

 

As a side note, most of the time and iterations went into miniaturizing the design while keeping it user and assembly friendly with still commonly available hardware, and adding the new features, variants and layouts.

 

Variants

 

The ErgonoMouse offers multiple variants based on desired features and orientation for both right and left hands. The complete pack contains 73 3D parts (list of assembly options and parts needed per option included in the PDFs). With them, you can build the following variants:

  • Base Assembly:
    • 6 Keys Variant:
      • Left Hand, Single Print
      • Left Hand, 2-Part print for A1 Mini / Prusa MINI+
      • Right Hand, Single Print
      • Right Hand, 2-Part print for A1 Mini / Prusa MINI+
    • Simple Variant:
      • Symmetric, Single Print
      • Symmetric, 2-Part print for A1 Mini / Prusa MINI+.
         
  • Knob Assembly:
    • Full (Wheel + Buttons) Variant:
      • Left Hand
      • Right Hand
    • Wheel-only Variant:
      • Left Hand
      • Right Hand
    • Buttons-only Variant:
      • Symmetric
    • Simple
      • Symmetric
         
  • Joystick Assembly:
    • Full (Wheel + Buttons) Variant:
      • Left Hand
      • Right Hand
    • Wheel-only Variant:
      • Left Hand
      • Right Hand
    • Buttons-only Variant:
      • Left Hand
      • Right Hand
    • Simple
      • Symmetric
         
  • Key Caps:
    • Blank Variant
    • With Symbols (36 numbers, macros and symbols):
      • Monocolor, with symbols carved
      • Multicolor for AMS or equivalent systems
      • Multicolor for manual printing (any printer)

 

Required Hardware

 

The download includes 4 PDF assembly guides for the Base, Knob, Joystick, and Key Caps, including:

  • A list of 3D parts and amount needed per assembly and variant
  • A list of materials and amount needed per assembly and variant
  • Written indications for the assembly
  • Visual assembly guide

For reference, this is the hardware you'll need for the a Left Hand, 6-Keys, 2-Part Base + Full Joystick:

  •  Left Hand, 6-Keys, 2-Part Base:
    • 1x    Arduino Pro Micro (USB-C) ATmega32U4 5V 16MHz
    • 1x    USB-C Cable
    • 4x   KY-023 Joysticks (I'm using regular ones, but check out @Kempy tests and conclusions on Hall Effect Joysticks here)
    • 1x    LED Strip 5V (max. 8 mm width, 26 cm long)
    • 6x   Cherry MX Switch (or equivalent)
    • 8x   M8 x 30 mm Bolt
    • 4x   M8 x 20 mm Bolt
    • 44   M8 Nuts
    • 4x   M3 x 16 mm
    • 4x   M2 x 16 mm Self-Tapping Screw
    • 23x M2 x 8 mm Self-Tapping Screw
    • 13x  M2 x 6 mm Self-Tapping Screw
       
  •  Left Hand, Full Joystick:
    • 1x     KY-040 Encoder (no thread, 14mm hole distance)
    • 1x     Axial Bearing (8 x 22 x 7 mm)
    • 2x    Tactile Button Switch (6 x 6 x 4.3 mm)
    • 1x     PCB Breadboard (cut to size: 15 x 19.2 mm)
    • 2x    M3 x 16 mm
    • 4x    M3 x 6 mm
    • 9x    M2 x 8 mm Self-Tapping Screw
    • 1x     M2 x 6 mm Self-Tapping Screw

 

Required Tools

Well, this pretty much depends on personal preferences and skills. There's no better hammer than a wrench, right? However, you should consider getting some of these tools for the ErgonoMouse:

  • Screwdriver (depends on screw heads)
  • Allen keys (depends on screw heads)
  • Hobby knife / Cutter
  • Pliers
  • Tweezers
  • Cyanoacrylate glue
  • Sanding paper (depends on printer tolerances / post-processing)
  • Dupont crimping tool and bits
  • Cable, 22AWG
  • Soldering iron
     
  • Bonus track: any soldering iron will probably do the job. I decided to get the new TS101 and it works like a treat. Highly recommended.
  • Bonus track: we makers should embrace new technologies while still learning from our old fellow colleagues: the woodworkers. I recently got a hold on a 6mm and a 12mm chisel for cleaning supports and prints overall. It's been life-saving, and they're now part of go-to tools for 3D printing.
  • Bonus track: manual screwdrivers are just fine. But my HOTO 3.6V Electric Screwdriver has worked wonders after all the many iterations, assembling and disassembling parts.
  • Bonus track: well, by now you've probably realized that I miserably failed at keeping the design project within the original low-cost budget. I also got a Wera 7440 Torque Screwdriver to go the extra mile. It's been really helpful for not screwing the assemblies up (pun intended).

 

Printing

IMPORTANT:

This project has been developed on and tested on a Bambu Lab A1 Mini. This damn little printer works remarkably well. So much so that the ErgonoMouse needs very low tolerances:

  • Minimum: 0.1 mm
  • Recommended: 0.05 mm

I recommend running a tolerance test on your machine and try to compensate for that on your slicer settings. You can test your printer capabilities with my QuBenchy - 3D Printing Torture Test Cube. Ideally, the 0.1mm tolerance piston should move freely or after applying some force.

 

Resolution

It pretty much depends on what finishing you want. For me, I've found the 0.4 nozzle with 0.12mm layer height as a good compromise between printing time and quality. I haven't done any additional post-processing and the visual quality for those settings is more than enough.

 

Base:

Weight is not a problem for the Base assembly (quite the opposite). To ensure a good grip for the screws to bite on, and overall robustness, I recommend printing with 4 to 5 walls, 1.6 mm top / bottom thickness and 10% to 20% infill.
 

Knob and Joystick:

For the Knob and Joystick assemblies it's quite the opposite. Try to keep them light enough while maintaining certain strength. I'd go with 3 to 4 walls, 1.6 mm top / bottom thickness, and 5% to 10% infill. The parts are fairly small so the robustness will come from the shell.

 

Key Caps:

The recommended orientation is for the key caps to be facing down. One of the variants offers multicolor, manual printing. To do so:

  1. Place "MK XX Key Caps - Multicolor - No AMS 1.3mf" facing down, slice it and print it in color A. 
  2. Place "MK XX Key Caps - Multicolor - No AMS 2.3mf" facing down, perfectly aligned with the previous file. Slice it and print it in color B. 
  3. Optional: when printing the second file, pause the print after the symbols are completed (layer 3 for 0.2mm height) and change back to color A. 
  4. "MK XX Key Caps - Multicolor - No AMS 1.3mf" combines both files into one for easier alignment.

 

Assembly

The download includes 4 PDF assembly guides for the Base, Knob, Joystick, and Key Caps, including:

  • A list of 3D parts and amount needed per assembly and variant
  • A list of materials and amount needed per assembly and variant
  • Written indications for the assembly
  • Visual assembly guide
     

 

As for the electronics, this diagram shows all connections needed for all features. You can just ignore some of them if you opt for simpler variants.

 

 

Software and Configuration

The ErgonoMouse design is compatible with the original @TeachingTech firmware. Additionally, I added new features on the ErgonoMouse, i.e. Knob / Joystick Wheel to simulate one axis, and Kill Buttons to limit Rotation and Translation movements. @Andun_HH was very kind to add the new features to his amazing GitHub repo, where he's cleaning, refactoring and expanding on @TeachingTech version.

Please, follow the instructions on @Andun_HH GitHub repository to configure the controller.

Once the configuration is completed, using the ErgonoMouse is simple. When connected to the computer, the controller should be automatically detected by the 3Dconnexion software (Please note that this is NOT affiliated with 3Dconnexion).

It also detects the app that you are using (Bambu Studio / Fusion360 / Blender / etc.) and allows for a certain level of configuration. 

 

Updates & Changelog

  • 2024/08/18 - ErgonoMouse MK XX: Published.

 

Future Plans

This is my biggest design project to date, so future plans will likely depend on the reception of this model in the community. I would very much appreciate your feedback on the current design as well as potential improvements.

For now, ideas for future iterations include:

  • Adding threaded inserts to some of the screws (maybe the M3 screws, or replace them for M2 screws with threaded inserts).
  • Designing a new Base variant to accommodate 15 Keys by using a PCF8575 expansion module.
  • Adding additional software features such as dimming the LEDs after a period of inactivity.

 

---------------------------------------------------------------------

Credits

This project was inspired by @TeachingTech and his SpaceMouse v2. Big thanks to him and his work on technological and engineering divulgation!

And huge thanks to @Andun_HH, who took upon his shoulders the refactoring of the code and has done an amazing job with his GitHub repository!

---------------------------------------------------------------------

 

Rendered in Blender, using Blender Boom's Desk Scene and @Az3Dip's Ender 3.

Tags



Model origin

The author marked this model as their own original creation.

License