Asked
Resolved Resolved by Athena!

Sabertooth Motor Controller For Chassis

I have a few questions about using a 2-wheel outdoor chassis with DC motors (not 360-degree servos) and the Sabertooth motor controller.

Is the Sabertooth Movement Panel in ARC suitable for controlling a chassis with two DC motors (differential drive)?

What is the difference between the Sabertooth skill with Kangaroo and the one without Kangaroo? (As far as I understand, Kangaroo adds closed-loop speed/position control using encoders.)

For my understanding: If a chassis has 4 DC motors, controlling it with one Sabertooth is only possible by wiring motors in parallel (left pair + right pair). And since ARC supports only one Movement Panel, using two Sabertooth controllers is not recommended. Is this correct?

Communication is done directly from the EZ-B to the Sabertooth, so I don’t need a PC COM port, right?

My goal is to use an outdoor robot chassis with a payload of around 10 kg, using differential drive.

Thank you for your help.


Related Hardware EZ-B v4

ARC Pro

Upgrade to ARC Pro

Join the ARC Pro community and gain access to a wealth of resources and support, ensuring your robot's success.

PRO
Canada
#1  

Hi - I’m Athena. Thanks for the detailed info. Good news: your plan is doable. Below I’ll answer each question, give practical wiring/configuration advice, and show options if you have 4 drive motors. I’ll also include stepbystep ARC configuration tips (how to use the kebab menu) and links to reference docs.

Summary answers

  • Yes - the Sabertooth Movement Panel in ARC is suitable for controlling a 2wheel differential drive chassis with DC motors (not continuousrotation servos). Use Simplified Serial or a UART option in the skill to talk from the EZB to the Sabertooth.
  • Difference between Sabertooth vs Sabertooth + Kangaroo: Kangaroo adds closedloop control (encoder feedback, velocity/position control, autotune, smoother speed control). The plain Sabertooth skill is openloop (you command motor speed, no encoder feedback).
  • Four motors: you can wire left pair and right pair in parallel to a single Sabertooth channel, but that is only recommended if the Sabertooth channel and wiring can handle the combined current and the motors behave similarly. ARC only supports one Movement Panel per project, so using two separate Sabertooth controllers requires either:
    • wiring motor pairs in parallel to a single Sabertooth (or using a single highercurrent Sabertooth), or
    • building/adding a custom Movement Panel skill that sends commands to both Sabertooths (this is how you’d support two controllers in one ARC project).
  • Communication: Yes - connect EZB directly to the Sabertooth over serial (hardware UART or software serial on an EZB digital pin). You do NOT need the PC COM option unless you want the PC to directly talk to the Sabertooth.

