Although the ESP32 and the DXL MKR Shield are not “purposedly” made for each other, they are well supported within the ARDUINO environment. Just looking at their respective schematics, it looked like that there was a possibility that they could be hooked up together. My experiment setup is shown below:
-
Two 2XL-430s are used and they are powered at 12V via the DXL MKR Shield.
-
My ESP32 board is a Feather ESP32 V2 from Adafruit. It is powered via the USB-C Port by my PC.
-
Both boards are grounded together via a Jumper Wire.
-
Pin TX on ESP32 is connected to Pin TX on DXL MKR Shield, while Pin RX on ESP32 is connected to Pin RX on DXL MKR Shield. In this experiment, the DXL MKR Shield is not considered as an external UART device, so the usual “cross-wiring” between TX and RX is not implemented.
-
On the ESP32, Pin A5 is used as the Flow Control Pin, and it is connected to Pin A6 on the DXL MKR Shield.
The usual PING test was used to test this mashup experiment (see picture below):
- Broadcast Ping returned 3 servos instead of the actual 4, and specific ping to ID=1 failed.
I reduced the length of the jumper wires as much as possible (see picture below).
STILL the PING test would fail exactly as before.
I repeated this experiment with a Portenta H7 Lite and the same DXL MKR Shield, using the same jumper wires, and of course this time it is just a matter of “corresponding” direct Pin to Pin connections (see picture below):
The Ping test failed for Portenta H7 in the same way as for ESP32, see picture below:
Now, these particular Portenta and DXL MKR shield boards had been used together extensively before without any problem. Thus I put them back together via direct header to header connections, and ran a Sync Read/Write sketch. And the results are fine!
So it looks like that using Jumper Wires for Full-to-Half Duplex conversion via Serial1does not quite work the same way as direct header-to-header connections, for the same task. Does anyone encounter a similar situation?
Also, it looks like that ESP32 users would have to wait for an ESP32-compatible DXL Shield from ROBOTIS?
BTW, the same Sync Read Write sketch was appropriately modified to compile and download OK on the Feather ESP32, but at run time, absolutely no output (not even simple Serial.println() statements).