🕷️ Mini-Bug Robot

A four-legged desktop robot with no 3D-printed chassis — just servos, silicone, and duct tape holding it all together, walking under Xbox control over Bluetooth.

The frame isn't really a frame. Four MG90S servos are screwed directly to each other and reinforced with silicone and duct tape — there's no printed body underneath. Each leg gets a servo horn plus a matching plastic attachment that extends and curves it into an actual leg shape, 8 horns in total.

The electronics stack on top of that: an ESP32-WROOM-32U siliconed underneath the body, a PCA9685 PWM driver siliconed above it, and an XL4015 buck converter siliconed on top of that. Two Li-ion cells sit on either side of the driver board, wired in series for 7.4V. A 1N4001 diode now sits in series on the 5V line for reverse-polarity protection, and a 100µF capacitor bridges the ESP32's 5V and GND legs to smooth its supply.

4× MG90S Servo ESP32-WROOM-32U PCA9685 PWM Driver XL4015 Buck Converter 2× Li-ion 3.7V 2200mAh 1N4001 Diode 100µF Capacitor 3300µF 35V Capacitor

⚡ Circuit

Two Li-ion cells in series (7.4V) feed an XL4015 buck converter set to output 5V, which powers both the ESP32 and the PCA9685's servo rail. A 1N4001 diode sits in series on the branch feeding the ESP32's 5V pin for reverse-polarity protection, and a 100µF capacitor bridges the ESP32's 5V and GND pins to smooth its supply. The PCA9685 gets its logic power from the ESP32's 3.3V line and talks over I2C — GPIO22 to SDA, GPIO23 to SCL. All four servos run off PCA9685 channels 4 through 7, with a 3300µF capacitor in parallel on the power rail to smooth out the current draw when every servo moves at once.

Mini-Bug Robot wiring overview Two Li-ion cells in series feed an XL4015 buck converter stepping 7.4V down to 5V. The 5V rail powers both the ESP32 and the PCA9685 servo driver. A 1N4001 diode sits in series on the branch feeding the ESP32's 5V pin for reverse-polarity protection, and a 100 microfarad capacitor bridges the ESP32's 5V and GND pins. The ESP32 supplies 3.3V logic power and I2C (GPIO22 to SDA, GPIO23 to SCL) to the PCA9685, which drives four MG90S servos on channels 4-7. A 3300 microfarad capacitor sits in parallel on the PCA9685 power rail. 5V / GND 1N4001 100µF ESP32 5V/GND 3V3 (logic) GPIO22 → SDA GPIO23 → SCL parallel 2× Li-ion 3.7V 2200mAh, series → 7.4V ON / OFF XL4015 Buck Converter 7.4V → 5V ESP32-WROOM-32U Bluetooth + control logic PCA9685 16-ch PWM driver 3300µF 35V smooths servo rail under load CH 4 MG90S CH 5 MG90S CH 6 MG90S CH 7 MG90S Power (V+ / GND) Logic / I2C / PWM

🎮 Control Scheme

Movement is driven by an Xbox controller paired over Bluetooth. The main loop checks button and trigger state every frame and calls the matching motion function — each one just moves the "right" or "left" pair of servos in a set pattern.

InputAction
RTRight-side servos step forward
LTLeft-side servos step forward
RBRight-side servos step backward
LBLeft-side servos step backward
AForward walk (RT + LT combined)
BBackward walk (RB + LB combined)
XReset to default stance (90°)
YLying position
D-Pad ↑Dance
D-Pad ↓Stand on rear legs

To come back down from the rear-leg stand: press Y (lying), then X (default).

View Full Firmware on GitHub

About Me

I'm Doruk Orak, a 12th grade student at Sankt Georg Austrian High School in Istanbul.

My interests span hardware design, artificial intelligence, programming, and physics. Connecting the world of intelligent systems with physical circuits.