Robot Arm
Robot Arm
Supplies
4 pack of MG996R
5 pack of SG90
1 Nema 17
ELEGOO UNO R3 Board
2 pack PCA9685 servo driver
5V 4A Power Adapter
Servo Extension Cable pack
800pcs Screws M1/M1.2/M1.4/M1.6/M1.7
750PCS M3 Screws Assortment Kit
Planning
Rough arm dimensions
Suggested starting sizes:
- Base height: 40–60 mm
- Upper arm: 100–130 mm
- Forearm: 100–120 mm
- Wrist stack: 40–60 mm total
Sketch this on paper first.
Modeling
- Create a new Component for each joint
- Base
- Shoulder bracket
- Upper arm
- Elbow bracket
- Forearm
- Wrist housing(s)
Do not model everything as one body.
Import Servo Dimensions
Find datasheets for:
- MG996R
- SG90
Model accurate servo bodies, including:
- Mounting ears
- Shaft position
- Screw holes
Model the Base (MG996R)
- Cylindrical or hex base
- Servo mounted vertically
- Output shaft pointing up
- Add:
- Bearing or bushing pocket (optional but nice)
- Cable exit slot
- M3 mounting holes
Constraint idea:
- Servo = grounded component
- Base plate rotates around servo axis
Shoulder
Shoulder joint (MG996R)
- Servo mounted sideways
- Arm bracket attaches to horn
- Use double-side support (servo horn sandwiched between plates)
IMPORTANT:
- Avoid single-sided cantilever mounts
- Add fillets (3–6 mm) to reduce stress
Upper Arm Link
Upper arm link
- Hollow box or I-beam shape
- Internal cable channel
- M3 screw holes at both ends
Elbow Joint
Elbow joint (MG996R)
- Same sandwich concept as shoulder
- Servo body fixed to upper arm
- Forearm rotates on horn
Check:
- Full ±90° clearance
- No self-collisions
Wrist Joints
Wrist joints (SG90)
Keep these compact
Stack pitch + roll using two SG90s
Make wrist modules replaceable
Torque is low keep lengths short!
Joints
Assembly and joints in Fusion
Use:
- Revolute joints
- Correct rotation limits (usually ±90°)
Then:
- Animate the arm
- Look for collisions
- Check reach envelope
Screws
Screws & hardware strategy
Use:
- M3 for all structural joints
- M1.6–M2 only for servo mounting if needed
Add:
- Heat-set insert pockets (HIGHLY recommended)
- Or nyloc nut traps
Print orientation
- Arms: print flat, layers along length
- Servo mounts: print so layers resist torque
- Material:
- PLA+ (ok)
- PETG (better)
Power
Power (VERY IMPORTANT)
DO NOT power servos from Arduino.
Correct setup:
5V 4A → PCA9685 V+
Common ground:
Power supply GND
PCA9685 GND
Arduino GND
You have two PCA9685s → plenty of channels.
15. Wiring
For each servo:
Brown/Black → GND
Red → 5V (from PCA board)
Yellow/Orange → Signal
Arduino → PCA9685:
SDA → A4
SCL → A5
VCC → Arduino 5V
GND → GND
MOVEMENT
FIRST MOVEMENT TEST
Bench test servos first
Before installing:
- Connect ONE servo
- Sweep slowly
- Confirm:
- Direction
- Range
- No jitter
Mount in neutral position
- Set all servos to 90°
- Attach arms straight
- This saves your sanity later
Incremental assembly test
After each joint:
- Mount
- Test motion
- Check for binding
- Only then continue
Future
CONTROL LOGIC (starter level)
Simple control approach
Start with:
- Manual angle control
- One joint at a time
Then upgrade to:
- Coordinated movement
- Inverse kinematics
Future upgrades
Once it works:
- Add end effector
- Add encoders
- Add ROS
- Add vision
- Lose weekends forever