mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-22 01:11:40 +00:00
Add support for Green/Yellow status LEDs, like is used on some Limelights (#2287)
This commit is contained in:
@@ -181,4 +181,4 @@ if token:
|
||||
linkcheck_auth = [(R"https://github.com/.+", token)]
|
||||
|
||||
# MyST configuration (https://myst-parser.readthedocs.io/en/latest/configuration.html)
|
||||
myst_enable_extensions = ["colon_fence", "substitution"]
|
||||
myst_enable_extensions = ["colon_fence", "substitution", "attrs_inline"]
|
||||
|
||||
@@ -3,5 +3,8 @@
|
||||
"ledPins" : [ 13, 18 ],
|
||||
"ledsCanDim" : true,
|
||||
"ledPWMFrequency" : 1000,
|
||||
"statusLEDType": "GreenYellow",
|
||||
"statusLEDPins": [ 5, 4 ],
|
||||
"statusLEDActiveHigh": false,
|
||||
"vendorFOV" : 75.76079874010732
|
||||
}
|
||||
|
||||
@@ -2,5 +2,8 @@
|
||||
"deviceName" : "Limelight 2",
|
||||
"ledPins" : [ 17, 18 ],
|
||||
"ledsCanDim" : false,
|
||||
"statusLEDType": "GreenYellow",
|
||||
"statusLEDPins": [ 5, 4 ],
|
||||
"statusLEDActiveHigh": false,
|
||||
"vendorFOV" : 75.76079874010732
|
||||
}
|
||||
|
||||
@@ -19,14 +19,18 @@ When running on Linux, PhotonVision can use [diozero](https://www.diozero.com) t
|
||||
"ledsCanDim" : true,
|
||||
"ledBrightnessRange" : [ 0, 100 ],
|
||||
"ledPWMFrequency" : 0,
|
||||
"statusRGBPins" : [ ],
|
||||
"statusRGBActiveHigh" : false,
|
||||
"statusLEDType": "RGB",
|
||||
"statusLEDPins" : [ ],
|
||||
"statusLEDActiveHigh" : false,
|
||||
}
|
||||
```
|
||||
|
||||
:::{note}
|
||||
No hardware boards with status RGB LED pins or non-dimming LED's have been tested yet. Please reach out to the development team if these features are desired, they can assist with configuration and testing.
|
||||
:::
|
||||
There are currently two types of status LEDs supported:
|
||||
|
||||
* `RGB` (default): A singular LED mixing separate red, green, and blue inputs
|
||||
* `GreenYellow`: A pair of independent green and yellow LEDs
|
||||
|
||||
For an explanation of the colors used for status LEDs, see {ref}`Status LEDs<docs/troubleshooting/status-leds:Status LEDs>`
|
||||
|
||||
### GPIO Pinout
|
||||
|
||||
@@ -134,8 +138,9 @@ Here is a complete example `hardwareConfig.json`:
|
||||
"ledsCanDim" : true,
|
||||
"ledBrightnessRange" : [ 0, 100 ],
|
||||
"ledPWMFrequency" : 0,
|
||||
"statusRGBPins" : [ ],
|
||||
"statusRGBActiveHigh" : false,
|
||||
"statusLEDType": "RGB",
|
||||
"statusLEDPins" : [ ],
|
||||
"statusLEDActiveHigh" : false,
|
||||
"getGPIOCommand" : "getGPIO {p}",
|
||||
"setGPIOCommand" : "setGPIO {p} {s}",
|
||||
"setPWMCommand" : "setPWM {p} {v}",
|
||||
|
||||
10
docs/source/docs/troubleshooting/images/led.svg
Normal file
10
docs/source/docs/troubleshooting/images/led.svg
Normal file
@@ -0,0 +1,10 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" id="led" width="30" height="30" viewBox="0 0 100 100" style="color-scheme: dark light">
|
||||
<circle cx="50" cy="50" r="20" fill="dimgrey"/>
|
||||
<circle cx="50" cy="50" r="20" stroke="black" stroke-width="5" fill="currentColor"/>
|
||||
<line x1="5" y1="50" x2="20" y2="50" stroke="currentColor" stroke-width="5" stroke-linecap="round"/>
|
||||
<line x1="27.5" y1="11.03" x2="35" y2="24.02" stroke="currentColor" stroke-width="5" stroke-linecap="round"/>
|
||||
<line x1="72.5" y1="11.03" x2="65" y2="24.02" stroke="currentColor" stroke-width="5" stroke-linecap="round"/>
|
||||
<line x1="80" y1="50" x2="95" y2="50" stroke="currentColor" stroke-width="5" stroke-linecap="round"/>
|
||||
<line x1="72.5" y1="88.97" x2="65" y2="75.98" stroke="currentColor" stroke-width="5" stroke-linecap="round"/>
|
||||
<line x1="27.5" y1="88.97" x2="35" y2="75.98" stroke="currentColor" stroke-width="5" stroke-linecap="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 927 B |
@@ -5,6 +5,7 @@
|
||||
|
||||
common-errors
|
||||
logging
|
||||
status-leds
|
||||
camera-troubleshooting
|
||||
networking-troubleshooting
|
||||
unix-commands
|
||||
|
||||
101
docs/source/docs/troubleshooting/status-leds.md
Normal file
101
docs/source/docs/troubleshooting/status-leds.md
Normal file
@@ -0,0 +1,101 @@
|
||||
---
|
||||
myst:
|
||||
substitutions:
|
||||
led_loader: |
|
||||
```{image} images/led.svg
|
||||
:height: 0
|
||||
```
|
||||
led: |
|
||||
```{raw} html
|
||||
<svg class="led" height="30" width="30">
|
||||
<use href="../../_images/led.svg#led"/>
|
||||
</svg>
|
||||
```
|
||||
---
|
||||
<!-- markdownlint-disable-next-line MD033 MD041 -->
|
||||
<style>
|
||||
svg.led {
|
||||
--off-color: transparent;
|
||||
color: var(--on-color);
|
||||
}
|
||||
|
||||
@keyframes led-blink {
|
||||
66% {
|
||||
color: var(--off-color);
|
||||
}
|
||||
}
|
||||
|
||||
:not(.solid) > svg.led {
|
||||
animation: led-blink 0.45s steps(1) infinite;
|
||||
}
|
||||
|
||||
@keyframes led-even-blink {
|
||||
50% {
|
||||
color: var(--off-color);
|
||||
}
|
||||
}
|
||||
|
||||
:not(.solid).fast > svg.led {
|
||||
animation-name: led-even-blink;
|
||||
animation-duration: 150ms;
|
||||
}
|
||||
|
||||
:not(.solid).error > svg.led {
|
||||
animation-name: led-even-blink;
|
||||
animation-duration: 0.90s;
|
||||
}
|
||||
|
||||
.green > svg.led {
|
||||
--on-color: limegreen;
|
||||
}
|
||||
.blue > svg.led {
|
||||
--on-color: blue;
|
||||
}
|
||||
.yellow > svg.led {
|
||||
--on-color: yellow;
|
||||
}
|
||||
.red > svg.led {
|
||||
--on-color: red;
|
||||
}
|
||||
|
||||
.anti-yellow > svg.led {
|
||||
--on-color: transparent;
|
||||
--off-color: yellow;
|
||||
}
|
||||
|
||||
.off > svg.led {
|
||||
color: var(--off-color);
|
||||
}
|
||||
</style>
|
||||
|
||||
# Status LEDs
|
||||
|
||||
PhotonVision has support for multiple kinds of status LEDs. Make sure you reference the correct table for the type present on your hardware.
|
||||
|
||||
## RGB LED
|
||||
|
||||
Color | Flashing | Preview | Status
|
||||
--------|----------|:-------------------------:|-----------------------------------------------
|
||||
Green | Yes | [{{ led }}]{.green} | Running normally, no targets visible
|
||||
Blue | No | [{{ led }}]{.solid .blue} | Running normally, targets visible
|
||||
Yellow | Yes | [{{ led }}]{.yellow} | NT Disconnected, no targets visible
|
||||
Blue | Yes | [{{ led }}]{.blue} | NT Disconnected, targets visible
|
||||
Red | Yes | [{{ led }}]{.red} | Initializing or faulted, not running
|
||||
Off | No | [{{ led }}]{.off} | No power or initialization fault, not running
|
||||
|
||||
## Green and Yellow LEDs
|
||||
|
||||
Used on Limelight 1, 2, 2+, 3, 3G, and 3A
|
||||
|
||||
Green and Yellow LED patterns may be active at the same time
|
||||
|
||||
Color | Pattern | Preview | Status
|
||||
--------|----------------|:-----------------------------------------------------------:|-------------------------------------------------
|
||||
Green | Slow Flashing | [{{ led }}]{.green} [{{ led }}]{.off} | No targets visible
|
||||
Green | Quick Flashing | [{{ led }}]{.fast .green} [{{ led }}]{.off} | Targets visible
|
||||
Yellow | Flashing | [{{ led }}]{.off} [{{ led }}]{.yellow} | NT Disconnected
|
||||
Yellow | Solid | [{{ led }}]{.off} [{{ led }}]{.solid .yellow} | NT Connected
|
||||
Both | Alternating | [{{ led }}]{.green .error} [{{ led }}]{.anti-yellow .error} | Initializing or faulted, not running
|
||||
Both | Off | [{{ led }}]{.off} [{{ led }}]{.off} | No power or initialization fault, not running
|
||||
|
||||
{{ led_loader }}
|
||||
Reference in New Issue
Block a user