Welcome to Synthiam!

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

Asked — Edited
Resolved Resolved by irobot58!

Turning Off A Asabertooth

Hi gang,

I've been struggling and making slow progress with my rewiring of the DC motors in my B9. I decided to replace all my Pololu H-Bridges with a Sabertooth / Kangaroo combo. The Pololu H-Bridges were very good and did the job but I thought the Sabertooth / Kangaroo combo would make for a simpler setup with easier coding and better performance. well, that's all still to be seen. The coding is easier once you get to understand the serial commands and being able to use the servo controls and scripts in EZ Builder is awesome. However the setup really wasn't that much simpler. I'm still having some issues with error codes at startup that stops any signal input. I'm working with Dimension Engineering to resolve this. I think it may be the potentiometer I'm using. Also I needed to add a battery for some place for the Sabertooth to dump the regenerative power, diodes to keep from back feeding the power supply from the regenerative power and I still need some way to shut off the new boards.

This brings me to my question; How are those of you using the Sabertooth turning off your controller? The battery keeps the board energized and you cant disconnect it because if done the Sabertooth has no place to dump the regenerative power. If the motor is moved by hand the Sabertooth can damage itself if it cant put the regenerative power back into the battery. I can think of a few ways and all will need a switch of some kind and a blocking diode. Something like this:

User-inserted image

I'm powering the boards from a 24vdc switching power supply with a 24vdc battery paralleled between it and the boards for the regenerative power to be dumped into.

Different ways to switch I can think of are:

1). A manual switch with a diode across it. This wont work as I don't want to mess with a different off switch for my DC current and my B9 is powered from wall AC current through converters.

2). A low side TIP122 switching circuit operated from EZB and startup scripts from EZ Builder. The Sabertooth is self powered from the 24v power input that supply's the motor voltage. If done like this I'd need to totally isolate all neutral and common grounds going to the Sabertooth / Kangaroo boards and open them at the TIP122 switch. If I try to switch the neutral at just the Sabertooth power input point I still have a neutral feed on the other side through the Kangaroo X2 Where the EZB signal input is attached.

3). A high side switching circuit. I could build one and just switch the hot lead feeding the power input of the Sabertooth and this would turn off both boards. I'd need to use Power MOSFET as the TIP122 may not handle the amperage max I'd be pulling. The TIP122 is only rated for 5 amps and I may pull more then that at times. The Power MOSFET would be able to handle that load. I'm still trying to understand this high side switching circuit. I'm not really sure if I will only need one MOSFET in the circuit or if I need a pre-driver to drive the MOSFET. I've seen drawing of it donn both ways:

User-inserted image

User-inserted image

Still not sure which is the proper circuit to use and if I use the pre driver one what values to use. I still need more research to find out. Any recommendations? I'd love to find a High side switch that EZB could control. I did find one at SparkFun but it controlled 4 lines, was a shield type board and cost $60.

4). I could switch the high side with a relay triggered with a Low Side Tip122 switching. This seems redundant and I don't like the long term problems that may arise using a relay. Manly that the contacts on a relay may pit and fail and the relay would be energized all the while the robot is powered up.

EDIT: Here's the final circuit that works nicely. I've placed diodes in circuit to both let the Sabertooth dump regenerative power back into the battery and also to keep the Sabertooth from back feeding the power supply. Without these diodes the Sabertooth and power supply would stay powered up from the battery after the robot was turned off. Also if the Sabertooth stayed powered after system shutdown the Kangaroo X2 would return errors and not run when the robot was started up again. Seems that if I shutdown near a limit switch and let the Sabertooth/Kangaroo slowly drain the power out of the battery till it was dead these errors would happen. It was very frustrating. Now when the EZB disconnects from EZ Builder this switching circuit will open and shut down the Sabertooth/Kangaroo and the diodes will act as described above. Here's my circiut:

User-inserted image

I used the resisters listed. With the following Power MOSFET driver and Transistor pre-driver I'm good up to 55v and 19 amps:
Q2 Transistor pre-drive: 2N3904
Sub the Motor in the drawing for the Sabertooth.

Anyway, sorry for the long post. I'd welcome any thoughts or ideas.

Thanks, Dave


Power Down will stop trying to control position/speed and instead tell the Sabertooth to use 0% motor power.

