Sabertooth high power motor controller

52 views
Skip to first unread message

Russ Hall

unread,
Jan 13, 2026, 6:20:38 PMJan 13
to HomeBrew Robotics Club
Hello! Has anyone written a ROS2 control routine for this motor controller? I'm using the Github "Andino" software for a small robot and it uses ROS2 Control quite well, with Arduino and L298N. To modify this software for my big robot with wheelchair motors and the Sabertooth controller is now my challenge. Or maybe it would be easier to use another motor controller that already has ROS2 routines written for it?

Sergei Grichine

unread,
Jan 13, 2026, 11:14:03 PMJan 13
to hbrob...@googlegroups.com
Russ,

It looks like there is plenty of "sabertooth AND ros" code on GitHub:


But if you find a reliable codebase in Python - putting it in a ROS2 node is trivial. Making it reliable enough to safely drive a heavy robot... well, that may take a while.


I use IBT-2 H-bridges (https://www.amazon.com/HiLetgo-BTS7960-Driver-Arduino-Current/dp/B00WSN98DC) - not sure about your requirements for voltage and current.

Having total control of the controller's firmware is a great bonus, that's why the "Arduino way" is my first choice.

Best Regards,
-- Sergei


On Tue, Jan 13, 2026 at 5:20 PM Russ Hall <rll...@gmail.com> wrote:
Hello! Has anyone written a ROS2 control routine for this motor controller? I'm using the Github "Andino" software for a small robot and it uses ROS2 Control quite well, with Arduino and L298N. To modify this software for my big robot with wheelchair motors and the Sabertooth controller is now my challenge. Or maybe it would be easier to use another motor controller that already has ROS2 routines written for it?

--
You received this message because you are subscribed to the Google Groups "HomeBrew Robotics Club" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hbrobotics+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/hbrobotics/0149eb9e-eeb4-4422-ba58-cb23753c62b5n%40googlegroups.com.

Russ Hall

unread,
Jan 14, 2026, 5:25:47 PMJan 14
to HomeBrew Robotics Club
Thanks for the reply! Yes, I have used the BTS7690 controller, on a small Linorobot clone that worked well inside. When I went to install it in the big, outdoor robot, the controllers wouldn't behave properly at all. I tried different wiring, too. After that, I got the smaller 2x12 Sabertooth to use indoors for prototyping, and saved the 2x25 to use outdoors. I have written Python routines that use the simplified serial motor commands for Sabertooth and find that it works very well. However, to drive autonomously, integration with Ros2-control is required, and I haven't gotten that all figured out yet. For example, under Andino_firmware/src, there are 27 different files!

Sergei Grichine

unread,
Jan 14, 2026, 8:12:32 PMJan 14
to hbrob...@googlegroups.com
Russ,

well, you mentioned  ros2_control - some of us are big fans of it here ;-)

If you followed my links, the https://github.com/slgrobotics/diffdrive_arduino/blob/main/src/diffdrive_arduino.cpp is exactly where the ros2_control state and command interfaces are defined. 

In my case, I talk to Arduino - you can talk to Sabertooth or RoboClaw for that matter.


BTW, I am using those IBT_2 bridges eith Arduino as PID controller, on rather large outdoor robots, and don't have any problems. Links in my previous email.

I hope that helps.

Best Regards,
-- Sergei


Russ Hall

unread,
Jan 16, 2026, 2:53:07 PMJan 16
to HomeBrew Robotics Club
That looks interesting, thanks!
I did order the Pololu Dual G2 High-Power Motor Driver 24v18 Shield for Arduino. It should work with little change to the Andino code.

Sergei Grichine

unread,
Jan 16, 2026, 6:32:53 PMJan 16
to hbrob...@googlegroups.com

The https://www.pololu.com/product/2518 board looks interesting, although I prefer to stay away from dual custom H-bridges. When the magic gray smoke visits one side, the whole board becomes unusable—and by that time the model might be out of production.

That said, Russ, what you’re doing is very interesting to many of us here. Anything involving big motors definitely intrigues me as well - please keep us updated.

It would be great to learn more technical details, and to see photos or plans, if you don’t mind sharing.

Best Regards,
-- Sergei


Russ Hall

unread,
Jan 16, 2026, 7:15:57 PMJan 16
to HomeBrew Robotics Club

Sergei Grichine

unread,
Jan 16, 2026, 8:15:40 PMJan 16
to hbrob...@googlegroups.com
Wow, that's very cool! We need more outdoor robots here, large motors, scary tools. You are in a good company. I'm sure Michael Wimble and his squirrels are taking a note (as well as my 3000 psi suggestion, I hope)...

Spraying the weeds with AI is a great idea, although I prefer to cut the grass (i.e. weeds that I call grass here)  ;-)

Best Regards,
-- Sergei


Russ Hall

unread,
Jan 17, 2026, 7:21:33 PMJan 17
to HomeBrew Robotics Club
That's a lot of code! I'm wondering about the different .ino files, like under the models of Dragger. I don't see them working together, or don't see any header files called, linking them together?

Sergei Grichine

unread,
Jan 17, 2026, 8:12:01 PMJan 17
to hbrob...@googlegroups.com
Russ,

when it comes to Arduino-side code, each robot has its own folder. I try to merge them as practical, but that's not my highest priority:
When uploading to MCU from Arduino IDE you don't need any specific project files etc. - all .ino files in a folder are compiled and loaded together.

Best Regards,
-- Sergei


Russ Hall

unread,
Jan 18, 2026, 12:12:38 PMJan 18
to HomeBrew Robotics Club
Thanks! I'll try this with DraggerROS.
And I assume the micro-controller is ready to communicate with https://github.com/slgrobotics/diffdrive_arduino
Russ

Sergei Grichine

unread,
Jan 18, 2026, 2:07:06 PMJan 18
to hbrob...@googlegroups.com
"...And I assume the micro-controller is ready to communicate with https://github.com/slgrobotics/diffdrive_arduino "

Yes, all my Arduino "*Comm.ino" implement the same serial interface, and are compatible with that ROS2 driver. - see this one for example.

Ideally, the communication protocol should be improved (packets, checksums, sanity checks, safety guards, error handling) - but for now simple string commands work, and can be issued directly from Arduino IDE terminal for testing.

I am open for suggestions (issues, pull requests etc.)

Best Regards,
-- Sergei


Russ Hall

unread,
Jan 18, 2026, 8:19:13 PMJan 18
to HomeBrew Robotics Club
Excellent!
Reply all
Reply to author
Forward
0 new messages