"Homemade" DXL Shield

Like many folks, I was also interested in creating my own DXL Shield and I found this TTL Communication schematic on ROBOTIS e-Manual

It uses the 74LVC2G241 which is a surface-mount device which has 0.38 mm wide leads set 0.65 mm apart from each other. Unfortunately, a home user like me does not have the soldering tools and skill levels to handle such a small device (3.1 x 3.1 mm overall size). Thus, I needed a different solution using Dual-Inline type of devices with similar functionalities, and also compatible with stacking header pinout patterns.

I opted to adapt the solution used for CM-5 (i.e. from 20 years ago) using the 3-state buffer 74HCT126E and the inverter 74HCT04N. Of course, a Logic Level Shifter is needed to interface between the Arduino Controller (Adafruit Feather S3) and the 74HCT devices. See picture below for the finished DXL Shield module.

CustomDXLShield_1

For this homemade DXL Shield, I added 3 independent Power and DXL Hubs so that a variety of DXLs operating at 12V, 7.5V and 5V can be hooked up to this single DXL Shield. But I kept a Single DXL Data Line to be shared by all DXLs. The 5V Power hub also drives the Level Shifter and the 74HCT devices. The S3 uses the USB-C port for its own operation.

The back view of this custom DXL Shield shows that it was quite a big mess of wrapping wires “behind the scenes”.

The Dynamixel test setup is shown in the next picture.

AdaFS3_CustomDXLShield_2

I used my familiar Sync Write/Read sketch to test out the overall operation of my homemade DXL Shield, in Single-Core and Dual-Core modes.

The Single-Core test worked out fine “physically” for the 2XL-430s but that “128” Packet Error was back (due to the wire wrap connections).

AdaFS3_CustomDXLShield_3

The Dual-Core test also worked out fine “physically” for the DXLs with the “128” Packet Error still present, but now there were occasional Present Position/Present Velocity values that were incorrect (i.e., more DXL packet corruptions due to the wire wrap connections).

AdaFS3_CustomDXLShield_4

The Dual-Core sketch has much shorter delays (25 ms) within the main loop, but these types of errors did not occur when this S3 was interfaced to a MKR DXL Shield (see below post).

1 Like

UPDATE: 4/1/2023

I beefed up the AWG used for the Power Wires from 22 AWG to 20 AWG and that took care of the Packet Error issue. I also slowed down the DUAL CORE iteration rate with a 150 ms delay and that took care of the occasional erroneous values of Present Position and Present Velocity.

So although I had learned a lots from this project and the individual parts were cheaper, but the shipping costs were too high, so the end-user is still better off financially and technologically just to purchase a MKR DXL Shield from ROBOTIS :laughing:

1 Like