Details, recommendations and steps

  1. Suitability for a 2wheel differential DC chassis
  • The Sabertooth Movement Panel in ARC is designed for Sabertooth motor drivers and works with differential drive (left/right channels).
  • Use Simplified Serial mode on the Sabertooth (or compatible packet mode if you need addressing) and match the baud rate in ARC.
  • Make sure the Sabertooth model you pick can supply the continuous and peak current required by your motors with a safety margin.
  1. Sabertooth vs Sabertooth + Kangaroo
  • Sabertooth (without Kangaroo):
    • Openloop control. ARC sends speed commands; Sabertooth drives motors accordingly.
    • No encoder feedback inside the Sabertooth; speed depends on motor load and battery voltage.
  • Sabertooth + Kangaroo:
    • Kangaroo module provides closedloop control using wheel encoders (velocity and position control, more precise speed/stop behavior, traction compensation).
    • ARC’s Kangaroo Movement Panel lets you configure encoder counts, max speeds, direction, autotune, etc.
    • Recommended if you need accurate odometry, consistent speeds under changing loads, or trajectory control.
  1. Four motors (two per side) - wiring and ARC implications Options:
  1. Wire motors in parallel per side to a single Sabertooth channel
  • Pros: Simple; one Sabertooth Movement Panel controls both sides (works with ARC’s single Movement Panel rule).
  • Cons: Motors must be matched closely (same type/gear ratio and wear). Combined stall/continuous current can be high - Sabertooth must be rated to handle sum of currents. Ensure wiring gauge, fuses, and battery sizing are correct.
  1. Use a single highercurrent Sabertooth model (one channel per side but rated for required amps)
  • If you can get a Sabertooth model that supports the required current for each side (or a single channel high current), that’s ideal.
  1. Use two Sabertooths (one per motor pair)
  • ARC can only register one Movement Panel per project by default. To use two controllers you have two choices:
    1. Create a custom Movement Panel skill (Project -> Add robot skill -> Movement Panels -> Custom) that issues serial commands to both Sabertooth controllers (this keeps a single Movement Panel in ARC that proxies to both controllers).
    2. Use a single physical controller if possible (preferred).
  • Don’t assume you can add two separate Sabertooth Movement Panel skills and have ARC treat them both as the robot Movement Panel - ARC expects only one Movement Panel to be active for global movement commands.
  1. Wiring highlights (physical)
  • Always share ground between EZB and Sabertooth even if they use different battery supplies.
  • For Simplified Serial using EZB digital pin: connect EZB signal pin to S1 on Sabertooth and common ground.
  • For hardware UART (preferred if available): use EZB UART TX to Sabertooth RX, ground shared.
  • Power wiring: use correct gauge wires for motor current, fuses or breakers, and ensure the Sabertooth can handle continuous/peak currents.
  • Dip switches: set your Sabertooth DIP switches for Simplified Serial or packetized serial as needed. The recommended Simplified Serial baud in ARC docs is 38400 typically (but match whatever DIP you set).
  • If using Kangaroo - configure Kangaroo DIP switches per the Kangaroo docs (digital input, quadrature feedback, velocity control, independent mode), and connect encoders to the Kangaroo inputs.
  1. ARC configuration steps (kebab menu / skill settings)
  • Add the Sabertooth Movement Panel to your project:
    • Project -> Add robot skill -> Movement Panels -> Sabertooth Movement Panel
  • Open the skill settings: click the kebab menu (three lines) topright of that robot skill window -> Settings
  • In Settings:
    • Communication: choose Software Serial (select digital port + baud) or Hardware UART (select UART and baud). Hardware UART preferred if available.
    • Baud rate: match Sabertooth DIP switch setting (38400 recommended).
    • For Kangaroo skill: open its kebab menu -> Settings and configure encoder counts, max speeds, autotune, and Kangaroo DIP switches per the manual.
  • Save and test: Use the skill movement buttons (Forward, Left, Right, Stop) to verify motors respond.

Useful links

Best practices for your 10 kg payload

  • Select motors and a Sabertooth whose continuous current rating comfortably exceeds motor continuous current under expected load. Consider inrush/stall current (peak).
  • Use encoders + Kangaroo if you want consistent speed or odometry on uneven terrain or variable load.
  • Prefer a single Sabertooth (or one highcurrent controller) per drive axis to minimize complexity.
  • Use appropriate battery capacity and voltage for motors and Sabertooth ratings, and protect battery with fuses/breakers.

Next steps / What I need from you to help further Please share:

  • Motor specs (voltage, continuous and stall current, motor type or part number)
  • Which Sabertooth model you plan to use (2x25, 2x60, single channel, etc.)
  • Whether you have encoders on the motors (or plan to add them)
  • Whether you prefer hardware UART on the EZB or software serial on digital pins

With that I can:

  • Recommend specific Sabertooth model/current sizing and wiring gauge
  • Tell you whether wiring motors in parallel is feasible or whether you should use two controllers
  • Provide exact ARC settings (baud, ports) and a small JavaScript example to send movement commands if you want custom control

If you want, I can also walk you through setting the skill’s settings via the kebab menu stepbystep for your exact wiring and Sabertooth model. Which motor and Sabertooth model are you using?


I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
PRO
Germany
#2  

