The MagMouse is a DIY SpaceMouse that's 100% hand solderable, costs less than $20, and has as many features as I could stuff into it. It uses 3D Hall sensors and a diametric magnet instead of joysticks (which other DIY SpaceMice use) to make it small enough to comfortably use, and fit all the electronics on a single PCB.

Features:

  • Full 6DOF tracking (translation + rotation)
  • Compact
  • Bluetooth
  • Power efficient (hopefully)
  • 10 NeoPixels
  • 5 buttons
  • Total cost <$20
  • No wiring
  • Hand-solderable
  • You only need the board, a 3D printer, and some screws
  • Open source

BOM:

  • TBD
  • Various 0805 resistors & caps
  • 3 TLV493D sensors
  • 10 2020-sized WS2812Bs
  • NRF52840 "Pro Micro/Super Mini"
  • 5 buttons
  • Diametric magnets
  • Some M2.5 screws

Motivation:

It all started when I saw this DIY SpaceMouse.

I then started making one before realizing how gigantic it was. There was a whole bunch of wiring, tons of empty space, and it wasn't nearly compact enough to be actually used comfortably. I began writing code for a 3-joystick version to hopefully make it smaller and while it did succeed in that, it still wasn't small enough to be comfortable. I was learning PCB design at the time and decided that would be the best approach for any future version I do end up making.

Fast forward a few years and I have quite a bit of PCB design experience. It started with a simple 555 timer attached to a ball tilt switch to detect when a Formlabs Wash Station is done (for my university's makerspace). I then designed the world's smallest adjustable/high-power/switching-mode/power-path USB-C LiPo charger module (I call this the NanoLiPo, I will make a post about it soon). I designed a battery-powered nametag with RGB LEDs using it. I designed a level shifter PCB for talking to NeoPixels with 3.3V. I made a M18 battery debug board (software WIP). I then revisited the wash sensor idea with a time-of-flight sensor and some NeoPixels. Point is, I'm no electrical engineer, but at least I can pretend to be one.

Recently I saw this new SpaceMouse design. It looked great, had some nice features, and was mostly 3D printed. I especially liked the 3D printed springs; no rubber bands, no joysticks, just a few grams of printable plastic. I wanted to make it, but I quickly realized it wasn't full 6DOF, and it could have been made cheaper and better with a PCB and "raw" components, instead of some relatively expensive modules.

I have decided to take matters into my own hands and make the DIY SpaceMouse of my dreams. I will be modifying the 3D model to fit this PCB and making it more snap-fit (less screws). Hopefully someone else will modify this to make it even better in the future. I already have some ideas...

I want one!

I will be selling pre-soldered kits because 1. it's cheaper for you to buy one that way (vs buying small amounts from DigiKey, AliExpress, and your PCB house of choice plus shipping for all) 2. it allows me to recuperate at least a little bit of cost from designing & prototyping, although my main goal is just to learn and have a cheap SpaceMouse, and 3. I don't want to have to deal with labeling components in an unsoldered DIY kit. Shipped via USPS, about $5 in US, $11 global.

Current Status:

12/8/25

Waiting on first prototype PCBs to arrive. I am not an electrical engineer so I'm going to have to make at least a few revisions. While writing this I can see that I forgot to power the NeoPixels, FML. Will be busy with finals for the next 2 weeks, then on vacation for a month. Probably finished in 3 months.