Welcome to Synthiam!

Program robots using technologies created from industry experts. ARC is our free-to-use robot programming software that makes features like vision recognition, navigation and artificial intelligence easy.
Get Started

Asked — Edited

Dynamixel With Ezbpi Server

I am trying to control my Dynamixel AX-12a with the EZBPi, but when I try to connect ARC it disconnects shortly after...
Is there a wiring schematic or a tutorial on how to do this?
I guess I missed something...maybe the port in the configuration is wrong?
A pinout for the EZBPi would be helpfull!!:)


Related Hardware Raspberry Pi
Related Control Dynamixel
AI Support Bot
Related Content
Synthiam
Synthiam
#1  
What power supply/battery are you using? Are you connected straight from power to AX-12A or is there something in between?
Synthiam
#2  
Continue using this thread. I’m removing the duplicate comment on the raspberry pi post
#3  
I have not even connected the Dynamixel, the EZBPi disconnects as soon as I am connecting my ARC Project which has the Dynamixel plugin included...did you manage to connect the Dynamixel AX-12a to a Raspberry Pi running EZBPi?
If so please let me know which OS you are running and how you connected ARC and the Servo!:)
Synthiam
#5  
Yah - I used the raspberry pi with the plugin in one of my live hacks. It was the hack where i demo'd the raspberry pi. 

You'll need to provide more detail on everything you're asking about. Before jumping ahead with asking about something else, this thread should be kept to the dynamixel discussion. 

Are there log files in the debug window of ARC on the pi when it disconnects?  What are controller are you connecting to? Explain what you're doing.
#6  
I want to connect the EZBPi server running on my Raspberry Pi to my Dynamixel servos!
Is this possible?
How should I wire this...which GPIO should I connect?
#8   — Edited
@DJSures I double checked what you did in the Live Hack, just to make sure...so if I am getting it correct you just hooked up the plugin but never moved a servo right?

So if I can track my issue right, this seems to be a problem of the OS that the Raspberry Pi is running...
I would recommend, that at some point we should have a downloadable image for ARC Pi to make sure these problems don't persist?

Since Raspian Jessie and also in Stretch the OS is hijacking the serial port for Bluetooth connectivity...you will have to reconfigure the Pi, which is not so bad...but it is a problem if you want to connect and do not know about the serial port issue!!

https://spellfoundry.com/2016/05/29/configuring-gpio-serial-port-raspbian-jessie-including-pi-3/
#9   — Edited
Since I reconfigured my serial port, I can connect...but the Dynamixel servos still don't move!!
I can move the servos running my own code, so the ports and the Baudrate is working correctly!!
Also it seems like the EZPBi is logging the UART...which is good for debug!!
You can see it is receiving the instruction package correctly!!

User-inserted image
#10   — Edited
Also one thing I am a bit concerned about is burning my GPIOs if I am connecting the way you said.
This is why I only connected the TX, but the servo should receive the package right?
Maybe we should add some Voltage protection to the circuit? There are a couple of options, on my desk you can see the setup I am using which utilizes a 74LS241 and a 10K resistor...I use it to connect when I am using the Raspberry Pi only, not if I am using EZBPi!!
#12   — Edited
Sweet, I am looking forward to this!!:)

I will be out of town since first of April too...good timing!!:D
#13  
Hey, I am still on vacation...but could not resist to do some robot related stuff!!:)

So I stumbled upon this recommendation by Robotis

User-inserted image

And had this idea, which also uses a Buck Converter to power the Raspberry Pi...it would not interfere with the EZBPi server, I would only need to set the toggle PIN to high to read the data in ARC right?

User-inserted image

Looking forward to your live hack...correct me if I am on the wrong path here!!:)
Synthiam
#14   — Edited
Don't do what ever all those images and stuff you posted are. They're not relevant. 

Visit this web page on our site: https://synthiam.com/Hardware/Raspberry-Pi-17681

Ensure you have downloaded the latest EZBPi Server from that page. There was an update today (03/29/2019). Finally, ensure you read the section on that page about activating the Serial port on the Raspberry Pi. 

Connect the TX and RX of the Pi's serial port to the data line of the dynamixel servo.
#16  
Great news!!!:)

I am out of town, but will look into it from the hotel Wifi tonight!!
Thanks a lot for getting this going!!
#17   — Edited
Hey, the Live Hack and tutorial is awesome!!!
Great help to get started,  very detailed from A to Z...:)

It seems to be all good to go for the transmit, but I am still trying to understand how it can be safe to expose the Raspberry Pis 3.3V Pin to the bus of the Dynamixel, which is 5V?
I am new to serial bus communication, I might get stuff wrong...but I found a dicussion on trossenrobotics.com which left me a bit confused!

http://forums.trossenrobotics.com/showthread.php?7794-Com-between-raspberry-pi-and-arbotix-m


they say... 

Quote:

You can do half duplex with a full duplex USART if you can turn the transmitter on or off -- OR if you add a selectable buffer chip, such as the 74HCT125, on the TX line. Most people go for the latter; turn on the buffer/driver (pull the enable low) when transmitting, and pull it back high again when transmission is done.If you wire the receive and the transmit together (perhaps through the buffer) then you will have to read back the data that you transmit, and you know you can disable the buffer when you've received all the bytes that you sent.You can also control the input/output and high/low state of GPIO pins on the Raspberry Pi using the sysfs gpio feature!
and also

Quote:

Another very good reason to use a buffer IC for the full-duplex to half-duplex conversion is that the dynamixel buss is 5V, while the RPi pins are all 3.3V max. Connect the RPi pins directly to the dynamixel buss without any logic level conversion and you will destroy the pins.
Synthiam
#18  
Do not use a half duplex buffer. The dynamixel plugin expects the connection to be full duplex and manually controls the rx buffer. 

The dynamixel ttl will detect 3.3v when receiving. So I believe all you need are 2 resistors as a voltage divider. 

I didnt know the pi wasnf 5v tolerant - that’s ridiculous.
#19   — Edited
I was surprised too.

The EZ-B is 5v tolerant and each pin has a strong resistor (I believe is 150 ohms) so connecting EZB TX to a Dynamixel Data/TX (when the servo sends data) is not an issue the resistor handles that.

The raspberry PI is 3.3v and it not 5V tolerant so connecting RX + TX + Dynamixel Data is not an issue when the Dynamixel BUS is in receive mode waiting for commands, but when switches to Transmit mode (Sending data) the raspberry PI TX is short-circuit with the Dynamixel TX plus the voltage is 5V.

I don't know how it can work without damaging the PI gpio... maybe is too quick or luck.

** EDIT: Dynamixel TTL bus will identify 2v to 5v as HIGH logic, so sending is not an issue, but replying (TX)  is 5v. 

The site below (no https) provides more details:
http://www.enchantedage.com/electrical-connections-for-dynamixel-TTL-UART-bus