I will use the Sabertooth Dual 32A. I’ve seen several people in the community using it, and it seems to work well with ARC.

I will use only two motorized wheels, not four - simpler and easier to control. No encoders, just forward, reverse, left, right, and speed control.

The motors will probably be MG513 DC gear motors, but this may change.

Right now, I am looking for a chassis platform with motors and wheels, but if I can’t find a suitable one, I may build my own.

PRO
Canada
#3  

Great - the Sabertooth 2x32A is a solid choice for a 2-wheel differential outdoor chassis. Below I’ll confirm suitability, give wiring and safety recommendations, show exact ARC configuration steps (kebab menu), and include a short JavaScript test script you can use in ARC. I’ll also list things I need from you if you want more tailored guidance.

Summary

  • Yes - Sabertooth 2x32A + Sabertooth Movement Panel skill works well for a two-motor differential drive setup (one motor per side).
  • No encoders is fine: use the plain Sabertooth skill (open-loop). Kangaroo is only needed if you want closed-loop encoder-based velocity/position control.
  • Connect EZ-B v4 directly to Sabertooth (hardware UART preferred). PC COM is not required.
  • Start testing at low speed, single motor at a time, and ensure wiring, fuses, and battery sizing are correct.

Hardware wiring & power (practical)

  • Share ground: Always join the EZ-B ground with the Sabertooth ground.
  • Serial signal:
    • Hardware UART recommended: use EZ-B UART TX Sabertooth S1 (signal). Use corresponding UART RX/TX mapping in ARC settings.
    • Software Serial is OK only if you don’t have a free UART.
  • Motor wiring: one motor per Sabertooth channel (M1 left, M2 right). Since you only have two motors, no parallel wiring is needed.
  • Battery & current:
    • Sabertooth 2x32A can handle up to ~32 A per channel (check Dimension Engineering datasheet for exact limits).
    • Choose a battery voltage that matches your MG513 motor rated voltage and the Sabertooth input rating. If using higher voltage, ensure motors and Sabertooth support it.
    • Provide margin for stall/inrush current. Add fuses or circuit breakers sized slightly above expected continuous current but below destructive currents.
    • Use proper wire gauge: for example, 14-12 AWG for higher currents, smaller gauge only for low currents. Larger currents require thicker wire.
  • Cooling: Sabertooth can get hot under sustained loads - plan airflow or a heatsink.
  • DIP switches: set Sabertooth to Simplified Serial (or packet) and the baud rate you’ll set in ARC (38400 is commonly used). Use the Sabertooth DIP wizard on Dimension Engineering’s site to generate settings if you need help.

Why choose plain Sabertooth vs Sabertooth + Kangaroo

  • Plain Sabertooth:
    • Simpler open-loop control: you command speed, Sabertooth applies voltage/current.
    • Good for many outdoor robots where exact closed-loop speed/position isn’t required.
  • Sabertooth + Kangaroo:
    • Adds encoder feedback, closed-loop speed and position control, autotuning, and better consistency with changing loads or slopes.
    • Use Kangaroo if you need reliable odometry, precise speed control, or automated tuning for traction-heavy outdoor use.

ARC configuration (step-by-step using the kebab menu)

  1. Add the movement skill:
    • Project Add robot skill Movement Panels Sabertooth Movement Panel.
  2. Open the Sabertooth movement skill settings:
    • Click the kebab (three lines) on the skill title bar Settings.
  3. In Settings:
    • Communication: Check Hardware UART (preferred).
    • UART: select the UART number you’ll use (UART1 = D5/D6, UART2 = D18/D19 on EZ-B v4; the first UART is the hardware expansion port).
    • Baud Rate: set to the same baud as Sabertooth DIP switch (38400 recommended).
    • If you have to use a digital pin, check Software Serial and select the pin + baud.
  4. Save and apply.
  5. Test with the Movement Panel buttons (Forward/Left/Right/Stop) in the skill window at low speed first.
  6. If later you add Kangaroo, open its kebab menu Settings and configure encoders, autotune, and Kangaroo DIP switch mode per Kangaroo docs.

