Sabertooth problem - sending power to motors before arduino is ready

Hi!

I got a sabertooth 2x60 few months ago. and now it's the moment to go full scale with it.

The setup: Sabertooth Arduino 24V battery 2 motors 2 RC filters

Arduino powered from Sabertooth 5V and boosted to 9V, so arduino gets 9V. I really needed this because arduino is sending PWM to the sabertooth, and the power was too low to send correct voltage to PWM. Now it's ok.

The problem: So, I have the motors and arduino powered from sabertooth. When I close the circuit, without usb connected, the motors go full speed in reverse no matter the code of arduino. When I do the same but with usb connected, all works fine.

So, it works ok if arduino is already powered when sabertooth starts. I tried to start it without usb and without motors connected and after few secconds (after the sabertooth's fan stoped) I connected the motors and it work fine.

The sabertooth feels 0V on PWM pins because arduino is not ready and not sending anyting yet. If this happens, even if arduino becomes ready, the PWM voltage is not read by the sabertooth anymore. So the motors remain full speed in reverse.

This is strange. If I disconnect the motors and power it, it receives the right voltage.

My DIP switches setup: http://www.dimensionengineering.com/datasheets/SabertoothDIPWizard/nonlithium/analog/independent/linear.jpg

Any idea how to solve this?

I think there were a couple similar threads recently on similar topics. Try searching for them, they may help your problems. I think, don't quote me, it was the pin needed to be pullup or pulldown or something. I don't have much help beyond that.

If the sabertooth 5v is a reasonably well-regulated 5v then connect that to the Arduino's 5v pin. You don't need to boost it up to take it back down again.

The Arduino starts up with all pins floating as inputs. You can put a resistor on any pin (except Reset) to drag it high or low during this microsecond startup glitch. Just make the resistor a value which can control the sabertooth inputs but not so strong that it can't be pulled down by the Arduino's maximum 20mA outputs. 10K is usually a good starting point.