This project is based on RegiShu’s “[DIY] Spider Robot(Quad Robot, Quadruped)”. It is a quadruped robot based on a spider with 4 legs. It has 12 servos separated into 4 legs (3 servos a leg, servos are SG90) the controllers for this robot are the Arduino Nano and the PCA9685 Servo Shield.
Day 7-8
Process: Wrote the first functional movement draft and refined it into a modular library.
Challenge: Non-Standard Hardware. Since the Nano + PCA9685 combo was unconventional for this specific robot model, standard libraries failed to produce fluid motion.
Tackle: Developed a "Library-Style" abstraction layer using void() functions. Instead of raw PWM values, I created functions like move_leg_up() and move_front(), allowing for clean, readable code in the main execution loop.
Day 6
Process: Identified the precise movement range for each joint.
Challenge: Physical constraints of the 3D-printed joints meant that "90 degrees" in software did not always equal a neutral physical position.
Tackle: Created a calibration graph for every leg part and wiring position to define safe operating limits (e.g., Left Knee range: 150° to 0°).
Day 4-5
Process: Mounted the 12 SG90 servos to the chassis and completed the wiring for the PCA9685 servo driver and Arduino Nano.
Challenge: Complexity of Wiring. Managing 12 separate signal lines plus power delivery without creating a "rat's nest" of wires.
Tackle: Created a formal circuit diagram and servo pin arrangement table (Leg 1: Channels 1, 2, 3; Leg 2: Channels 5, 6, 7, etc.) to ensure systematic debugging.
Day 2-3
Process: Assembled the tibia and coxa joints and test-fitted 3D-printed body parts (hold.stl).
Challenge: Mechanical Integrity. M1 screws were too small to "bite" into the 3D-printed chassis, making the legs unstable.
Tackle: Identified the failure point, ordered larger custom-fit hardware, and manually tailored the 3D prints to ensure a secure mechanical bond.
Process: Conducted a deep dive into the RegiShu "DIY Spider Robot" design. Analyzed the 12-servo requirements and mapped out the initial movement patterns.
Challenge: The open-source code was designed for different hardware configurations.
Tackle: Decided to scrap the initial reference code in favor of developing a bespoke library specifically for the Arduino Nano and PCA9685 driver