What's normal for RIO CPU usage?

What is typical RIO CPU usage? We have one USB camera and one Limelight. When the camera is not selected on the dashboard, CPU usage is 30% ish. When the camera is turned on the CPU usage spikes to 95% ish. We’ve played around with resolution and compression and we struggle to consistently get 20 FPS. It seems like if I turn the compression too high the RIO can’t keep up and FPS drops to 10 FPS. If I turn the compression too low I hit the bandwidth limit. This is at 640x480. Even at 320x240, I don’t seem to be able to get the RIO to push out enough FPS. The CPU just pegs at 90% no matter what I do.

Running labview, BTW. And we could have sworn that at the beginning of the build season we were able to get cameras to work flawlessly. I can’t tell if it’s the new update suite or bloated code that we have slowly added.

Any ideas? Anyone seeing the same thing?

When you use the dashboard to change the compression, you force the roboRIO to recompress the images, which takes CPU. If you care about CPU, you’d want to use the HW compression setting, which does not recompress.

1 Like

With our robot code deployed and running, we see about 70-80% usage. Last time I checked, I think a blank project was clocking somewhere between 50 to 60% on our setup.

There’s some thought that in embedded systems, if your processor load isn’t between 80 and 95%, “You paid too much for your processor”. However, that line of thinking requires a strict RTOS where you have control of everything that can happen, which isn’t the case on our RIO or when you use Java…

In our experience you want to work pretty hard to keep that CPU usage below 80%. Last year we can began to see some pretty flakey behavior centered around the the can bus. When we got up at 90%.

Sthump, are you trying to just stream images to the dashboard? Or are you doing processing on the stream? In my experience 640x480 is generally a non-starter for getting acceptable framerate at an acceptable bandwidth (even without processing). 320x240 is what we’ve always used without a co-processor.

An IP camera will help you too, since it doesn’t use the RIO for processing at all.


We are just streaming. I had thought 640x480 was asking for too much but early in the build season I could have sworn that when we tested the exact same camera we were able to get 640x480 with about 25% to 50% compression under the bandwidth limit. Granted early on, we had a fairly barebones code. But I just put in template code into the RIO and it still couldn’t do it.

Just wondering if the latest update suite releases somehow throttle back something or other?

Thanks for the feedback. Congrats on Gibraltar. You guys were amazing.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.