SpotMicroESP32 – an affordable DIY quadruped robot

The SpotMicroESP32 is the result of a one-year-long work in the evening hours and my personal challenge of 2020. It is an affordable, DIY quadruped robot for personal educational purposes.

The challenge was to design the 3D model of a quadruped robot from scratch and to create an electronics schematic for a full featured robot capable of autonomous movement. In August 2020 i have published the 3D printing parts of the very first prototype, which were overhauled multiple times. In December i published the finished electronics schematic resp. wiring diagram.

SpotMicroESP32 (prototype)

It offers a lot of features and comes in my case with a price tag of about 250€. The core is an ESP32 MCU, which is a dual-core SoC with both Wifi and Bluetooth and a lot of hardware interfaces. The SpotMicroESP32 inherits two ultrasonic range sensors in the front as well as an ESP32-CAM for live videostreaming and object recognition. It integrates an accellerometer and gyroscope in an IMU. The power management offers an voltage sensor (voltage divider moduel) and a current sensor for state of charge estimations and overcurrent protection. Also there is an build in relay to shut the servos completly off. A 0,96″ OLED display for status reporting as well as an neopixel ring for mood signaling are an additional element for further programming challenges. The last small feature are the USB-ports and balance charger port for the LiPo. This allows for flashing and charging without the need of disassembly.

WARNING: Charging LiPo’s requires precautions and can lead to hazardous fires. If you can’t provide a safe enviroment for charging your robot with the battery in place (and the potential risk of losing the robot in a fire as well), then always stick to what the batteries manufacturer suggest for safe charging.

Detailed view on the electronics of the pre-final SpotMicroESP32

The actual 3D model is a remix of Deok-Yeon Kim (KDY0523) original Spotmicro robot dog design and shares the overall look, mechanic and to the most parts the dimensions as well. But the individual pieces of my SpotMicroESP32 model have all sorts of changes, that where not only designed from the ground up in FreeCAD, but also require their very own assembly procedure. Some partgroups are interchangable with the original Spotmicro design by KDY0523.

Assembly illustration (final state) exportet from FreeCAD

The finished electronics diagram had several iterations before being considered feature-complete and came to this finished state through inspiring community discussions on both Slack and Discord. The parts needed are commonly available prototyping modules, some wires, shrinking hoses, connectors and some little soldering. While not all parts are needed for the robot to function, at least a core-build with a specific set of components is required.

Both the ESP32 as well as the ESP32-CAM are specifically designed for IoT applications and thus are feature rich but also posses not as much processing power as single-board-computers, like the Raspberry Pi and most certainly not as much power as AI accelerators as the Nvidia Jetson. This has the benefit of keeping the price as low as possible, while allowing for as much features as possible. So if you like to work with limited resources and also like the idea of outsourcing several tasks for computation, than this robot allows for both of it.

Final wiring diagram

Since the milestones for 2020 only included a finished 3D model and a working circuitry there is no actual software in my repository yet. But the community already created some astonishing programming progresses.

First there is the repository from Maarten Weyn, who not only solved and implemented the inverse kinematics so the robot is able to move, but also programmed an App to control the robot with an Smartphone via Bluetooth Low Energy.

Based upon this repository there is also a walking gait implementation by Guna R., an very active community member. Not only was he able to include voice commands to the robot, but to make the robot actually walk based upon a trained ML model.

Since this robot is an educational project for myself in the first place, i will start in 2021 to make an own firmware and smartphone app. With going all the steps necessary all by myself, i will be able to learn more about how all comes together and how everything works in detail. But for sure i am eager to learn from the community and their progresses as well.

This is the first article of hopefully many more, that will allow for some insights into the individual modules, design decisions and thoughts i had while putting all the pieces together.