Serial Servos

Serial Servos

Animatronic Movie Props

Note: This is an automatic translation of the original German text. You can read the original German version here.

Animatronic Grogu 2.0

🔸 To the other parts of "Animatronic Grogu 2.0"

Serial Bus Servos

Instead of normal servos from model making, which are controlled via PWM, I use digital servos in this project, which are controlled via a serial bus. This has the advantage that you can connect several servos to a single bus without having to run a lot of cables. The servos can then be controlled via a single line instead of star-shaped wiring. This saves space and cable clutter.

Two different designs of such bus servos are installed in the animatronic Grogu: small models for the eyes, ears and forearms and larger models for the head movements and arms.

The larger servos have a design that is mostly used for the arms or legs of small (humanoid) robots. They are usually installed there directly as knee or elbow joints. Here I use the model STS3215 Metal Digital BUS Robotics 360 Servo 55g 19.5kg 6V-7.4V from Feetech.

STS3215-Servo STS3215-Servo

The small servos are SCS2332 Metal Digital BUS Robotics Servo 20g 4,5kg 4,8V-6V from the company Feetech and have the well-known design of the SG90 or MG90S servos.

SCS2332 Servos SCS2332-Servo

You can already see from the specifications that both servo types only have exactly one voltage with which they can be operated - if you only want to use one voltage source for the servos. Therefore, the voltage of the servos on the Grogu is set at 6 volts.

Servo Controller

The bus servos cannot easily be controlled directly from a microcontroller. As a corresponding interface I use the Serial Bus Servo Driver Board from WaveShare. It connects to the ESP32 via a serial UART interface. Since it is recommended not to operate STS and SCS servos via the same bus, I installed two of these boards.

BTW: This means that the ESP32 with the hardware-side UART interfaces is starting to run out: One requires the Animatronic Workbench to control the figure live via USB cable. The other is required for the MP3 player board, which is also controlled via a UART interface. Together with the two servo controllers, four UART interfaces would be necessary - but the ESP32 only has three. Therefore, I moved the MP3 player board to the software UART interface, as it is only operated with 9600 baud and is therefore not so time-sensitive.

Servo IDs

The servos are addressed by their IDs and are counted as follows: (As with the doctor, left/right is always to be understood from the point of view of the "patient")

ID Servo Type
1 Eyelids Top SCS2332
2 Eyelids Down SCS2332
3 Mouth SCS2332
4 Right Ear SCS2332
5 Left Ear SCS2332
6 Rotate Head Left/Right STS3215
7 Neck Tilt Right STS3215
8 Neck Tilt Left STS3215
9 Right Arm STS3215
10 Forearm right SCS2332
11 Left Arm STS3215
12 Forearm left SCS2332

Alignment and calibration of servos

In order for the servos to be controlled correctly for the various movements, they must first be aligned and calibrated. The SCS2332 servos have a value range of 0-1024, the STS3215 servos from 0-4096. The center of the movement is therefore at 512 or 2048 and therefore optimally represents the default position of the servo. The max and min positions shown in the figures are not the values for 0 and 1024 or 0 and 4096, but the values that make sense for the movements of the Grogu. They have to be determined by hand and inserted into the project of the Animatronic Workbench.

Neck Tilt

Max Min Default

("Min" means as low as possible without touching the ESP32)

Arms

Max Min Default

Hands

Max Min Default

Eyelids

Max Min Default

Mouth

Max Min Default

Ears

Alignment of the ears during assembly:

From the front from above from below

🔸 To the other parts of "Animatronic Grogu 2.0"