Skip to content


My project

For my final project I decided to create a ServoStepper motor. This project, named SoBot, aim to bring low cost & powerful servomotors to every robotic enthusiast.

The reason of this project is that more and more kids and teenager want to try robotics, and sometimes this hobby can be very expensive. My project can’t be use in the industry. It’s not its purpose. I want to push the limits of hobbyist servomotor beyond by creating a stepper motor based powerful servomotor.

Watch the trailer


I’ve been working with kids for a while now. First in a Fablab and now at university. I want to promote science and robotics to convince kids that math, physics, technology can be very interesting. Robotics is a very good subject for that, it covers lots of knowledge include math, geometry, physics, geography… even arts !

So I’ve been developing educational systems by the past. At the same time, I’m a researcher working on innovative digital fabrication methods. I’m convinced that digital fabrication is a great way to spread knowledge about our world, moreover, it’s fun ! Shaping a product ourselves help us to measure want can be make and want can’t. It can really help us to push our limits beyond. After learning basics of electricity. You can understand why your remote don’t work anymore. Instead of trowing it you can just change the battery. Seems obvious but that’s not as common… Think about smartphones ! Prototyping allows a better understanding of how everyday things works. We have to fight against black box. No more closed design !

Beside my job I’m member of a robotic team which participate annually to the French robotics cup. For that purpose I develop lots of software and programs to control our robots. But with Fabacademy I would like to make some mechanical engineering and electronics.

When prototyping robotics, especially with children, you need to use easy component since your limited in time with them. Mostly for planning reason but also because kids aren’t focus for a long time. Thus, you need impactful educational tools to maximize the knowledge you pass in that short time period.

Arduino handles that by implementing the complex coding abstraction in a framework to enable fast and simple microcontroller programming. Inputs and outputs buffer are handed automatically, you don’t have to deal with communication protocol and every complex task. In contrast, you can use a servo motor using a very few lines of code thanks to the Servo library. The servo is programmed using percutant parameter, the angle of rotation. Even if behind this simple function, there is a “complex” machinery of time based communication.

This being said, I have to admit, that prototyping is rapidly a large budget. School, association, teacher, need to have access to those simple tools without spending too much money. Hobbyist Servomotor are easy to use and not very expensive compared to industry standards. However, those servo are limited in torque and speed. Alternative may be needed to create bigger project like robot arm.

The concept

I decided to work more precisely on a robot arm joint. I want to design and make a very compact robot joint. This joint should be connected to watever prototyping board you use and act like a servomotor. Actuators is a big part of robotics engineering since it does influence lots of parameters on your final design such as, precision, repeatability, speed, force… Very often, people are using brushless motor or servomotors to drive their actuators. These are fast, precise, powerful but very expensive and difficult to control (position)…

Instead, using those expensive motor, I like to work with Stepper motors. The stepper motors and driver are cheaper than brushless solutions which make steppers advantageous, plus they are easy to control (position).

Unlike a servomotor, Stepper motor are not in close loop. They can lose their position and the controller will never notice. I need to find a solution to get the position information somehow.

image image

The result

The result are promising, the joint can be controlled using the standard Arduino Servo library, you can control multiple joint at once if your power supply is powerful enough. The joint can be used with a sensor, like an encoder, a potentiometer or a hall effect sensor to sync the motor with a position feedback. It can lift more weight than conventional servo motor, but it is much slower.

I tested a lot of different reducer in my design, and even if I used a classical planetary reducer in my final design, I’ll carry on to investigate with cycloidal and strain wave gearing in the future raise the joint torque as much as possible.

Last update: July 5, 2022