Can you make PivotPi work with the FS90R Servo Motor?

Hi,

I bought the Pivot Pi (connected to my GrovePi+) and three FS90R (https://www.seeedstudio.com/Analog-Continuous-Steering-Servo-FS90R-p-4723.html) servo motors.

None of them seem to be working/running and I suspect it may be due to them being continuous rotation motors unlike regular servos. The commands to turn on the LED work, and I also have an external power supply attached. I also ensured that they are plugged in properly (Brown is - and Orange is Signal).

I try to move the motors with the following command

pivotpi.angle_microseconds(1,15000)

but don’t detect any motion from the motors then or even when just plugging into powert

I was wondering if there is a workaround with these servos or if I’ll have to buy SG90 or MG90s servos which I hope are compatible with the PivotPi.

2 Likes

@prancy,

I think you lost us at “continuous servo”.

This is a case where you’re going to have to get the relevant data-sheets for the servos you’re using, and see what kind of commands they expect.

For all we know, they may want a different PWM protocol, or a different PWM frequency, or maybe they don’t use PWM at all, they might want i2c commands, or serial data, or whatever.

Ahh!

Here’s the skinny from the Seeed site:

One thing I see right off is that your pwm value is off by a full order of magnitude - it should be 1500μs, not 15000μs.  Also, at 1500μs, that’s the “stopped” position. You go less for counter-clockwise and greater for clockwise.

Also, isn’t 1500μs something like 0.15 second?  I’m not sure what the range of the GoPiGo servo command is, but can it go that high?

2 Likes

Aside from the fact that a continuous motor uses the pulse width modulation to determine the speed of rotation instead of the angle of rotation, which would require a different control strategy than the expected servos, the servo should respond when commanded with a valid PWM in the range of 700 - 2300 usec.

(Your command is 15000 which is outside those limits.)

1500 usec is the “stop” value
lower values from 1499 down to 700 should cause clockwise rotation
higher values from 1501 up to 2300 should cause counter-clockwise rotation

If indeed no rotation occurs when commanded with a valid pulse-width, be sure that your port is correct. I don’t know anything about Pivot-Pi port numbering.

If all else, then let us know the following:

  • What OS are you running?
  • What Version of that OS are you running?
  • What model Raspberry Pi are using?
1 Like

OK, here’s some more information:

First of all - right off the bat - we don’t know how you’ve connected it.

It’s an i2 board with a variable address - at least that’s what I am assuming the two position dip-switch is.  That begs the question:  What address is it set to?  Can you see it when you do an i2 scan using sudo i2cdetect -y 1?  Are you absolutely sure that address isn’t being used by anything else?

Can you get anything else to work with the Grove Pi board you have?  (I bought myself one, and I’m all eaten up with curiosity to know if/how you get yours working!)

2 Likes

Thanks for that! I tried it but it still didn’t help in rotating the servos. I corrected the ranges but got no movement.

2 Likes

I’ve tried that range but didn’t get it to rotate within that range.

I’m running Raspberry Pi OS Buster (the latest buster, not Bullseye)
I’m using the Raspberry Pi 4B and have it connected to a GrovePi+ through with I connected the PivotPi to an i2C port.

The i2cdetect command shows me 0x40 and I also used the i2c port with another sensor (which was 0x45) so I can confirm that the GrovePi works at least.

2 Likes

Yep That command gives me 0x40. Using the switches changes the output of i2cdetect. so I’m sure nothing else is plugged in either for that port.

I got a temp/humidity sensor working with i2c earlier (using port 0x45) and was using the digital ports to use an ultrasonic sensor and a different servo.

But I’m trying to use the PivotPi with the FS90R which is supposed to have 360 rotation.
I also tried changing the angle_microseconds to be within the 700-2300 range but no dice there either.

Sunday I’ll get the MG90s servos which I hope will work with the PivotPi as they should be traditional servos.

2 Likes

I just got and tried the other servos and no dice here either. the sample code (0x40 i checked) didn’t work. I even had 4 AA batteries (charged) connected. The LEDs flash but there is no movement from the motors. I tried both the example-3_servos.py and the other example. The LED for each servo lights up but for some reason it seems the motors don’t run.

2 Likes