A Simple 6DOF Hall Effect ‘Space’ Mouse

The 3DConnexion Space mouse is an interesting device but heavily patent-protected, of course. This seems to just egg people on to reproduce it using other technologies than the optical pickup system the original device uses. [John Crombie] had a crack at building one using linear Hall effect sensors and magnets as the detection mechanism to good — well — effect.

Using the SS49E linear Hall effect sensor in pairs on four sides of a square, the setup proves quite straightforward. Above the fixed sensor plate is a moveable magnet plate centred by a set of springs.  The magnets are aligned equidistant between each sensor pair such that each sensor will report an equal mid-range signal with zero mechanical displacement. With some simple maths, inputs due to displacements in-plane (i.e., left-right or up-down) can be resolved by looking at how pairs compare to each other. Rotations around the vertical axis are also determined in this manner.

Tilting inputs or vertical movements are resolved by looking at the absolute values of groups or all sensors. You can read more about this by looking at the project’s GitHub page, which also shows how the to assemble the device, with all the CAD sources for those who want to modify it. There’s also a detour to using 3D-printed flexures instead of springs, although that has yet to prove functional.

On the electronics and interfacing side of things, [John] utilises the Arduino pro micro for its copious analog inputs and USB functionality. A nice feature of this board is that it’s based on the ATMega32U4, which can quickly implement USB client devices, such as game controllers, keyboards, and mice. The USB controller has been tweaked by adjusting the USB PID and VID values to identify it as a SpaceMouse Pro Wireless operating in cabled mode. This tricks the 3DConnexion drivers, allowing all the integrations into CAD tools to work out of the box.

We do like Space Mouse projects. Here’s a fun one from last year, an interesting one using PCB coils and flexures, and a simple hack to interface an old serial-connected unit.

 

Old 3D CAD Mouse Gets New Lease Of Life

[Jacek Fedorynski] had an old Magellan/SpaceMouse 3D mouse with a serial interface which made it impossible for him to use with modern hardware and software. The problem he faced was two pronged – the absence of serial interfaces in the hardware and the lack of appropriate drivers for the operating system. So he built a low cost, simple adapter to use his RS-232 Magellan/SpaceMouse with modern software.

The hardware required to build the adapter was minimal. A Raspberry Pi Pico, a MAX3238 based RS-232 adapter, a null modem adapter and a DB9 gender changer. Of course, a combination null modem – gender changer would have made things even simpler. Four of the GPIO pins from the Pico are mapped to the serial RX, TX, RTS and CTS pins.

On the software side, the code emulates a 3DConnexion SpaceMouse Compact, so it can be used with software like Fusion 360, 3ds Max, SolidWorks, Inventor, Maya and many others. On the host computer, only the standard 3DxWare driver package is needed. On the host computer, the old Magellan/SpaceMouse 3D will appear like a modern SpaceMouse Compact connected over USB. The only downside to this is that the SpaceMouse Compact has just two programmable buttons, so only two of the many buttons on the old Magellan mouse can be mapped.

Flashing the code to the Pico is also straightforward using the BOOTSEL mode. Hold down the BOOTSEL button when plugging in the Pico and it appears as a drive onto which you can drag a new UF2 file. Just drag-n-drop [Jacek]’s magellan.uf2 firmware and you’re done.

If you’d rather build your own, modern 3D mouse, check out the DIY Cad Mouse You Can Actually Build.

Alternative 3D Controllers


There are several very nice 3D mice out there for navigating services like Google Earth or Second Life. 3Dconnexion for example makes a whole line of devices for 3D navigation. Their compact units offer 6-8 degrees of freedom with several customizable options. The company has an SDK available and many of their devices are natively compatible with Linux (or available for access through an XInput driver). So while that is all well and great, lets look at some alternative ways people are navigating 3D spaces.

Continue reading “Alternative 3D Controllers”