Start does everything Power Down does, and also clears error conditions and (when using quadrature encoders) resets the ticks so the current position is the 0 (or the machine zero, if you've set one). This last bit is because a control error can be caused by a disconnected or swamped feedback line.

For the motor fighting you, is holding position afterwards undesirable for your application? The normal behavior is fairly servo-like but also for plays well with a robot on a hill slope.

@James, thanks so much for the advice and visiting our fourm. You seem very knowledgeable about these fine boards. Are you with DE? If so we're very fortunate to have you here. We have been discussing both the kangaroo and the Sabertooth a lot here these past few months. I'm sure if we can get one of our bots here to use them successfully with code examples and forum support I'm sure more people will use them. I'm using two Sabertooth 2x12 in my full size Lost in Space B9 and each has a Kangaroo. I really like them and how they work. My only real complaint is the lack of speed ramping when set in position mode and using Simple Serial. I was told by DE support that this feature may be available by this fall.

Anyway, thanks again for the explanation of the commands. That's exactly what I needed to know. The reason I need to send a Start command after each position move is because the motors humm and sometimes rock back and forth when the move is over. This stops when I send either of these two commands.
@Dave, yes, Kangaroo's my baby.:)

You might try upping the Position Deadband in DEScribe's Control tab if you are getting rattle when idle. With quadrature feedback, that's usually caused by cogging in the motor: some motors will stick at low speed, so if Kangaroo is off by a tick or two, the power needed to unstick the motor is also enough power to push it far past.

Slightly upping Position Deadband can make that disappear (for most systems it doesn't take much). By default, Kangaroo tries to (and on many systems can and does) get within 1 quadrature tick in Independent mode and 2 quadrature ticks in Mixed mode.

Position mode ramping is definitely on the agenda. If you find any other features that would be useful, oversights in documentation, etc. any kind of feedback I'm all ears.

@James, this is awesome info that I really needed. Thanks so much. It's great to have you here and willing to advise.

I do have a couple other thoughts about the kangaroo but they're mostly about support. While these are awesome control boards I think the user and setup manual could be a little more user friendly for the less advanced users. Mainly the use of the DESCRIBE software and a simpler to understand explanation of each section and what is and isn't effected in each mode.

Also a user forum like we have here where other users can help each other would be great.

Thanks again for the help and listening. I can't wait to get the ramping feature you mentioned!
well did the ramping feature ever get included, Dave do you have code for it?
Also connecting cables for the Kangaroo shoul be offered with them or at least suggested to buy.
After teach mode wouldnt work in RC mode support said to use DEscibe then I found out I needed a cable soi had to wait for mailwhen I should have already had it *confused*
Hi Reed,

A few years ago I talked directly to dimension engineering and requested that they look into adding the ramping feature into the position feature of the Kangaroo. Up till then the only way to get ramping effect was with the Velocity setting. They said that they already had a bata program that their engineers were using that has a ramping feature. hey actually called it Acceleration control. They sent me a copy and it worked wonderfully. I'm not sure but I think they have started including it in the latest firmware versions. I haven't upgraded because it works for me as is. I fully advice that you learn the DEscibe software as it's the best way to set up your Kangaroo. I prefer running the auto tune directly from inside DEscibe. You can better visually see what is happening and better set up the way it tunes.

As far as EZ Builder and your B9, I understand being overwhelmed. Once you start playing around with EZ Builder and start making things move it will all start to come together. I suggest that you download other people's projects and script examples and see how the scripts are written, structured and can interact with each other. In EZ Builder go to the top menu bar and under the File tab find the EZ Cloud App Store section, then click on Open. That will take you to a page where you can search and download a ton of examples. On the right side of the screen is where you can search many kinds of ways. I have one of my older B9 projects in there with most of my working scripts. Sadly my project got way to large to save in their cloud service and I can't save there anymore. I'll send it to you privately in a different email. It probably has everything you'll need as far as scripting for your B9 but be warned, It's very disorganized and rambling. I have many scripts that start and run other scripts or are dependent on one or two other scripts. They are sometimes they are hard to follow. I've tried to add directions in each script as to what each does but sometime I've changed the scripts and not updated the notes. I get to excited and move on. It won't work to control your B9 but it will give you an idea how I control mine.

I also suggest that you read as many lessons and watch all the videos you can on the EZ Robot website. They even have video lessons now. I know it seems like most are geared towards their robot but they will really help you understand the entire platform and how it works. A few hours of studying these will really payoff when you start trying to control your robot with EZ Builder. Also don't hesitate to ask questions on this forum. The guys usually are very helpful.

OK, not that the business is done I wish you luck and much fun. It's really thrilling when your robot starts moving around. Let me know if you need some help with the Roo. It can be a bugger until you get a successful tune. One suggestion, you need to have everything in the motor circuit correct and connected properly, dip switches set right and with the right power supplied or it wont start. It needs a feedback device with a doubt or no go. A simple pot will work but a encoder built onto the of a motor really shines. I like the Servocity gear motors with the encoders already mounted. That's what I'm using on my radar and it works like a charm.

Let me know if you need anything and have fun!