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.
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.
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).
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).
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).