Build A DIY Space Mouse For A More Efficient CAD Workflow

When you find yourself doing a lot of work in 3D modelling, you occasionally wish for something more capable than the humble two-dimensional mouse. A space mouse is a great tool in this regard, and [Salim Benbouziyane] was inspired to build his own.

[Salim] started his work with research, by watching a teardown of a Connexion Space Navigator 3D mouse. This informed him of the basic functionality and the workings inside. The commercial product appears to use an optical sensor setup, but [Salim] decided to go with a magnetic sensor setup instead due to the parts he had on hand. Namely, a 3-axis magnetometer which seemed perfect for the task.

The build uses a motion platform mounted on six springs which translates and rotates in three dimensions as required. The magnetometer is mounted on the platform above a stationary set of neodymium magnets. Thus, when the platform, and thus sensor, moves, the magnetometer’s output can be used to determine the motion of the platform and translate that into useful viewport commands for CAD software. A RP2040 is charged with reading the magnetometer and acting as a USB HID device. It’s all wrapped up in a neat 3D-printed housing.

For now, it’s a little simpler in its operation than a full 6 DOF Spacemouse, but it nonetheless has helped [Salim]’s workflow improve. A good peripheral like this can be a real boon on the desktop; we’ve seen a few DIY projects in this realm for just that reason. Video after the break.

[Thanks to CH for the tip!]

20 thoughts on “Build A DIY Space Mouse For A More Efficient CAD Workflow

      1. Seriously, well, thanks, you’ve just changed my life. If time is not free than I’m doomed!!

        How much time can I afford to sleep each day and what would be the hourly rate, is sleeping at night more costly than sleeping during the day, perhaps I should be sleeping in the weekends or perhaps not at all?
        But… what if I retire, am I still able to afford sleeping?
        And if I do retire, then what do you do with all that time if all I knew was working and never learned to enjoy myself by building things and figuring stuff out (that other people already figured out… like the concept of the wheel and such).

        Darn… I just realized that reading these comments and replying to them becomes a costly business too.

      2. Nom, time is actually free. Only things are: you got a limited amount of it when you were born, and time spent cannot be gotten back.

        But everyone got their certain amount, completely for free, when they were born,

    1. My spacemouse cost me 49 GBP in 2017. I bought another that cost 100 used because it had all the bells and whistles. When I read your post I thought “is he nuts?” and I checked the prices and currently the one I bought for 49 is going for 190. WTF

      1. Yep, crazy. If one cares to save a few bob and support a Nigerian geezer building and selling things on Tindie, the [Ahmsville Dial](https://www.tindie.com/products/ahmsvillelabs/ahmsville-dial-v2-absolute-variant/) is ~$60 cheaper depending on P+P. Plus it has some software-defineable buttons. I haven’t tried it, but it’s an interesting middle-ground and if I ever get time to learn FreeCAD I shall be buying myself one (and indeed, if one is willing to pick up a soldering iron and order some 3D printed parts from a print-farm, Ahmsville sell kits at lower prices).

        Either way, the more open-source things people are willing to put out there, the better!! <3 super read – thanks @LewinDay

  1. While you are fixated on a silly title you have complete missed how great it is that someone is sharing how we might approach making something like this and inspiring folks to get out and build!

    Get the stick out of your butt and be someone who encourages and empowers hackers rather than wasting your time on titles.

    1. If you want to build cool things, you better get used to using all the off the shelf parts you can. Engineering is not just applied science, it’s applied science plus business plus art.

      People who continually reinvent the wheel are not hackers.

      Like I said, if he knew how to do this when he started, it was a brain dead decision.

      Even now, with the project where he has it, he will continue to waste time ‘hacking’ on a homemade version for no benefit. He’d be better off just buying one and not having to write his own drivers and fight with CAD configs.

      1. I think the DIY project is not about saving money. Just because you have understood the basic principle of a space mouse does not mean that you can design and implement something like that yourself. And it’s far from being brainless. I tried the 3D connection myself. I really expected more from it. The big disadvantage is the proprietary driver that is required. There is only very limited usage options under Linux. A server is installed in the operating system that transfers the motion profiles to the 3D application. There’s nothing plug & play about it at all. Many applications cannot use the 3D Connection. With the project you would at least be able to design the software so that it behaves like a normal mouse from the driver’s perspective, but converts the complex movement profiles into various mouse commands. Then you would “only” need individual mouse settings and can use practically any 3D software with the DIY Space Mouse, as no special drivers are necessary. It will hardly be possible to simply program the 3D Connexion driver because the manufacturer has no interest in it. Without your own hardware there will be no own drivers.

  2. I applaud the effort and success in making it usable! Thanks for sharing.

    But the original space mouse is more capable as it gives variable speed in all directions at the same time. These is much more driver and integration magic going on.

    As a novice with a space mouse, you touch it, and boom the model is out of sight.
    With care, you start to manage to turn, zoom… sequentially as shown here.
    With enough training, it becomes intuitive to zip through a model. The colleagues still impress me – with a single push they adjust all dimensions at once and land right where they wanted to be. (obviously, I don’t)

    1. It’s just muscle memory and starting with low sensitivity. After a week or so you can fly round a whole model clicking anywhere and everywhere seamlessly, then you up the sensitivity a bit. But some folk never quite get on with it and prefer the RSI inducing clicks and scrolls.

    2. Agree, the control, HID input and how that is used to control software have made the 3dconnexion spacemouse pretty awesome. The hardware of this project came out pretty nice, the magnetic sensor doesn’t have quite as many dof, add a gyro/accel for tilt/rotate and he will be close to a spacemouse.
      From my experience, most 3d modeling software doesn’t acknowledge joystic HID inputs, the driver has to be designed to feed whatever modeling software. His use of attaching it to the shortcut keys may be cumbersome vs retail.

      Mechanically and cosmetic, this looks very good.. software can always be updated…

  3. It’s probably not more efficient then buying one, but that’s not the claim.

    The claim is that a space mouse makes 3D design more efficient, which is probably true.

  4. The build looks really nice. Looking at the code, this is 3dof. I don’t know how easy it is going to be to extend it to 6dof (I don’t want to watch the video).

  5. Used a few CAD systems over the years but only got a space mouse a few years ago when I converted from CATIA to NX. Never felt I needed one but for NX at least it feels like a must.
    Great build and yes it may be cheaper in time to buy one but if you’ve got the time and want to figure out something new then why not? I think if it’s your day job it’s easier to get the bosses credit card out.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.