Skip to content

3. Hardware design

1. Conceptual design

On May...

The calculations were revised after a shift in requirements; I transitioned from designing for a 3D printer to a pen plotter, which allowed for a lighter and simpler design using a short arm driven directly by a servo motor.

A. Required precision

The formulas on this page are partially assisted by ChatGPT.  

Prompt: Calculate the motion accuracy of a robot using a stepper motor nema 17. It works with wheels and an arm, and the calculation is based on a wheel diameter of 50mm and an arm length of 170mm.

I calculated the XY-axis wheel and Z-axis arm accuracy based on rough dimensions, a 1.8° stepper motor, 170mm arm length, and 50mm wheel diameter. Accuracy can be improved later by adjusting the gear ratio or using "microstepping".

a. Wheel Precision

Item Value Formula
Wheel Diameter (D) 50 mm Input parameter
Step Angle (θ) 1.8°
Wheel Circumference (C) 157.08 mm C = π * D
Wheel Movement (d_w) 0.785 mm/step d_w = (θ / 360) * C

b. Arm Precision and Gear Ratio

Item Value Formula
Arm Length (L) 170 mm Input parameter
Step Angle (θ) 1.8°
Arm Tip Movement (d) 5.34 mm/step d = L * sin θ
Required Precision (P) 0.5 mm/step Input parameter
Required Gear Ratio (R) Approx. 10.7:1 R = d / P = 5.34 / 0.5

C. Estimated weight

I made a very rough weight estimate and it ended up being about the same weight as small 3D printers (such as Kingroon KP3S or BumbLab A1 Mini).  

Name Weight (kg) Quantity Total Weight (kg)
Stepper Motor 0.3 6 1.8
Filament Spool 1 1 1
Extruder 0.25 1 0.25
Battery / power supply 0.5 1 0.5
Frame 0.5 1 0.5
Others 0.25 1 0.25
Total 4.8 kg

C. Required torque

Arm Torque Calculation

Item Value Formula
Arm Weight (m) 0.6 kg Input parameter
Arm Length (L) 0.17 m Input parameter
Gravity (g) 9.81 m/s²
Center of Mass 0.17 m Input parameter
Load Torque (T_load) 1.001 N·m T_load = m × g × L
Gear Ratio 30:1
Motor Torque (T_motor) 3.335 N·cm T_motor = T_load / Gear Ratio × 100

2. Motor selection

I started by looking at the motors commonly used in 3D printers, and the Kingroon KP3S I disassembled also used two types of Nema17 stepper motors for the XYZ axes and the extruder.

I tried using the stepper motor on week 04, week10 and week14.

17HS4401 Stepper Motor (Nema 17)

Specification Value
Step Angle 1.8° (200 steps/rev)
Rated Current 1.5–1.7 A/phase
Rated Voltage 3.6 V DC
Holding Torque 40–45 N·cm
Phase Resistance 1.5–2.4 Ω
Phase Inductance 2.8–3.7 mH
Shaft Diameter 5 mm
Frame Size 42 × 42 mm
Body Length 40 mm
Weight ~280 g

A4988 Motor Driver

Specification Value
Operating Voltage 8–35 V
Logic Voltage 3–5.5 V
Continuous Current 1 A/phase (no heatsink)
Max Current 2 A/phase (with sufficient cooling)
Microstepping Modes Full, ½, ¼, ⅛, 1⁄16
Protection Features Over-temp, over-current, short-to-ground, UVLO
Dimensions 15.5 × 20.5 mm (0.6″ × 0.8″)
Weight 1.3 g

The stepper motor's rated current is critical and must be matched via the A4988's current limit, while the rated voltage is less important since the driver uses higher supply voltages with current control to ensure safe operation. Higher supply voltages is beneficial for improving speed and responsiveness due to faster current rise times.


3. Mecanum wheel

a. How omni-wheel works

Wikipedia: A Mecanum wheel is an omnidirectional wheel design that enables a vehicle to move in any direction by using rollers mounted at a 45° angle around its circumference.

