Asked — Edited

Sabertooth Motor Controller Dip Switches

Hey all

I am attempting to hook up my Sabertooth 2x25 but am a little confused here. Have read two different places here how to connect?

https://synthiam.com/Tutorials/Help.aspx?id=173

Says to hookup as "Simplified Serial Mode at 38400 baud rate"

While

https://synthiam.com/Tutorials/Hardware.aspx?id=26

Says "EZ-Robot suggests connect Sabertooth Motor Controllers in R/C mode. This allows the user to control the motor speed and direction with the Modified servo Movement Panel. "

I believe that the second link is what is needed as speed control is a must. I don't want to use a joystick just the EZ-board. Any thoughts here?

Herr


ARC Pro

Upgrade to ARC Pro

Become a Synthiam ARC Pro subscriber to unleash the power of easy and powerful robot programming

#1  

The instructions to use serial mode are more recent, and DJ posted answers as recently as 2/28 with that instruction. I haven't hooked mine up yet, so I am only able to comment on what I have read here. Searching for Sabertooth gives lots of interesting posts.

Alan

#2  

Thanks for the reply

I have been messing with it for most of the night and can't figure a way to get speed control using the serial mode. It's getting late here, 1:30 am lol, so tomorrow is another day. Maybe I'll crack it in my sleep ... lol

Herr

#3  

Speed control is going to be important to me too. Hopefully someone else will chime in here with advise. I know @rgordon has had success with his 2x25.

Alan

#4  

I just read the 2x25 manual from the dimension engineering site. It is a little slim on details, but if I am reading it correctly, packetized serial allows speed control, but simplified serial is either full on or full off, but nothing in between. It looks like if we need speed control, connecting it in R/C mode and using the modified servo panel rather than connecting it in serial mode with the H-bridge panel is the way to go.

edit... I may have mis-read. It may support speed control, it just isn't as clear as it is with packetized serial. They give values for full reverse, stop, and full on, but don't say one way or another for values between them. They could be speed values.

Still hoping DJ or someone else can confirm.

Alan

#5  

Well I messed with the numbers in the modified servo control trying to get it up and running but was never able to make it work correctly. One time the motor would go forward and one time it would go backwards, never could zero it in!

Hopefully someone that has gotten it to work will see this and clear up some things.

Herr

#6  

I used two Sabertooth 2x12 controllers for my ARMadeus project, one in RC mode the other in simplified serial mode, to control 4 linear actuators. I used the right joystick of my game controller to operate 2 of the linear actuators, allowing both speed and direction control. The other two actuators were controlled in the serial mode by using game pad buttons. A SendSerial command string was assigned to each button press, using 4 buttons total. Any speed and direction can be assigned to the button by sending the appropriate byte value. I hope this helps.

Jim

#7  

Thanks Jim for the reply.

I hope some others can be helped out from your post but for me I'm not wanting to use any joystick or game pad. I'm sure there is a way to do this but just can't find it.

Herr

#8  

@Herr Ball,

I'm using the HBridge/Sabertooth Serial Movement Panel. A screen shot of its config is attached. These values as far as left/right and fwd/rev could be different on your Sabertooth controller depending on how you connected the motor wires.

Left Motor = 1 to 127 (Full Rev = 1, Stop = 64, Full Fwd = 127) Right Motor = 128 to 255 (Full Rev = 128, Stop = 192, Full Fwd = 255)

Sabertooth Dip Switches, 1, 3 & 6 set ON (Mode 3, 38,400 Baud Simple Serial) EZ-B D8 signal wire to Sabertooth S1 input

User-inserted image

Also see this thread about how I get it to switch between EZ-B control and R/C control

Dip Switch Configurator Circuit

#9  

@rgordon

The values you set allow different speed settings, but not active speed control, or are those the max settings, and the Movement Panel adjusts the speed between those values as needed?

@Herr Ball and I are both looking for how to adjust the speed when using the 2x25.

Alan

#10  

Jim, it is good to know that the intermediate values between stopped and max do allow for speed adjustment. May need to do my navigation through scripting instead of Movement Panel if the H-bridge panel doesn't allow for speed control, but at least it is doable.

Alan

#11  

You can adjust the values to control speed but only when you bring up the config screen and type them in. Say for instance to change the speed of the left motor (forward) choose any value between 64 and 127. ......64 being full stop and 127 is full speed.

