16x RC Servo Phidget / RCC1000_0 / Max update rate

Comments & issues
matthewwachter
Fresh meat
Posts: 2
Joined: Sat Mar 16, 2019 3:26 pm
Contact:

16x RC Servo Phidget / RCC1000_0 / Max update rate

Postby matthewwachter » Fri Apr 26, 2019 10:37 am

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.

User avatar
mparadis
Site Admin
Posts: 609
Joined: Fri Oct 28, 2011 12:17 pm
Contact:

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

Postby mparadis » Fri Apr 26, 2019 12:00 pm

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.

matthewwachter
Fresh meat
Posts: 2
Joined: Sat Mar 16, 2019 3:26 pm
Contact:

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

Postby matthewwachter » Fri Apr 26, 2019 3:19 pm

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.

User avatar
Patrick
Lead Developer
Posts: 3051
Joined: Mon Jun 20, 2005 8:46 am
Location: Canada
Contact:

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

Postby Patrick » Fri Apr 26, 2019 3:24 pm

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


Return to “General”

Who is online

Users browsing this forum: No registered users and 3 guests