Trouble with Sabertooth Dual Motor Control & Basic Atom

I am using Bot Board II with Basic Atom (I also have a Basic Atom Pro).
I hooked up a power supply to the S1 and S2 pins, separately.
With 0.0 VDC, I get full speed motor rotation.
With 2.5 VDC, the motor stops.
With 5.0 VDC, I get full speed in the other direction, with smooth speed control in between.
I presume this means the motor controller is working fine.
My problem is that I cannot find a signal or a way to get 0 thru 5 volts to the control pins for S1 and S2.
I’ve tried bit, byte and word using a loop to send all values.
I’ve tried sending PWM and HPWM as shown in the Atom manual.
The motors start at fiull speed when I load a program. (I want them to be stopped).
My efforts above gave me some combinations that turned the motors, but nothing that matched the smooth response I get from straight 0 to 5 volts.
What am I doing wrong?
How do I send 0, 1.5, 2.5, 4.0, 5.0 volts, etc. to an output pin that will work the motors?

What you are describing is a digital to analog converter. It’s a hardware device that converts a digital value to an analog voltage.

You really don’t want to try and control the Sabertooth with the 0-5vdc signal from a microcontroller. There are better ways. We use the pulsout command to generate the 1 to 2mS signals that it can use. Check out this tutorial for the A4WD1 rover.
lynxmotion.com/images/html/build135.htm

I checked your link. My version of the Sabertooth is slightly different than the one shown. I have an S1 and S2 lead where yours has Ch1 and Ch2. I presume they will be comparable.

I have a two-left, two-right, 4 motor setup (Lynxmotion Terminator Sumo) and my hookup matches yours. I also have 4 GP2D12’s, so Your code should plug right in if I move my pins to match your code, or change the code to match my pins.

So, I was using pins 0-3 (I don’t have pins above 15) for sensor input and they test fine.