SpotMicroESP32 – retrospecting the goals for 2020

It may be a little late to speak about the set goals for 2020. But i want to start my series of posts with a short retrospect. Maybe this helps to understand some design-decisions or quirks.

First complete prototype set of parts
Intermediate assembly of first complete set of parts for prototype – which resulted in several minor changes and tweaks.

First of all, it was not until 2019 when i seriously got into electronics with a complete starter kit of an Arduino Clone. This was also the first time for me to try designing actual circuits in Fritzing! and the first time to do some more serious programming – like custom libraries in C/C++ for specific chips/modules. In August 2019 after finishing my Bachelor Thesis a giftet myself with a 3D-Printer. This was also the time, when i  startet with some little CAD projects – so i tried to learn FreeCAD fast. I felt also the need for a long-term hobby with a plethora of different topics i could dig into, so i could entertain myself and acquire some skills, it did not take long to go into the fields of robotics – as it has so many facettes and can easiliý be seen as largely interdisciplinary.

This is where a found the SpotMicro from KDY0523 (Deok-Yeon Kim) the most interesting project – and in comparison to Hexapod-Robots way cheaper due to haveing 33% less legs (and servos). But KDY’s design had several major disadvantages i was not happy about:

  • it required 5 different screwsizes
  • several parts require supports when 3d-printed
  • some parts are glued into place, like the servohorns
  • there are only STL, making modifications way harder
  • some parts had weak spots, like the printed pins for the ball bearings likely to break easily
  • and i wanted to use different electronics, mainly because i wanted to be more spot on to an IoT like robot

So with this robot being actually the robot i wanted to build, but the STL’s not being the parts i wanted to print i set myself some goals for 2020. First: to design my own parts from scrach (mimiking the original parts) with some changes, that remove hopefully all disadvantages of the original design. Second: to create my very own circuitry with an ESP32 as the main MCU with some smaller software test’s along the way, to see if all additional components/modules work as expected. And third: the robot should be economic (which has both pros and cons), thus keeping the price tag and the entry barrier low.

Very first prototype leg
Designing and testing the very first prototype of the leg
Prototyping the circuitry
Prototyping and testing of the envisioned circuitry – yet still some changes were to be made

All design decision for the parts (which i wanted to publish as STL’s as well as the original CAD-Files) where focused on:

  • supportless 3D-printing which also required splitting up parts into assemblies
    • but with doing so it was possible to design them according to giving those parts greater resilience to stress due to operational forces
    • and to reduce to post-processing needed for all parts
  • reducing the amount of different screwsizes
  • removing the need for glue/hot glue completly
  • and providing easily modifiable part templates for customizations

It all took me about from March till August 2020 to design and publish the very first complete set of parts. There were soon some people participating and suggesting changes or improvements, which in part were implemented, when time allowed and when i considered it usefull or doable.

One thing, that made me really happy, was the immideate programming that Maarten Weyn (Professor for IoT at the University of Antweerpen) did. He achieved to implement a working IK (inverse kinematics) and to build a cross-platform smartphone app for basic control of the robot. Something i planned as my personal goal for the next year to come. So basically it showed me, that everything i imagined, was actually possible and in near reach.

A look under the hood
A look under the robots hood – nearly impossible to add more features.

It took me till December 2020 to finish the circuitry, which had also several overhauls and did result in some part-changes as well. But this was also the point, when the robot was considered feature-complete and the fritzing scheme for the circuitry was online.

Along the way i spend some time to write a detailed assembly guide, partslist, bill-of-materials and to make myself familiar with the Espressif IDE, called the ESP-IDF, and the cross-plattform framework Apache Cordova. There has a lot of time been spent on rethinking the circuitry (several times) and to look into detail at some parts, so we could get the most out of it. In example the ESP32-CAM normaly has only 1 unused GPIO. But when driving the SD-Card-Slot in 1-Bit SPI Mode, it frees up two additional GPIO’s allowing now for UART communication between the ESP32 and the ESP32-CAM and to use the third GPIO as an external interrupt to trigger a wake-up call from hibernation.

So this was the retrospective look into the milestones for 2020. This year will focus on the actual programming and hopefully on more blog-posts to follow these process. The preperations for this have been made… 😉