What's the difference bewteen set_motor_speed and set_motor_dps

What the exact difference between “set_motor_speed” and “set_motor_dps” ?
does “set_motor_speed” just set the power out to the motors and “set_motor_dps” will regulate power out put to get an exact speed?

Sounds like your firmware and software is out of date. The new way is set_motor_power. It works identical, the name was just changed for clarification. Anyways set_motor_power sets the PWM power to the motors. More info on that is in @matt s pull request description

set_motor_dps sets the speed of the motor in Degrees per Second. If you plan on using set_motor_dps male sure you update the firmware and software, because there have been some serious improvements to set_motor_dps

1 Like

So I guess to answer your question yes you got the general idea on how it works.

I just got my BeickPi3 and first thing I did was a firmware update so have the latest version. I am just looking at the software examples that I installed a while ago

Also the BrickPi continues to run even after the Pi has terminated the program so I was assuming “reset_all()” would stand down the BrickPi but it still seems to be holding the motors in the postion that I set using “set_motor_position”

What’s the best way to stand down the brickPi at the end of my program??

OK, just checking. Should be up to date then.
That sometimes happens. I found if you flip the power switch on the BrickPi3 off or disconnect the battery it fixes it.

“reset_all()” actually worked it was the way I had my keyboard interrupt wasn’t running “reset_all()” bit of code but it is now so all good.

Also what ios the scale of the power/speed for BrickPi3?
On brickPi+ it seemed to be from 0 - 255 but on BrickPi3 it seems to be more like 0 - 100, is this correct?

Yes, that is correct.

This now explains why my robot behaved differently as the batteries became lower in charge

What do you exactly mean by that? It works?
I having trouble with a simple task : move the motor through n degrees at m dps.
Seems like set_motor_dps and set_motor_position should do the trick. In my experience, though, set_motor_dps does nothing, and set_motor_position moves the motor very fast , perhaps at maximum power.
You really need a function to set the motor speed (but not start it) and then ones to start and stop it, or move it to a position at that speed.