Asked — Edited

Uart Baud Rate Speed

I'm not really up to speed on Uart ports and how fast to expect them to pass info back and fourth. I'm sending and receiving to a Kangaroo X2 at 9600 baud and when I ask for postion feedback the response seems a little slow. Can I raise the baud rate and speed this up? Can I even do this?


Upgrade to ARC Pro

Take control of your robot's destiny by subscribing to Synthiam ARC Pro, and watch it evolve into a versatile and responsive machine.


Of course you can change/up the UART baud rate... From the ezb4 data sheet... UART Serial Expansion Port Asynchronous serial Communication up to 3.75Mbaud

uartinit(0, 0, 115200) #UART port 0
uartinit(0, 0, 38400) #UART port 0
uartinit(0, 0, 9600) #UART port 0

#you get the picture

You'll have to make sure the kangaroo/sabertooth also have their baud rate set to match the ezb's change in baud rate... (via dips? Can you even change the Kangaroo's baud rate?) .


The Kangaroo would need to support a higher baud rate. The devices need to match. However, it is unlikely that a higher baud rate would make much difference. The messages just can't be that big. 9600 Baud is about 1200 characters per second. I don't know how big the messages are, but 1200 characters is an awful lot of position data.



You can go up to 38400 I think on the sabortooth. Not sure on the kangaroo. It might be limited to 9600.


Come to think of it, I am pretty sure the roo is hard set to 9600. There are no dip switches on the roo to set this.


This is probably a dumb question but wouldn't you want to control a sabertooth or kangaroo in rc mode? Because isn't there a lot of controls already done by ez robot to command based on rc mode?


RC mode doesn't seem to work on the sabertooth with the Ez-b (at least with the 2x25 that many of us have tried) . I don't have a Roo so haven't tried that. Might simplify things if it works.


United Kingdom

The Roo x2 is set to 9600 by default and as David said, it can't be changed in the board itself. But apparently, the baud rate can be changed using Dimention Engineering's DEScribe software for serial input. I'm not 100% sure about simplified serial though but I believe you can change it for both simple and packet serial using the software. Hope that helps Dave. I haven't tried it as I don't have a Sabertooth, but remember reading this when I was researching the tutorial.


I thought that baud rate was just for setting the configuration but I could be wrong. I went away from the roo in favor of an arduino mini just for the cost savings on my project. A lot more coding, but it allows me to lock the arduino to try to protect my code.


Dave, it's off topic - but you should plan a trip to visit ezrobot sooner than later so we can provide some advise on selecting hardware based on cost, availability and other factors such as power consumption, heat, and size. Big one of course is cost:)


Thanks for the great information everyone. I was mainly trying to understand a little better how the serial transfer of information through the Uart port worked and if by increasing the baud rate would speed it up. Sounds like that increasing it actually increases the capacity to transfer more information so a bottleneck won't form and slow things down. Am I correct?

After I think about it I do remember being able to adjust the baud rate for the kangaroo in the DEScribe software. So Steve is correct there.

It looks like I'm getting 9 bytes passing back from the Roo through the Uart. Does the buffer clear after it receives the uartread command? Sometimes if I get a failed move and and repeat the same combonation of comands to get and read information through the Uart the bytes are actually larger. Maybe 12 or more

DJ , thanks for the personal invitation to visit and offer of one on one schooling. I'm sure I'd leave a much better robot builder and part shopper. Visiting you guys at ground zero is on my bucket list and would be the third biggest thrill of my life. ;)


@ Alan - Yeah, I tired to operate the kangaroo with rc mode but it did not work. I thought I was doing something wrong. Thanks