Limelight 2022.0.3 Update

This is a big one. Here are the four primary changes:


Smart Target Grouping

  • Automatically group targets that pass all individual target filters.
  • Will dynamically group any number of targets between -group size slider minimum- and -group size slider maximum-

Outlier Rejection

  • While this goal is more challenging than other goals, it gives us more opportunities for filtering. Conceptually, this goal is more than a “green blob.” Since we know that the goal is comprised of multiple targets that are close to each other, we can actually reject outlier targets that stand on their own.

  • You should rely almost entirely on good target filtering for this year’s goal, and only use outlier rejection if you see or expect spurious outliers in your camera stream. If you have poor standard target filtering, outlier detection could begin to work against you!

Limelight 2022 Image Upgrades
We have removed hundreds of moving parts from our software. These are the results:

  • Compressed Image Size: 1.3 GB in 2020 → 76MB for 2022 (Reduced by a factor of 17!).
  • Download time: 10s of minutes in 2020 → seconds for 2022
  • Flash time: 5+ minutes in 2020 → seconds for 2022
  • Boot time: 35+ seconds in 2020 → 14 seconds for 2022 (10 seconds to LEDS on)

Finally: Python Scripting

  • Limelight has successfully exposed a large number of students to some of the capabilities of computer vision in robotics. With python scripting, teams can now take another step forward by writing their own image processing pipelines.

  • Limelight handles the hardware, camera interfacing, networking, streaming, and basic image pre-processing. All you need to do is write one python function called runPipeline().

  • One of the most important features we offer is the one-click crosshair. The crosshair, dual crosshair, tx, ty, ta, ts, tvert, and all other standard limelight NetworkTables readings will automatically latch to the contour you return from the python runPipeline() function.

  • Write your own real-time visualizations, thresholding, filtering, and bypass our backend entirely if desired.

    • Limelight’s python scripting has access to the full OpenCV and numpy libraries.

    • Beyond access to the image, the runPipeline() function also has access to the “llrobot” NetworkTables number array. Send any data from your robots to your python scripts for visualization or advanced applications (One might send IMU data, pose data, robot velocity, etc. for use in python scripts)

    • The runPipeline function also outputs a number array that is placed directly into the “llpython” networktables number array. This means you can bypass Limelight’s crosshair and other functionality entirely and send your own custom data back to your robots.

    • Python scripts are sandboxed within our c++ environment, so you don’t have to worry about crashes. Changes to scripts are applied instantly, and any error messages are printed directly to the web interface.

This update is compatible with all Limelight Hardware, including Limelight 1.
Known issues: Using hardware zoom with python will produce unexpected results.
What features would you like to see in future updates?


This is massive, now newer teams with less vision experience don’t have to use wpilibpi on an out-of-stock raspberry pi to run a simple opencv script.



It looks like the limelight.local:5802 page is not accessible anymore. Is there a different way to access the limelight feed without overlays in GRIP?


Can you try using the latest etcher? balenaEtcher - Flash OS images to SD cards & USB drives

I do believe older versions of etcher may cause problems. I just tested flashing a 2+, 2, and 1 on windows using the latest etcher with success. This is my fault for not updating the docs while exclusively testing with the new etcher.

1 Like

Used 1.73 Balena - no improvement LEDs never flash

I am also having issues. I can get to the page, but there is no stream:

Thank you for posting this. Luckily this was easy to fix. Will send a new image your way in a few minutes.
Edit - Sent in DMs
Edit - confirmed fix for ThorH
Edit - Straw fixed with browser refresh


Sending a new image your way which addresses what might cause this on certain models.
Edit - Sent a link in your DMs

1 Like

We have 2 - Limelight 2 models. They both work on last year’s .4 release.
One of the 2 now starts up, the other doesn’t

Don’t see the Python Scripting tab. It looks like it always has

Version shows as 2022.0


Have you changed “pipeline type” to python?
Do you get blinking Ethernet LEDs on the unit that does not start? What is your power source?

Smart Target Group is there

How do you change pipeline type?
The Ethernet LEDS both constant on
Its a 120 volt 6 amp wall power supply

It does flash downloading Python Script when Make default pipeline is clicked

Changing the pipeline type:

Ensure that the entire flashing process finishes on the unit that isn’t booting. It absolutely could be a hardware issue and we will take care of it if so, but make sure you are letting the image unzip, flash, and validate.

Please send a message to [email protected] if one of your units doesn’t boot. Thanks!

1 Like

Found Python pipeline

1 Like

I did all of that

1 Like

Moving to your DMs

1 Like


I’m so glad I don’t have to wait 30 minutes for terrible school wifi to download 1.3 GB. :sweat_smile:


Quick find, the new image worked fine for us on a Limelight 2+, but we couldn’t get a Limelight 2 to boot. After imaging, the 2 wouldn’t start up properly (LED array wouldn’t turn on) , and the lights on the Ethernet port displayed no packets being transferred.
It worked flawlessly on our 2+ though, we were really impressed by the smart target grouping.