This project started as a fun experiment to dive into robotics using an Acebott educational arm kit. But when I tried making it lift real payloads, the tiny factory MG90S micro-servos completely failed the torque test. Upgrading to heavy-duty MG996R metal-gear servos was the obvious fix, but they couldn't fit the factory plastic chassis. As a Computer Science student with no traditional CAD experience, I turned to OpenSCAD—using code-driven 3D modeling to engineer custom mounting plates, reinforcement brackets, and a heavy-duty base.
Upgrading the motors brought a serious electrical challenge. Powering heavy servos directly from an ESP32 will instantly fry the board. During testing, I cobbled together a temporary setup using phone chargers and power banks just to get everything moving. For a permanent, reliable build, a dedicated 5V 10A SMPS is mandatory. The most critical lesson? Always share a Common Ground between the external power supply and the ESP32 to stop the servos from twitching uncontrollably.
After assembling the hardware and wiring up the TCS34725 RGB color sensor, I built out the full control stack. Instead of relying on generic Bluetooth apps, I created a complete mobile-responsive HTML/CSS/JS web dashboard hosted directly on the ESP32’s LittleFS memory.
To handle the aggressive momentum of the heavy servos, I engineered a custom C++ kinematic motion engine with smooth acceleration/deceleration curves and an 11-step collision-safe routing sequence. Finally, I implemented a Euclidean Distance color-matching algorithm so the robot could autonomously identify and sort up to 60 saved color profiles. What began as a flimsy toy kit evolved into a fully functional, autonomous industrial sorting cell!
Pranay Deep
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.