Specifications
All components selected for commercial availability, low cost, and university lab compatibility.
Mechanical Structure
- Robotic Arm: 4-DOF desktop robotic arm frame (e.g., 3D-printed or acrylic kit)
- DOF 1 — Base rotation (Z-axis, horizontal swing): positions arm between input conveyor, wax bath, and output conveyor
- DOF 2 — Shoulder joint (vertical lift): lifts and lowers arm
- DOF 3 — Elbow joint (reach extension): extends arm over conveyor or bath
- DOF 4 — Gripper open/close: actuates end effector
- 4pcs 600mm T Slot 2020 Aluminum Extrusion European Standard Anodized Linear Rail for 3D Printer Parts and CNC DIY Black(23.6inch)
Actuation
- Shoulder & Elbow Joints (dip axis): NEMA 17 Stepper Motor (e.g., 17HS4401, 1.7A, 40 Ncm holding torque)
- Used for the vertical dip axis where precise depth control is critical
- Step resolution: 1.8°/step (200 steps/rev); microstepped to 1/16 via driver for finer depth increments
- Each step at 1/16 microstepping ≈ 0.001° of joint rotation → sub-mm depth resolution at typical arm link lengths
- TB6600 stepper driver — 9–40 V input, up to 4 A output current, DIP-switch microstepping selection; one driver per stepper axis
- Base Rotation Joint: MG996R Metal Gear Servo Motor
- Torque: 9.4 kg·cm (4.8V) — sufficient for horizontal swing of arm + piece
- Speed: 0.17 s/60°
- PWM control via Arduino
- Gripper: DS3225MG 25 kg·cm Waterproof Digital Servo
- Waterproof rating — critical for wax bath proximity environment (splash, vapor, drips)
- Metal gear, coreless motor — high durability for repetitive open/close cycles
- Operating voltage: 4.8–6.8 V; Stall torque: 25 kg·cm at 6.8 V
- PWM control: 500–2500 µs pulse width, 50–330 Hz
Sensing
- Piece Detection (Input Conveyor): E18-D80NK IR Proximity Sensor
- Modulated IR output — immune to ambient light and sunlight interference
- Adjustable detection range: 3–80 cm (set via trim screw)
- Output: NPN open-collector digital (active LOW on detection)
- Supply: 5 V DC; interface directly to Arduino digital pin with INPUT_PULLUP
- Piece Detection (Output Conveyor / Placement Confirm): Second E18-D80NK — confirms successful placement and signals conveyor advance
- Dip Depth Feedback: Stepper step count (primary) — depth is derived from step count with a known steps-per-mm conversion; no additional encoder required for PoC
- Optional upgrade: AS5600 magnetic rotary encoder on shoulder joint shaft for closed-loop position verification (12-bit, I2C, 0.0879°/LSB resolution)
- Gripper State: Microswitch (e.g., Omron SS-5GL) — mounted inside gripper jaw to confirm full close contact with piece; prevents false “pick success” when gripper closes on empty conveyor (fault R12)
Control
- Main Controller: Arduino Mega 2560
- Selected over Nano/Uno for additional UART ports (logging + display), more digital I/O (multiple sensors, drivers, indicators), and hardware timer channels for servo PWM
- Runs the main state machine: IDLE → DETECT → PICK → TRANSPORT → DIP → HOLD → RETRIEVE → DRIP → PLACE → LOG → IDLE
- PID loop executes in software (Arduino PID Library by Brett Beauregard) at 50 Hz update rate, regulating dip descent speed based on step count vs. target depth profile
- Serial output at 115200 baud for debugging
- Servo Driver: PCA9685 16-Channel PWM Driver (I2C, 0x40)
- Offloads PWM generation for MG996R (base) and DS3225MG (gripper) from Arduino
- 12-bit resolution per channel
- Stepper Drivers: 2× TB6600
- One per stepper (shoulder, elbow)
- DIR/STEP/EN signals from Arduino Mega digital pins
- Input voltage: 12–24 V DC from bench supply
Data Logging & Display
- SD Card Module (SPI) — logs cycle data (cycle #, dip depth, hold time, dip speed, fault code) to a .CSV file on a standard microSD card
- SPI interface: CS, MOSI, MISO, SCK → Arduino Mega SPI pins
- 0.96″ OLED Display (SSD1306, I2C, 0x3C) — shows current state, cycle count, last dip parameters, and active fault codes
- Status LEDs (×3):
- Green — system READY / cycle running normally
- Yellow — DRIP / WAIT state
- Red — FAULT condition active
Power Supply
- 12V / 5A DC bench power supply — powers stepper drivers (12V rail) and servos via LM2596 buck converter (5V/3A regulated output)
- LM2596 Buck Converter Module — steps 12V down to 5–6V for servo and logic power
Communication paths:
- E18-D80NK sensors → Arduino Mega (digital GPIO, NPN active-LOW)
- Gripper microswitch → Arduino Mega (digital GPIO)
- Arduino Mega → 2× TB6600 (DIR + STEP + EN signals, digital GPIO)
- TB6600 → NEMA 17 steppers (bipolar stepper phases A+/A−/B+/B−)
- Arduino Mega ↔ PCA9685 (I2C, 0x40)
- PCA9685 → MG996R (PWM) + DS3225MG (PWM)
- Arduino Mega ↔ SSD1306 OLED (I2C, 0x3C)
- Arduino Mega ↔ SD card module (SPI)
- Arduino Mega → Status LEDs (GPIO digital out through resistors)
Linear actuator types
1. Lead Screw
A lead screw operates on sliding friction, converting rotational torque into linear force via matching threads (like an optimized nut and bolt).
- Mechanical Advantage: Extremely High. The shallow angle of the threads acts as a continuous wedge or ramp. A small amount of motor torque is multiplied into a massive linear lifting force.
- Speed: Low. Because it only advances by its lead distance (e.g., $2\text{ mm}$ or $8\text{ mm}$) per full motor revolution, the motor must spin at high RPMs to achieve fast travel.
- Length Limits: Short (Under 1 Meter). Over long spans, a thin lead screw will sag under its own weight and begin to wobble violently at high RPMs—a destructive phenomenon called screw whip.
- Self-Locking: Yes (if single-start like a Tr8x2). Friction prevents back-driving.
- Best Fit for Your Gantry: Your Vertical Z-Axis (30 cm). It perfectly handles the heavy 10 kg vertical lifting load without skipping steps, easily fits within the short travel length, and natively locks in place when power is cut.
2. Timing Belt Drive
A timing belt drive uses a flexible, reinforced rubber loop wrapped around a geared pulley on the motor shaft and an idler pulley at the far end.
- Mechanical Advantage: Low. One turn of a typical 20-tooth GT2 pulley moves the axis $40\text{ mm}$. This large distance means the motor acts against a long lever arm, drastically reducing its linear pushing force.
- Speed: Extremely High. Because of the large travel distance per revolution, a belt drive can easily achieve blazing travel speeds (over $500\text{ mm/s}$) at very low motor RPMs.
- Length Limits: Moderate (Up to 2-3 Meters). Belts span long distances easily, but if the belt is too narrow, it acts like a giant rubber band—stretching slightly under high loads, which causes positioning errors and structural “bounciness.”
- Self-Locking: No. It is incredibly smooth and back-drives instantly under weight.
- Best Fit for Your Gantry: Your Horizontal X/Y Axis (1 Meter) if you use a heavy-duty, steel-reinforced, wide belt (9mm or 15mm width) paired with a high-torque NEMA 23 motor. It provides fast, quiet, and smooth travel across your 1-meter span.
3. Rack and Pinion
A rack and pinion turns rotational motion into linear motion by running a circular gear (the pinion) directly along a long, flat track of gear teeth (the rack).
- Mechanical Advantage: Low to Moderate. Similar to a belt drive, one turn of a standard pinion moves the carriage a large distance (typically $60\text{ mm}+$ per turn), sacrificing torque for speed. However, you can couple the motor to a small gearbox reduction to regain that lost torque.
- Speed: High. It offers excellent high-speed travel capabilities across massive distances.
- Length Limits: Infinite. Unlike screws that whip or belts that stretch, racks can be bolted end-to-end indefinitely. The rigidity of a steel rack remains identical whether the axis is 1 meter or 10 meters long.
- Self-Locking: No. A heavy gantry can easily back-drive a standard pinion gear when the motor is disabled.
- Best Fit for Your Gantry: Your Horizontal X/Y Axis (1 Meter). Because your horizontal carriage must move a combined weight of around 13–14 kg (the vertical motor, rails, and the 10 kg object), a rack and pinion offers zero-stretch mechanical rigidity across that 1-meter span.
Limitations
- Wax bath temperature regulation is external — the system only interfaces with an already-heated bath; it does not control bath temperature, heating elements, or thermal sensors in this phase.
- The prototype operates on a benchtop-scale mock conveyor, not full industrial hardware (no full-length industrial belt).
- No vision system — piece detection and positioning rely entirely on TOF and/or ultrasonic sensors and fixed-position arm coordinates; no camera-based guidance.
- No multi-axis simultaneous motion — the arm executes sequential joint movements (not coordinated interpolated paths), which limits cycle speed.
- No wax bath level monitoring — bath depletion or overflow is not measured or flagged by the system.
- No safety interlocks for human proximity — the prototype is intended for unobstructed lab operation; no light curtains or safety PLCs (maybe add a detection system to it?)
- Single piece per cycle — the system processes one part at a time; no parallel or pipelined processing of multiple pieces.
- Fixed arm mounting — the arm base is stationary; it does not translate along more than a rail or gantry.