Basic safe test procedure

  1. Remove propellers (n/a) and make sure chassis is clear to move.
  2. Power Sabertooth with battery, power EZ-B.
  3. In ARC, open the Sabertooth movement panel.
  4. Set speed low (e.g., 10-20%).
  5. Press Forward - verify single motor operation, then Stop.
  6. Test Left/Right, then increase speed gradually.
  7. Monitor Sabertooth temperature and battery voltage under load.

JavaScript test (ARC scripting) Use this small script in ARC’s JavaScript scripting window to test simple forward/stop behavior. I’ll use the high-level movement commands that ARC movement panels respond to (Forward, Stop, etc.).

// Simple ARC JS movement test
// Move forward for 2 seconds, then stop.
// Speeds usually 0-255 (adjust to safe low value first).

print("Starting test: Forward 150 for 2 seconds");
Forward(150);    // request  Movement Panel to move forward at speed 150
sleep(2000);     // sleep uses milliseconds
Stop();          // stop movement
print("Test complete");

Notes:

  • If Forward(speed) doesn’t behave with your movement panel, use the Sabertooth panel sliders/buttons or SetSpeedLeft()/SetSpeedRight() if your panel supports them. If you want, tell me and I’ll provide alternate code.
  • Use small speed values until you confirm wiring and behavior.

Useful links

Recommendations for your stated setup (two motorized wheels, ~10 kg payload)

  • Sabertooth 2x32A is appropriate if the continuous current per motor under normal load is well below 32A, and you size fuses/wiring appropriately.
  • MG513 motor - check motor rated voltage and continuous/ stall currents. If stall current is high, ensure Sabertooth and battery can handle spikes, or add current limiting / soft-start options.
  • Battery capacity: choose capacity (Ah) for your expected runtime and peak current capability for the motors. LiPo/Li-Ion or sealed lead acid - make sure voltage matches motor and Sabertooth input.
  • Because you’re outdoors and carrying ~10 kg, consider adding thermal management for Sabertooth and using Kangaroo if you later require stable speeds on inclines/rough terrain.

What I need from you to help further

  • Motor specs: nominal voltage, continuous current, stall current (MG513 datasheet if available).
  • Battery voltage you plan to use.
  • Will you use EZ-B hardware UART or a software serial pin?
  • Do you want a wiring diagram for the specific EZ-B UART pins Sabertooth S1?

If you share those, I’ll:

  • Verify Sabertooth 2x32A sizing for your motors.
  • Recommend wire gauge, fuse/breaker values, and battery capacity.
  • Provide exact ARC kebab-menu settings and an alternate JavaScript snippet if needed.

Would you like me to walk through setting the Sabertooth Movement Panel settings live (kebab menu) for the UART you plan to use?


I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
PRO
Canada
#5  

You’re welcome - glad it helped!

If you want, I can keep helping. Quick checklist / next steps you might find useful right now:

  • Confirm motor specs (voltage, continuous & stall current) so I can verify Sabertooth 2x32A sizing.
  • Pick battery voltage (match motor & Sabertooth input).
  • Decide which EZ-B UART to use (UART1 = D5/D6, UART2 = D18/D19, or software serial on any digital pin).
  • Plan fusing/breakers for each motor channel and choose wire gauge based on max current.
  • Set Sabertooth DIP switches to Simplified Serial (38400 recommended) and match ARC baud.
  • Test with low speeds first and monitor Sabertooth temperature.

If you want, I can:

  • Provide a wiring diagram and recommended wire gauge & fuse values once you give motor and battery specs.
  • Give exact ARC kebab-menu settings for your chosen EZ-B UART (step-by-step).
  • Provide a short JavaScript test script or custom script to run in ARC for your setup.

Which would you like next? If wiring help, please share motor voltage and current (or motor part datasheet) and which EZ-B UART or digital pin you’ll use.


I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.