Cameras and vision
Which cameras are legal, how to connect and mount them so they survive a match, what AprilTags give you in the FTC SDK, and where the Limelight 3A fits.
By the end you can
- Choose a legal camera and connect it to the right Control Hub port
- Explain what an AprilTag detection reports and why camera mounting and calibration matter
- Describe what a Limelight 3A adds compared with a plain webcam
A camera is the only sensor that can recognise things: a specific AprilTag on the field wall, the colour of a game piece, where that game piece sits. This lesson covers the electrical and mounting side. The programming track's Limelight unit covers the code.
What cameras are legal
The Competition Manual only allows a short list of devices on the robot's USB ports. In the 2026–27 manual (rules R707 and R708) that means:
- UVC-compatible USB webcams with a single image sensor — the manual gives the Logitech C270 as an example. Stereo (two-lens) cameras are not allowed.
- Vision coprocessors the SDK supports. The Limelight 3A is the one the manual lists as programmable.
- USB hubs, and the Expansion Hub if you connect it over USB.
Nothing else goes on USB: no USB LEDs, no USB fans. These rules are season-specific, so check the current Competition Manual before you buy a camera.
Connecting a camera
The Control Hub has two USB-A ports: one USB 2.0 and one USB 3.0 (the blue one).
Use the blue USB 3.0 port
REV and FIRST both say to plug cameras into the Control Hub's USB 3.0 port. REV reports that a device on the USB 2.0 port can let static discharge disrupt the Control Hub's Wi-Fi chip — which shows up as a robot that disconnects mid-match for no obvious reason. Limelight's own setup guide also specifies the USB 3.0 port.
More practical points:
- Two cameras is a sensible limit on the hub's own USB. FIRST's Robot Best Practices recommends powering at most two cameras directly from USB and using a powered USB hub beyond that. A powered USB hub may only be powered from an approved USB battery pack or the hub's +5V port.
- Strain-relieve the USB cable. USB plugs work loose with vibration. Tie the cable down near the plug, use a right-angle plug if it keeps the run tidy, and consider REV's USB retention mount.
- Add a ferrite choke to the USB cable. FIRST's ESD guidance recommends chokes on USB, sensor, encoder and servo cables.
- Mount the camera rigidly. If the camera can shift even a few degrees, every distance and angle it reports shifts with it.
AprilTags in the FTC SDK
- AprilTag
- A square black-and-white marker, like a very simple QR code, that encodes an ID number. FTC uses the 36h11 tag family. Because the tag's real size is known, the camera can work out where the tag is relative to the camera, not just that it is there.
Since SDK 8.2, AprilTag detection is built into the FTC SDK through VisionPortal, for both Blocks and Java. For each tag it sees, a detection reports:
- the tag's ID,
- its range (distance) and bearing (angle left or right) from the camera, and
- its full pose: X, Y and Z distances plus pitch, roll and yaw.
Pose needs calibration and a known camera position
Pose maths uses calibration data for your exact camera and resolution. The SDK includes calibration for a limited number of webcams and resolutions; for anything else you generate your own. And to turn "where the tag is relative to the camera" into "where the robot is", your code also needs to know exactly where the camera sits on the robot — another reason it must be rigidly mounted and measured.
The Limelight 3A
The Limelight 3A is a camera with its own computer inside. Instead of sending raw video to the Control Hub, it runs vision pipelines itself — colour detection, AprilTag localisation and neural networks — and sends results. From Limelight's documentation:
| Spec | Limelight 3A |
|---|---|
| Connection | USB-C on the camera, to the Control Hub's USB 3.0 port |
| Power | Over USB, 4.1–5.75V, up to 4W |
| Camera | 640 × 480 at 90 frames per second |
| Field of view | 54.5° horizontal, 42° vertical |
| Lighting | No built-in LEDs |
You configure its pipelines through a web interface before the match, then the robot code reads results. The manual allows teams to reprogram the Limelight 3A specifically; other programmable vision computers (the manual names the Limelight 3G among them) are not allowed. For setup and code, go to the programming track's Getting Started with Limelight.
Video and Wi-Fi during matches
Streaming a camera feed to a laptop or phone is handy in the shop, but during a match the manual (rule R704 in 2026–27) only allows control data, debugging data and telemetry through the Driver Station app — no continuous video stream, and no third-party dashboards. Turn debugging streams off before you queue for a match.
Check yourself
Your robot works in the shop but randomly disconnects on the competition field. The webcam is plugged into the Control Hub's black USB 2.0 port. What is the first change to make?
Check yourself
Your AprilTag code reports the tag 20 cm further away than it really is, and the error changes after every match. What is the most likely cause?
Next
That completes the sensors unit. The last unit is about keeping all of this working: connectors, static, disconnects, troubleshooting, and passing inspection.
Sources and further reading
- FTC Competition Manual — section 12.7 (USB devices, coprocessors, wireless)
- FTC Docs: AprilTag introduction
- FTC Docs: Managing ESD — USB 3.0 port and ferrite chokes
- FIRST Robot Best Practices — camera power
- REV: General Troubleshooting — ESD mitigation and USB port care
- Limelight 3A Quick-Start
- Game Manual 0: Computer Vision
Finished this lesson?
Mark it complete to track your progress.