Welcome to Synthiam!

The easiest way to program the most powerful robots. Use technologies by leading industry experts. ARC is a free-to-use robot programming software that makes servo automation, computer vision, autonomous navigation, and artificial intelligence easy.

Get Started
United Kingdom
Asked — Edited

Fun With A Kangaroo/Sabertooth

This is a video to show you guys how good the Kangaroo/Sabertooth motor controller combo is!

Dave, this video starts by showing the ramp-up - full speed - ramp-down algorithm that I coded on the PIC microcontroller, you will see how GET_POS is read and controls the ramping up/down. The ramp-up and ramp down rates can easily be change via a variable. When I get my V4, I will port the algorithm over to an EZ-B script for those that want it.

The second part is to show you folks how important encoders are, here you can see the incredible synchronising that the Kangaroo's auto-tune PID has. I have sent it precision movement (distance) commands for hours with barely no loss of motor synchronisation which means that you can build a robot that will accurately move in a straight line and move/turn to the exact distances that they have been previously programmed/taught. I use this for accurate room mapping and having pre-learnt routines which enable my robots to move from one room to another or to a particular room location.

User-inserted image


Upgrade to ARC Pro

Get access to the latest features and updates with ARC Early Access edition. You'll have everything that's needed to unleash your robot's potential!

Looks like Tony is using the PIC in place of the EZB. His PIC has two way serial and the V3 EZB does not.

I haven't worked on the two way serial thing a lot yet with my V4 EZB. I've been busy retrofitting them into my B9 and getting them to work on him system by system. I was able to get my waist motor to move by sending a serial command through UART 0 but that was about all I tried.
United Kingdom
Matt, I looked at those magnetic encoders on your link and they look like they are going to be very low resolution, in fact so low that you may find it hard to get any accurate feedback from a single turn. Generally people use high resolution (optical) encoders, the ones I use have 64000 clicks for just one wheel revolution so the position accuracy is incredible.

On the I2C to serial converters, I have never used these, but I think the idea might work.
@Tony My challenge with the optical encoder was getting one to fit my shaft diameter (17mm) without costing an arm and a leg. My robot is a rover of sorts. Do you think a solution could be to add a more powerful magnet? I have some larger neodymium magnets somewhere. I also happened to order two sets so perhaps I could tie two together somehow? Otherwise can you recommend an encoder? Your motors are fairly large.

As for the converter, I didn't realize it will be coming from china so my v4 may arrive before the converter does. I just ordered my v4 a few weeks back so i'm way at the back of the line. I'd like to get this v3 going as it is the only robot project I have right now. I understand that you make robots professionally from your forum posts. Do you sell a pic board that may accomplish this feature with the V3 per chance?

I finally received my USB-to-TTL serial converter so hopefully I can at least upgrade my kangaroo firmware.

Appreciate all of the information you have provided.

warm regards
United Kingdom
Matt, its not the magnet power thats the issue, its the number of clicks (pulses) that the encoder gives per single wheel rotation. Your magnet sensor looks (to me) to do only 4 clicks per rotation where the units we use are 64000 clicks! The errors from such a low res encoder are substantial and I am not even sure that the Kangaroo will work properly with this low click count.

You could improve resolution by cutting say a larger disc and gluing as many small magnets as you can around the discs edge making sure there is enough magnetic separation so that moving the disc across the hall effect sensor gets a stream of clean pulses. If you put the magnets too close to each other then the hall effect will just see a continuous signal.

A more simple homemade encoder would be a disc with many holes precisely drilled around the edge then use a photo-interrupter circuit (LED with LDR, photdiode etc) to read the click count.

Hope this helps
@Tony, well it has been an unproductive robot week here, one of those hurry up and wait weeks. I get my finished wheels back tomorrow and am going to purchase new encoders. I wonder if you might take a look at the two I'm considering or suggest an alternate if you have a moment?
I'm considering the US Digital E2 or E3 encoders. They make several models but they aren't giving them away so I'd like to keep potential cost as low as I can. These are easy to mount and fit my shaft (5mm) under the brake cap.
E2 encoder


