Close

The CS Guy vs. The Laws of Physics: Building the AutoSort-ESP32

A project log for AutoSort-ESP32 Automatic Color Sorting Robotic Arm

Wirelessly Controlled Color Sorting Robotic Arm Power by ESP32

pranay-deepPranay Deep • 2 hours ago•0 Comments

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! 

Discussions