Drive Dynamixel 360-Degree Servos Using an ESP32 Microcontroller

The ESP32 dev module controls the Dynamixel XL430-W250-T servos using the microcontroller's half-duplex mode.

Cabe Atwell
2 months agoRobotics

Bart Dring has uploaded an interesting project blog on his Buildlog.Net blog detailing how he managed to drive Dynamixel 360-degree servos using an ESP development module via UART, rather than a serial port. Dring then used his platform to control a three-axis delta machine with Grbl_ESP32 software.

Dring explains, “The servos I used are XL430_250T. These use a 3 wire cable. (Power, Ground, and Data). The data is a 5V TTL signal. This lets you connect directly to a microcontroller’s UART in a half-duplex setup. Half-duplex means you send a command, give control of the data line to the servo and wait for a response.”

To combine the TX and RX data lines in that half-duplex mode, Dring incorporated a 74LS241 chip, which features tri-state drivers where half of them are in an ‘enable state,’ and the others in a ‘not enable state,’ which allows the direction pin to enable half the gates and disable the others on the servos. To get the 74LS241 to bridge the voltage gap between the ESP32 (3.3V) and the Dynamixel servos (5V), he had to create a voltage divider that drops the chip down to 3.3V.

Dring designed a special controller that uses the ESP32 (with a capacitor to fix a bootloader issue) and 74LS241 chip to drive a three-axis delta machine, which packs a power connector, Dynamixel connector, and 5V DC-DC P/S as well. It’s also outfitted with threee hobby servo connectors, three high-current MOSFETS, six switch inputs, an I2C connector, and an SD card, which is loaded with the Grbl_ESP32 software. Dring has shared a detailed walkthrough of his controller for anyone interested in recreating his build.

Related articles
Sponsored articles
Related articles