E3 encoder

I'm not sure what to put for CPR and want to get the right part since they are relatively expensive.

Thanks in advance

Edit: I'm going to ask this of anyone who has used the kangaroo because I've had three emails into dimension with no responses this week. My dip pins on the sabertooth are 1&2 off all else on. On the kangaroo I have 124 off 3 on. I had a different setting 1,3,6 on the s tooth when it was running alone but I think these settings are what I need to perform as in your video. Problem is, I am not getting the software to see a sabertooth/kangaroo. Are my dip switches wrong or is it necessary to have the encoders attached for describe to recognize the kangaroo? I have the wiring from the kangaroo to usb correct and the sabertooth is powered up and connected to the kangaroo.

I've found DE's customer support is less then helpful and slow to respond.

For the Kangaroo to work you need a feedback device like a pot or encoder attached to both the motor shaft and the Roo and also have had a successful tune. That may also extend to being able to use the setup software but not sure.

Dip Switches;
You have dip1 set to Analog. To use it with EZB you need to set it On. This will pit it into digital mode.
You have dip set to analog feedback. This is for use with a pot feedback.If you are going to use an encoder you need to set it to On.
You have dip set on now and that is for position. Off if for speed like when you are turning an axel of a car.
Roo's dips shouldn't keep you from accessing the setup software. Your Sabertooth dips are set properly.
Well I finally got my new encoders in the mail today but now i'm waiting on a different usb delink to get the kangaroo to talk to the computer, apparently the one i bought doesn't like to talk with the kangaroo. I think the new encoders will work nicely, I bought these:


more than I wanted to spend but I need them to work like Tony's video. I am now looking into a way to make the converter board I posted about or a similar pic type board work to make the robot perform send and receive serial. The waiting is the hard part. One of those things where you can't complete one thing because you're waiting on another. I only have a limited window to complete my project so i'm hoping to have a win soon.

I'm not sure when my v4 will ship but i'm a little concerned i'm going to have to buy another component since i'm using two 12v batteries in parallel connected to the sabertooth/kangaroo combo.

I guess there isn't much of a question here, i'm just checking in while I wait and wondering if anyone has had more luck with their projects.

@mdeming1, The price on that web link you pointed to says these encoders cost about $90 each. Is that what you paid? How and where did you order these?

Also what is the shaft hole size and how and where do you plan to mount these?

Thanks for any info you are willing to offer.

United Kingdom
Dave, they cost around £29 here


You can get them already installed on a very high quality and high torque motor from Zagros for around 129 bucks.


For high resolution they must be mechanically connected to the motor shaft itself, if you connect the encoder after the gear train (where you would attach the wheels) then the resolution will obviously be much lower.

Hope this helps

@Tony, you're just a treasure chest full of information and help. People like you make this stuff fun and interesting and very doable for schmucks like me ! :)
I didn't know what else to buy as my wheel shaft is 17mm but at the rear of the wheelchair motor where the brake used to be, the shaft is 5mm. From what i've read online several people have placed encoders in this spot so i'm hoping i'll have some luck. I think even a little feedback will help achieve what i'm trying to as long as I can get the bi-directional feed. My main worry was shaft size (fitting my motor) but i'd probably buy the all in one motors if I had to do it over.

Hopefully my usb-delink will arrive tomorrow and i'll be able to update firmware or something on the kangaroo. I've asked a friend to see if he can make the i2c board I bought work to communicate bi-directionally with the v3. I'll keep you posted if anything comes of it. Waiting is the pits.


