Pocket 3D Mouse — 48 g CAD viewport controller for Fusion 360 (no driver needed)
We calculate the final price from your selected file. You review and accept it before payment.
Saved on this device.
48 g viewport controller for Fusion 360. No driver, ~$10 in parts. Free enclosure STLs; full DIY package $9.
- Rating
- 0 / 5
- Likes
- 4
- Downloads
- 9
- Makes
- 0
- Views
- 161
- Reviews
- 0
Updated at source:
Model information
- Source
- Printables
- Category
- Computers
- License
- Creative Commons — Attribution — Noncommercial — Share Alike
Read this first — what's free and what isn't
Free, on this page: the four enclosure STLs, the full parts list, the print notes, and the assembly notes. Everything you need to print and build the housing.
Paid ($9): the wiring diagram, the tuned Arduino firmware, the STEP files for editing, and the complete build manual in English and Japanese. Link at the bottom.
I'd rather say that up front than have you download this and feel misled.
What this is
A 48-gram viewport controller for CAD. Plug it into USB, and it is recognised as an ordinary mouse — no driver, no 3DConnexion software, nothing to install. Parts cost about $10.
I've used a SpaceMouse in Fusion 360 for ten years. When the cable finally frayed and I went to replace it, the one I wanted was ¥43,000 and weighed 450 g. Not something I'm putting in a bag for a train ride. So I built something I could actually carry.
Here it is in use:
How this differs from the 6-DoF DIY builds
There are excellent open-source 6-DoF SpaceMouse builds on here — SpaceRat, TeachingTech's remix, the whole Space Mushroom family. If you want full six-axis control at a desk, build one of those instead. They're free, they're well documented, and they're better at that job than this is.
This is a different tool:
6-DoF DIY builds | This | |
|---|---|---|
Axes | 6 | 2 (pan / orbit) |
Weight | heavy on purpose, so it doesn't slide | 48 g |
Size | ~100 mm across | fits in a pocket |
Driver | 3DConnexion software required | none — plug in and go |
Parts | 4 joysticks + more | 3 components, ~$10 |
Built for | a desk | a laptop bag |
One joystick, one button, no driver, no setup. Small on purpose.
Controls (Fusion 360)
Tilt the stick → pan
Hold the button underneath and tilt → orbit
The button sits on the underside of the case, just behind the stick. With your thumb on the joystick, your index finger reaches under naturally and squeezes it like a trigger — so no stray force ever reaches the stick.
I originally used the joystick's own push-switch for this. It wrecked my thumb within an hour: pressing and tilting with the same finger is genuinely tiring, and the downward force drags the view around while you're trying to hold still. The separate switch costs one extra component and is worth it.
Cursor movement is not included, deliberately. This is a left-hand device meant to sit next to your normal mouse, the same way a real SpaceMouse does.
Blender users: the two roles swap — tilt alone orbits, hold-and-tilt pans. That's because the middle mouse button means the opposite thing in each application. It is not a fault and it works fine as-is. To match Fusion 360, swap the modifier keys for view3d.rotate and view3d.move under Preferences → Keymap → 3D View.
Parts
Part | Notes |
|---|---|
Arduino Micro | Must be ATmega32U4 — a Micro or a Leonardo. Nano and UNO will not work; USB-HID support lives in the chip. Clones are fine. |
PS2-style 2-axis joystick (KY-023) | The common cheap module. Its push-switch is not used in this design. |
6×6 mm tactile switch × 1 | Wire two diagonal legs. Using two legs on the same side leaves it permanently "on" — this is the single most common build mistake. |
M2 self-tapping screws × 3 | Two for the switch base, one for the rear of the case. Machine screws work too if you own an M2 tap — same 1.6 mm hole. |
Micro USB cable | Must be data-capable. A charge-only cable will not enumerate as an HID device. |
Jumper wires | Male-male and male-female, 10–15 cm. |
All generic parts, available anywhere.
Printed parts (4)
lower, upper, button, switch_base.
Setting | Value |
|---|---|
Material | PLA |
Layer height | 0.16 mm or 0.2 mm |
Adaptive layers | Optional — see below |
Infill | 15 % |
Supports | Required |
On layer height: the case is mostly rounded surfaces, so this is a straight trade between finish and time. 0.16 mm (or adaptive layers) gives a visibly cleaner result on the radii. 0.2 mm is perfectly fine if you just want a working device. Nothing about the fit or function changes either way.
Before you assemble: ream the screw holes
This step is not optional.
The screw holes are modelled at 1.6 mm, but printed holes shrink — typically 1.4–1.5 mm — and often hold support residue or first-layer squish. Ream them back to 1.6 mm with a drill bit or a hand pin vise before assembly.
1.6 mm is both the standard tap-drill size for M2 and the correct pilot for a self-tapping screw, which is why one hole serves both. Keep a 1.7 mm bit as backup, but don't start at 1.7 — you'll lose thread engagement. PLA cracks if you overtighten, so stop the moment the screw seats.
Two design notes, in case you remix this
The front of the case is snap-fit, not screwed. The joystick PCB sits there, and adding a screw boss would have meant a wider shell. The grip mattered more than the screw.
The switch base is screwed, not clipped. Sandwiching it between the case halves wasn't possible with the PCB in the way, and the button gets pressed constantly — I wanted it positively fixed.
If you plan to open the case often, an M2 heat-set insert in the single rear hole makes a real difference. The two switch-base screws stay put once assembled.
One thing to know about power-up
The firmware takes the joystick's resting position as centre the moment USB power arrives. So plug it in sitting level, without touching the stick. If it's tilted at that instant, that position becomes "centre" and the view will drift afterwards.
Full package
Wiring diagram, tuned firmware (debounce and dead-zone already sorted), STEP files for editing, and the complete build manual — English and Japanese:
Gumroad (English, $9): https://blaugrana8.gumroad.com/l/arduino-3d-mouse-v1
BOOTH (Japanese, ¥1,500): https://cocreation-lab.booth.pm/items/7927473
To be clear about what that buys: $9 is the data and documentation. The electronics and the printing are on you, and those run about $10 more.
The full write-up of this build — including the mistakes — is here:
Hackaday.io: https://hackaday.io/project/206160/log/249764-episode-3-i-built-my-own-3d-mouse-for-about-10-and-my-ai-team-left-me-in-the-dust
License
CC-BY-NC-SA. Remix it, print it, share it — credit me, and don't sell it.
A note on the AI angle: I document this project as a build-in-public series with a team of AI agents, but the enclosure geometry here was modelled by hand in Fusion 360. The agents work on firmware, documentation, and the v2 design — not this shape.