FRC Vision Port Assignments

Hi, so over the build season our team developed a vision system that uses a raspberry pi to grab frames from two cameras and send both frames to a local HTTP MJPEG Server Thread. Each camera image is sent a different port on the server, so one image is sent to address ‘’ and another to ‘’. On our control PC, we have another python script running a Tkinter GUI, which grabs frames from each url, and displays them to a user.

The code for the server can be found here:


What we didn’t anticipate, was the latency faced when streaming two cameras simultaneously while controlling the robot, which is why we wanted to add a UDP send thread that will send a key from the control PC to the rpi, indicating which camera feed should be displayed based on a user input. When reviewing the rules, I found:

My main questions are:

  1. Are we allowed to setup our HTTP MJPEG stream on port 80, which is meant for roborio camera streaming, if we don’t have any cams connected to the roborio?
  2. Am I allowed to send UDP data from my control computer to the roborio on ports 5800 -5810 during the match?
  3. If we were to setup the MJPEG stream on ports 5800 - 5810, what might happen?
  1. Yes
  2. Yes
  3. It’s allowed, we did it last year

  1. I think that port 80 is meant for an Axis/IP camera and not the RIO itself (as that’s where the Silverlight interface is), but the table is a bit vague. I think you should be fine running a camera stream from a Pi on that port, but I’m not sure.
  2. Yup. That’s the purpose of those ports.
  3. It appears that it’s fine to put a MJPEG stream there.