Limelight default firmware or photonvision for apriltags?

Limelights firmware now supports apriltag tracking, and their second iteration supposedly has improved performance (though I haven’t tested it). The default firmware is also (slightly) easier to set up than Photonvision since it doesn’t require calibration. Is there a significant performance improvement to using Photonvision over the default firmware? Or is it just more widespread because it was available before the new firmware? I also notice that Photonvision supports different strategies for tracking multiple tags. What are the pros and cons of limelight vs Photonvision?

I would take a look at this discussion. There is some useful info here:

1 Like

There is no consensus on benchmarking yet. I have a LL2+ now and I will be doing 1:1 benchmarks next week on it.
It’s very easy to try both. Try tuning both and see what FPS you get and the maximum range with that speed. Automatic multi-tag localization is a big plus of Limelight if the performance is good.


FWIW - limelight has control over the camera and lens setup, meaning end users to skip this step because the software has greater ability to make assumptions about the hardware. Photon doesn’t have that same advantage, so the calibration step is enforced.

I don’t think there is going to be a one size fits all answer for all teams.

This is still up in the air, PhotonVision may have better performance, but it is hard to make hard descisions or statements as outlined in the thread linked above. I think it is fair to say either one will give adequate performance for a team and about equal. Maybe after we go through a season of AprilTag testing, we will be able to get a better idea on comparisons.

A lot of people waiting on Limelight firmware downloaded PhotonVision yes. The tag strategies are just another way of using data from multiple tags for pose estimation. Mcm1001’s testing has found that it has led to high accuracy on the field (in simulation) and I expect Limelight’s to perform in a similar fashion. We are also looking into implementing a similar multi tag PNP setup.

(this may be biased, I am affiliated with PhotonVison)

Limelight Pros:

  • Tested by almost every team on Einstein last year, you know it’s going to work
  • Easy to setup and use, thorough documentation
  • Buy it, no fiddling needed, it just works
  • Support from many other teams at a competition
  • Machine learning, lots of advanced cutting-edge features

Limelight Cons:

  • You are restricted to one specific set of hardware and camera (most teams wont care about this)
  • Will cost you $400+
  • Need to buy another unit to do multiple cameras at once
  • Have to deal directly with Network Tables (see reply below)
  • No WPILib simulation support
  • Data is not timestamped (important for pose estimators) (see reply below)

PhotonVision Pros

  • Able to use whatever hardware or cameras you have on hand (this allows you to use global shutter cameras)
  • Much cheaper
  • PhotonLib vendor dependency
  • Can use multiple cameras on one unit
  • Layout is setup in code and version controlled (some may not care about this)
  • Get individual tag data for whatever usage you would need
  • All open source / public

PhotonVision Cons:

  • Much younger than Limelight. Limelight started in January 2018, PhotonVision was first used on field in 2021. That’s a 3 year gap to have bugs ironed out, and get stable software
  • Less stable than Limelight (getting better over time, but still not as tested)
  • Less team support at a competition
  • Have to set everything up yourself, no nice all in one package
  • Lots of places where you could mess up
1 Like

With the new Limelight FW, this is not necessarily true anymore, as you can get JSON straight using the REST/HTTP, Websocket, or NetworkTables API. The JSON results also include a timestamp from boot.

I am also excited to learn more about how the CAN API for the new LL3s can be used to retrieve this information. That could be a real game changer.


Apologies, didn’t realize these changes were made and I’ve updated the list accordingly. Is there an ETA on when these features will be available (not asking you specifically, if anyone knows)? Haven’t seen any more explanation on these besides the original video posted.

REST and Websockets API can be found here.

The JSON spec can be found here.

Not sure about CAN, but I assume that will be out by the time the new LL3s ship on the 25th.