• Models
  • Contests
  • Slicer
  • Login
  • Start Here
    thingiverse-iconprintables-iconcults3d-iconmakerworld-iconmyminifactory-icon

    3D GO

    3D ModelsContestsCollectionsSaved ModelsOn a mobile device?

3D GO

Privacy Policy
Simple CAD Joystick 3D Printer File Image 1
Simple CAD Joystick 3D Printer File Image 2
Simple CAD Joystick 3D Printer File Image 3
Simple CAD Joystick 3D Printer File Image 4
Simple CAD Joystick 3D Printer File Image 5
Simple CAD Joystick 3D Printer File Image 6
Simple CAD Joystick 3D Printer File Image 7
Simple CAD Joystick 3D Printer File Image 8
Simple CAD Joystick 3D Printer File Thumbnail 1
Simple CAD Joystick 3D Printer File Thumbnail 2
Simple CAD Joystick 3D Printer File Thumbnail 3
Simple CAD Joystick 3D Printer File Thumbnail 4
Simple CAD Joystick 3D Printer File Thumbnail 5
Simple CAD Joystick 3D Printer File Thumbnail 6
Simple CAD Joystick 3D Printer File Thumbnail 7
Simple CAD Joystick 3D Printer File Thumbnail 8

Simple CAD Joystick

HackMan3D avatarHackMan3D

March 3, 2026

makerworld-icon
DescriptionCommentsTags

Description

🎮 DIY CAD Navigation Joystick

Control Fusion 360 & SolidWorks like a SpaceMouse

Build your own compact controller to navigate 3D models smoothly using a joystick and an Arduino Pro Micro.

 

Video link :

 

Instagram

Youtube

🧰 Materials Required

  • ✅ Arduino Pro Micro (ATmega32U4)
  • ✅ Analog joystick module (KY-023 or similar)
  • ✅ Jumper wires or thin electrical wire
  • ✅ Soldering iron + solder
  • ✅ 8 × M2.5 screws (for enclosure)
  • ✅ USB cable (USB-C or Micro-USB depending on board)
  • ✅ 3D printed enclosure parts

💡 Why the Pro Micro?
➡️ It supports USB HID, allowing it to act as a mouse.

🖨️ 3D Printing

Suggested Parts

  • Bottom case
  • Top cover
  • Joystick mount
  • Ergonomic thumb cap

Recommended Settings

  • Layer height: 0.2 mm
  • Infill: 15–20%
  • Supports: Not required
  • Material: PLA or PETG

💡 PETG recommended for durability.

🔌 Wiring Diagram

The joystick module has 5 pins:

Joystick PinPro Micro
GNDGND
VCCVCC
VRxA0
VRyA1
SWD2

👉 The button (SW) can reset the view or trigger an action.

🔧 Assembly Steps

1️⃣ Solder the wires

  • Solder wires to joystick pins.
  • Ensure no short circuits.

2️⃣ Mount the joystick

  • Insert joystick into the printed mount.
  • Route wires through the cable channels.

3️⃣ Connect to Pro Micro

  • Wire according to the table above.
  • Secure the Pro Micro inside the enclosure.

4️⃣ Close the case

  • Assemble the enclosure.
  • Fasten using the 8 M2.5 screws.

💻 Arduino Code (Mouse HID)

Upload this sketch to your Pro Micro.

 

/*
  Hackman3D Joystick CAD Controller
  PAN / ORBIT toggle + axis invert
  makerworld.com / @Hackman3D
*/

#include <Mouse.h>
#include <Keyboard.h>

#define X A0
#define Y A1
#define SW 2

#define DEAD 25
#define SENS 100
#define TICK 10
#define LOCK 150

bool pan=0, moving=0;
int prev=HIGH;
unsigned long tToggle=0, tTick=0;

inline void apply(){
 if(!pan) Keyboard.press(KEY_LEFT_SHIFT);
 Mouse.press(MOUSE_MIDDLE);
}
inline void releaseAll(){
 Mouse.release(MOUSE_MIDDLE);
 Keyboard.release(KEY_LEFT_SHIFT);
}

void setup(){
 Keyboard.begin();
 Mouse.begin();
 pinMode(SW,INPUT_PULLUP);
}

void loop(){
 unsigned long now=millis();

 int b=digitalRead(SW);
 if(prev==HIGH && b==LOW && now-tToggle>LOCK){
   tToggle=now;
   pan=!pan;
   if(moving){ releaseAll(); apply(); }
 }
 prev=b;

 if(now-tTick<TICK) return;
 tTick=now;

 int dx=(analogRead(X)-512);
 int dy=-(analogRead(Y)-512);

 if(abs(dx)>DEAD || abs(dy)>DEAD){
   if(!moving){ moving=1; apply(); }
   Mouse.move(dx/SENS,-dy/SENS,0);
 } else if(moving){
   moving=0;
   releaseAll();
 }
}

 

⚙️ Setup in Fusion 360 & SolidWorks

Fusion 360

  • Hold middle mouse button to orbit.
  • The joystick emulates mouse movement for smooth navigation.

SolidWorks

  • Works directly with middle mouse orbit.
  • You can map additional shortcuts if desired.

💡 Tip: adjust sensitivity by changing the divisor in the code.

License:

Standard Digital File License

Related Models

#3DBenchy - The jolly 3D printing torture-test by CreativeTools.se preview image

#3DBenchy - The jolly 3D printing torture-test by CreativeTools.se

CreativeTools profile image

CreativeTools

90,900

Open source SpaceMouse - Space Mushroom remix preview image

Open source SpaceMouse - Space Mushroom remix

TeachingTech profile image

TeachingTech

4,781

Customizable name keychain, name tag preview image

Customizable name keychain, name tag

Enerr3D profile image

Enerr3D

1,824

V29 preview image

V29

jzisa profile image

jzisa

81,389

Cable Repair and Protect for iPhone and Samsung [lightning+usbc] preview image

Cable Repair and Protect for iPhone and Samsung [lightning+usbc]

jan profile image

jan

4,217

Parametric Price Tag Generator – Currency Barcode preview image

Parametric Price Tag Generator – Currency Barcode

ccrccrdk profile image

ccrccrdk

39

The $30 3D scanner V7 updates preview image

The $30 3D scanner V7 updates

daveyclk profile image

daveyclk

75,828

Prusa CORE One - Full CAD Assembly preview image

Prusa CORE One - Full CAD Assembly

Prusa Research profile image

Prusa Research

2,435