Omni wheel vs. Mecanum wheel

  • Omni wheel:
    An omni wheel has rollers mounted around its circumference, typically at 90°, allowing it to move forward/backward and slide sideways with minimal friction.
  • Mecanum wheel:
    A mecanum wheel has angled rollers (usually 45°) mounted around its perimeter, enabling movement in any direction (omnidirectional) through coordinated wheel rotation.
Feature Omni Wheel Mecanum Wheel
Roller Angle 90° 45°
Movement Control Requires holonomic configuration Built-in omnidirectional capability
Smoothness Smoother sideways motion May cause vibration during motion
Drive Complexity Simpler kinematics More complex control algorithm

I decided to use mecanum wheels because of omnidirectional capability, I started modeling a mecanum wheel.

b. CAD modeling

I referenced some mecanum wheels on Printables (Mecanum Wheel | Evolv3D (Printables)) as the base structure and ended up with six rollers angled at 45 degrees.

mecanum-wheel

The cross-section of the 45-degree angled rollers needs to follow a specific curved shape to maintain constant contact with the ground while rotating. I created the curve by projecting a circle on a 45-degree angled plane, then used that intersection curve to revolve and form the roller shape.

section

b. Selection

Although I initially wanted to make Mecanum wheels using molding or 3D printing, I decided to purchase them instead due to time constraints, using that as the base plan.

I chose Mecanum Wheel for RC Car (60mm (left and right set x 2)) because its 60mm diameter fits the design and it's cost-effective, though there are some concerns about its precision and load capacity.

mecanumwheel_2

I noticed some rollers weren't rotating smoothly, and after disassembling the wheel, I found they were mounted directly onto the plastic casing without bearings or shafts; additionally, some wheels had mold flashes that interfered with the casing.

c. Connector

Drawing on knowledge from machine building week, I designed a connector between the wheel and stepper motor shaft using 3D-printed parts, M3 insert nuts, and bolts.

mecanumwheel


4. CAD modeling

A. Approx. dimensions

I started by designing a standard 1kg spool holder. I placed it in the center of the machine so that the weight distribution would be stable even if the amount of filament remaining changed.

dimensions

overview

For design tips and process, visit 2. Computer-aided Design.


5. Updated design

After week 15. System integration, I triaged and simplified the design as a pen plotter machine.

Changes after week 15

  • Added M5 mounting holes to the frame to support future upgrades.
  • Switched to a servo motor mounted at the front of the frame for better accessibility.
No. Item Status Note
1 Arm mechanism In Progress Changed to use servo motors for simplicity 
2 Z-axis motor bracket Completed Repositioned for servo motor
3 Arm Cancelled Designed for 3D printing; assembled with M5 bolts, nuts, and bearings
4 Limit switch mounting Not Started Bumpers on all four sides; Z-axis switch at center of arm for calibration
5 Pen plotter mounting Not Started
6 Frame Completed Side and bottom made from acrylic; joined with press-fit and bolts, includes handle
7 Top cover Cancelled Filament spool space closed with acrylic board
8 PCB mounting and enxlosure In progress Mounted inside the frame
9 USB / power cable management Not Started Guide and Cord reel

Enclosure

I later designed an enclosure for the PCB.

  • Ventilation holes aligned with the 4 A4988 drivers
  • Added hole for locker switch
  • Openings for DC power cable and USB cable to Pico

enclosure_1

Integrated limit switch bracket

I integrated the limit switches directly into the enclosure, as there were no other suitable mounting points available.

  • Positioned the X and Y limit switches at the left-rear corner
  • Secured each switch using two M2 bolts and nuts
  • Routed the wires behind the bracket, carefully avoiding 3D print overhangs
  • Added a handle both to make it more approachable and to protect the cables, inspired by the design of classic Macintosh computers

enclosure_2

Pen plotting arm

Finally, I added a pen-plotting arm powered by a servo motor.

  • Installed M3 bearings on both sides to ensure smooth rotation
  • Designed a simple cam mechanism that uses gravity for the downward movement, allowing the pen to move freely up and down while following the surface

pen_arm

Visit Week 15. System integration for updated integration plan.