Page 1 of 1

16x RC Servo Phidget / RCC1000_0 / Max update rate

Posted: Fri Apr 26, 2019 10:37 am
by matthewwachter
I'm curious if anyone knows the max update rate I can send to this unit. I've found that any one channel can be updated around 20ms but if I connect a second channel and try to drive that at the same rate the servos both update at half the speed.

So is it safe to assume that the max update rate is for the unit as a whole rather than each individual channel? In theory, would this mean that if I were to drive all 16 servos at once the max position updates per channel would be one every 320ms (20ms x 16)?

I'm curious if this is documented anywhere. I've had a bit of trouble finding this information.

Re: 16x RC Servo Phidget / RCC1000_0 / Max update rate

Posted: Fri Apr 26, 2019 12:00 pm
by mparadis
The rate at which you can send updates from your computer to your Phidget depends heavily on the speed of the computer, which is why there is no specification for it.

Re: 16x RC Servo Phidget / RCC1000_0 / Max update rate

Posted: Fri Apr 26, 2019 3:19 pm
by matthewwachter
Makes sense. In my case I'm using a desktop with an i7-7800x CPU @3.5Ghz so I doubt that's my bottleneck.

In any case, there should be a theoretical limit that the Phidget can achieve.

Re: 16x RC Servo Phidget / RCC1000_0 / Max update rate

Posted: Fri Apr 26, 2019 3:24 pm
by Patrick
The rate at which commands can be send depends on the type of Phidgets.

For USB Phidgets, this depends somewhat on your machine, and can be up to 3-4 thousand commands/second.

For VINT Phidgets, this will depend on whether the device is isolated or not, and it's polling interval, and the size of the packets, and how much data the device is sending back. Isolated VINT Phidgets run at 10kbit with a maximum polling interval of 8ms. Non isolated devices run at 100kbit and poll at a max rate of 1ms.

For RCC1000, this is an isolated device. A command packet is 8 bytes, so this takes 8ms to transmit. The device will also be transmitting event data back to the library, and the VINT link is 1 wire so transmit and receive can't happen at the same time. There is also some handshaking overhead, etc.

So, you you can expect be able to send a command every 16 or 24 ms.

If you are sending a lot of servo commands, you should use the async version of setPosition to speed things up - this lets you queue up and send commands as quickly as possible without waiting for the response each time.

-Patrick

Re: 16x RC Servo Phidget / RCC1000_0 / Max update rate

Posted: Tue Sep 10, 2019 12:56 pm
by clwilson12
Hey Patrick-

To clarify here, would a device like the PhidgetAdvancedServo 8-Motor (https://www.phidgets.com/?tier=3&catid= ... rodid=1147) which is controlled via USB solve this input command lag issue? If not, what kind of input lag could we expect from this device relative to the VINT-controlled 16x RC Servo Phidget?

Re: 16x RC Servo Phidget / RCC1000_0 / Max update rate

Posted: Wed Sep 11, 2019 10:36 am
by Patrick
RCC0004 has much more bandwidth because it's a dedicated USB device. You should be able to send 1000+ commands/second to it. Sending this many commands isn't exactly useful - but the lower latency between commands IS useful is you're trying to synchronize the movement of many servos.

-Patrick