Shamrock Sixnav: Low-cost Compatible 6dof Space Mouse

About the project

Sixnav is a low-cost alternative to 3Dconnexion's line of "Spacemouse" products users of CAD are familiar with. It keeps track of movement in 6 degrees of freedom (6DOF) It enables you to manipulate objects as if you were holding them in your hand. Sixnav is based on expired patents and aims to be driver-compatible.

Project info

Difficulty: Moderate

Platforms: Raspberry Pi

Estimated time: 4 hours

License: CERN Open Hardware Licence version 1.2 or later (CERN-OHL1.2+)

Items used in this project

Hardware components

CD4051B (DIP package) CD4051B (DIP package) An analog multiplexer. This is used because the Pico's ADC does not have enough pins available for all sensing unit channels. x 1
FWBZ-ZU-0.5x10x12.5 PCB Spring FWBZ-ZU-0.5x10x12.5 PCB Spring Holds the light blocker and knob assembly above the sensing units x 3
3.6mm Length 2.2 Kiloohm Resistor 3.6mm Length 2.2 Kiloohm Resistor Creates a voltage drop from the current generated by phototransistors x 6
3.6mm Length 100 Ohm Resistor 3.6mm Length 100 Ohm Resistor Current-limiting resistor for LED x 6
Everlight PT908-7C-F Phototransistor Everlight PT908-7C-F Phototransistor This phototransistor is matched in wavelength with the IR908-7C-F. Together they form a sensing unit. x 6
Everlight IR908-7C-F LED Everlight IR908-7C-F LED This LED is matched in wavelength with the PT908-7C-F. Together they form a sensing unit. x 6
Raspberry Pi Pico Raspberry Pi Pico The board features both pads for castellations and through holes, so you can use other variants. x 1

Hand tools and fabrication machines

3D Printer 3D Printer x 1
Soldering Iron Soldering Iron x 1

Story

A Spacemouse Compact

After moving away from my makerspace, I was left with the realization that I no longer had access to my makerspace, which provided computers with 3Dconnexion's Spacemouse  Compacts to make working with 3D models easier. Yet, I also couldn't justify the purchase of one, as a single mouse generally costs around 150 US Dollars

A figure in the patent describing the sensing modules

Looking into why there were no viable alternatives for the devices, I found that the sensor units in the mice were based on many patents, but I found an older design that seemed to have been in use in some older revisions of the mouse. This patent, interestingly according to Google Patents, had just recently expired in all regions.

The Sixnav implementation of such sensing modules

Shamrock Sixnav is an implementation of such a sensing module, able to detect motion in 6 degrees of freedom (3 translation, 3 rotation), by filtering and translating the 6 sensing units. The values in each sensing unit change as the knob assembly, with all of its light-blockers move.

A single light-blocker part, containing blockers biased for horizontal and vertical motion. There are 3 of these in the Sixnav.

Each light-blocker allows a variable amount of light through as it moves, and there are blockers that are more sensitive to vertical and horizontal motion. By combining the measurements of all sensing modules, we can infer the displacement and orientation of the knob assembly relative to the PCB.

The complete assembly of the CAD model

The Sixnav, Put Together


Schematics, diagrams and documents

Schematic

Uses KiCad 6.0. For most up-to-date files, please check the Github repository.

PCB

Uses KiCad 6.0. For most up-to-date files, please check the Github repository.

CAD, enclosures and custom parts

MCAD directory in main repository

Go to download

Code

Complete Shamrock Sixnav Prototype Hardware Repository

Credits

Leave your feedback...