I have two robots built. Each has two 2×25 Sabertooth and I am using packet serial. The DIP addresses are set to 128 and 129 on each. Both are wired and set up identically. One works, the other does not.
It is controlled with an Arduino but this is not the issue as the working robot will work when hosted by either of the two Arduinos I am using. The issue is with the Sabertooth.
On the not working robot one Sabertooth will not function at all. The other will only send out 8.5V to the motors on some statements, 4.5V on others, and nothing on still other statements? Both Saberteeth are supplied with 12V. The same setup, program, and wiring works fine on the other.
I’ve tested continuity in the wires. Things are properly grounded. Status light is ON. All appears fine.
Any suggestions on what might be the issue with the Saberteeth?
It sounds like you’ve checked most of the things that could be problematic, but here are some suggestions:
EStop / S2 input — Make sure you are putting 5V on this. The Sabertooths won’t apply voltage to the motors unless it sees 5V here.
Autobaud — Make sure you are doing the autobaud sequence with the Sabertooths on boot up (send 0xAA). The Sabertooths automatically set their baud based on the baud rate of the received 0xAA. If you’re using the Arduino Sabertooth library, there is an autobaud() function that you can call in setup(). We pretty much only use these at 9600 baud.
Other than that, maybe try testing only one of the Sabertooths at a time on the not-working robot. I believe you can check the output voltage without the motors connected, so it could be worth testing that way to make sure the motors are not the issue.
If you bought these from us and think the Sabertooths are bad, we can arrange for replacements.