PS: I bought the encoders directly from us digital, you can choose your options on each encoder and they make several, some cheaper, most more expensive. Just email them and they will email an order sheet. I got mine very fast and they were very responsive to all emails.
Tony, God Bless You! I know about the "old" business. I have my BIG birthday this month on the eleventh. (65).
United Kingdom
As a kind of tribute to the Kangaroo, have a look at how much simpler the new EZ:1 Robot (Kangaroo based) locomotion system is compared to my older PID locomotion system! They both operated as well as each other but the Roo version is so much simpler (and lower cost) and the brilliant self tuning function is the icing on the cake.

User-inserted image

Above is the new system

User-inserted image

Here is the older system

Matt, the DEScribe software from Dimension Engineering is really good, you should find it very helpful.

Mel, Happy Birthday for the eleventh! I reach 58 this month too, we have seen some great robot developments in our time, but I think EZ-Robot (and DJ) are the very best thing that has ever happened in personal robotics!

Both are super impressive setups Tony. The top one is still your v3 setup right? I thought you received your v4 already.
I'm hoping that if the USB-delink arrives today that I'll be able to at least set up the kangaroo/sabertooth &encoder side of things despite not having bidirectional com yet. I'd like to see how these encoders work.
I have a big birthday (for me) coming at the end of the month too. I've sold my wife on this robot build until then and hoped to have it completed for the most part by then,that's where the urgency comes from. I know I can make something here and not just another garage built project but I fear I'm all over the board with what little I know.
I'll keep you all posted and appreciate the encouragement.
Well, my cheap a** $6 potentiometer I'm using for feedback to the Kangaroo x2 for my waist rotation motor took a crap. At least I'm pretty sure it's the Pot. I takes a couple tries to get a decent Auto tune even through the DEScribe PC Software. Then when a command is sent the motor only goes a few inches and the Kangaroo shuts down and blinks an error code saying there is a control malfunction. What really tells me it's in my feedback is that while this is happening on Channel 1 my other motor on Channel 2 is accepting commands just fine. Here's my set up as it's built now:

User-inserted image

I'm not even going to bother testing the pot as the shaft where I have the gear attached even feels loose. I'm going to bite the bullet and go ahead and replace the entire motor with the one Tony AKA @Toymaker suggests and shows in the first vid of this thread. I've decided to get the X2 speed model with the high resolution encoder already attached to the bottom. It has less Rated Torque(in.oz.) at 150 so I hope it will be strong enough. My waist spins real easy so I'm not really too worried. The one Tony points to only is 45 rpm and I don't think it will be fast enough for some of the animation I have planned.

Here's the link and a pic as suggested by Tony but the faster motor:

REX Drive Motor w/ Optical Encoder 2X Speed Item #: MR200

User-inserted image

I only have one question; I ordered an encoder cable from the same place. In fact it's the only one they sell. I hope it's the right one. If not could I get a suggestion where it get the proper one that will fit:

HEDS 5500 Encoder Cable Item #: 146

Thanks! Dave
United Kingdom
Dave, that cable should be ok, but there is no picture so I cannot, be sure. If it is not correct, I will make you a couple of cable/connectors and send then out to you by air mail so you get them quick.

I now have the fantastic V4, and I am well impressed! I am currently on a big project for my Toy Invention Company so I have not had a lot of time to play with the V4 yet, but I will be able to in a couple of weeks, so will then be able to do those Kangaroo scripts for you.

Welcome James to the forum who I believe is part of the Dimension Engineering tech team.

That's awesome Tony! I hope you get to play with the V4 soon . Your going to love it! I'll let you know if I need help with the cable but once I get the motor I should be able to figure it out. I just wanted to get a jump on it just in case someone knew I had the wrong one on order. Do you know if this is a 0.1 connection size or smaller?
Awesome Tony.... I appreciate it too.... And James, welcome.... awesome to have you here... Help us with the Kangaroo, and I am sure this forum will sell you a boat load....
United Kingdom
Dave, I am using the MR300 which has twice the torque but lower RPM than the MR200. These motors move the EZ:1 and EZ:2 robots around with no trouble.