I have not tried using script to control these values but I would definitely want to learn if someone could give an example or point me to one. I am at the point now where I am needing to learn how to write custom scripts.

I also wanted to be able to take over remote control of the robot with my Spektrum DX6 handheld transmitter or swap back to EZ control on the fly. See the thread I mentioned earlier for info on that.

#12  

Thanks @rgordon. I saw your other thread, so I knew you have had some success with the Sabertooth. I think I need to install ARC on my work computer just so I can play with scripts and stuff when I have free time - although today, I seem to just be wasting time talking to you guys instead of getting work done, so maybe that isn't such a good plan :)

I really like your idea of being able to switch between robot and RC control. I plan to use my Android phone as a remote, through ARC, but it has limited battery life, so having an alternative would be good (I am also going to have a wired joystick, foot pegs, and handholds, so I can ride the robot if I want, so I don't NEED 2 remote options, but still, like the idea a lot).

Alan

#13  

@rgordon

I followed your example/diagram on page 1 and things are looking good so far:) Not finished yet but I now have a good idea what needs to be done. Forward/reverse are working great and now trying to get the right/left turn down, a little tricky. Of course the robot is sitting up off the floor as it would not be pretty if this thing gets loose:) I figure once the weight of the robot gets put on the wheels more tweaking will be needed. I am using electric scooter motors and they can really do some moving in top speed ... lol I'll let you know how things turn out when done.

Thanks to you and thetechguru for the help, GREATLY grateful :)

Herr

#14  

@Herr Ball,

Good idea to have some kind of Panic switch or Kill switch when you do set him on the floor.

Yeah I had to experiment with the the FWD and REV values to get the robot to move in a straight line. I also came up with different values for example:

  1. full speed FWD, slow REV, and full speed turns.
  2. full speed FWD, slow REV, and slow turns.
  3. medium speed FWD, slow REV, and medium speed turns.

yada...yada...yada.... you get the idea.

Anyway, I face the same problem you guys do. I want the robot to be able to vary its speed as needed depending on its current environment and/or obstacle encounters. I am wanting to start learning how to use script and hope that there is a way to do this. I will be needing this soon when I start experimenting with my battery charger docking project.

Battery Charger Docking Project

#15  

I have been looking at more of the controls in EZ-B and it looks like the Custom Movement Panel may do exactly what we need. I will be testing it soon.

Forward( [speed], [milliSeconds] ) Using a Movement Panel Control, this will start your robot in the Forward direction. Optionally, you can provide the speed and/or number of milliseconds to move. You will require at least one Movement Panel to be configured within the project. This function will control that movement panel. Speed is a number between 0 and 255 Example: Forward() Example: Forward(200) Example: Forward(255, 5000)

Reverse( [speed], [milliSeconds] ) Using a Movement Panel Control, this will start your robot in the Reverse direction. Optionally, you can provide the speed and/or number of milliseconds to move. You will require at least one Movement Panel to be configured within the project. This function will control that movement panel. Speed is a number between 0 and 255 Example: Reverse() Example: Reverse(200) Example: Reverse(255, 5000)

Stop() Using Movement Panel Control, this will stop your robot. You will require at least one Movement Panel to be configured within the project. This function will control a movement panel. Example: Stop()

Left( [speed], [milliSeconds] ) Using a Movement Panel Control, this will turn your robot left. You will require at least one Movement Panel to be configured within the project. This function will control that movement panel. Optionally, you can specify the speed and/or number of milliseconds to turn. Speed is a number between 0 and 255 Example #1: Left() Example #2: Left(200) Example #2: Left(200, 5000)

Right( [speed], [milliSeconds] ) Using a Movement Panel Control, this will turn your robot right. You will require at least one Movement Panel to be configured within the project. This function will control that movement panel. Optionally, you can specify the speed and/or number of milliseconds to turn. Speed is a number between 0 and 255 Example #1: Right() Example #2: Right(200) Example #2: Right(200, 5000)

#16  

It would be nice to be able to change the values, in the Sabertooth Serial Movement Panel with a script. That would do for adjustable speed, right? ex. Robot move fast, change the values to increase/decrease numbers to preset values or robot move slow to decrease/increase the values to preset values. Do you think that would work? Wonder if DJ could do that and how hard/time consuming that would be?