From 455e723a5361f5df33fc4f8c7b9ce7ce64db4228 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Mon, 15 Dec 2025 09:44:13 -0500 Subject: [PATCH 01/39] Revise addressable LEDs documentation for clarity Updated documentation for addressable LEDs to include additional LED types and clarify connections. Added notes on powering and best practices. --- .../hardware-apis/misc/addressable-leds.rst | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index f362c7c36a..99183eb292 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -1,21 +1,20 @@ # Addressable LEDs -LED strips have been commonly used by teams for several years for a variety of reasons. They allow teams to debug robot functionality from the audience, provide a visual marker for their robot, and can simply add some visual appeal. WPILib has an API for controlling WS2812, WS2812B, and WS2815 LEDs with their data pin connected via :term:`PWM`. +LED strips have been commonly used by teams for several years for a variety of reasons. They allow teams to debug robot functionality from the audience, provide a visual marker for their robot, and can simply add some visual appeal. These are also referred to as NeoPixels as well. WPILib has an API for controlling WS2812, WS2812B, WS2815, and other LEDs that share the same protocol (WS2811, SK6812, etc.) with their data pin connected to the SIGNAL pin of a SMART I/O connector. .. note:: LEDs can be controlled through this API while the robot is disabled. -.. important:: The roboRIO can only control **one** ``AddressableLED`` object at a time through its PWM ports. Attempting to create multiple ``AddressableLED`` objects will result in a HAL allocation error. If you need to control multiple physical LED strips, you have several options: +.. seealso:: For detailed information about powering and best practices for addressable LEDs, see the [Adafruit NeoPixel Überguide](https://learn.adafruit.com/adafruit-neopixel-uberguide/powering-neopixels). - - **Daisy-chain strips in series**: Connect multiple LED strips end-to-end as a single long strip, then use :ref:`buffer views ` to control different sections independently - - **Use PWM Y-cables**: If you need identical patterns on multiple strips, use PWM Y-cables to send the same signal to multiple strips simultaneously +.. note:: WS281x LEDs (with the exception of the WS2815, see below warning) are designed for **5V**, but Systemcore ports output **3.3V**. This may cause issues with some LED strips, and a logic level shifter is needed, such as the [Adafruit Pixel Shifter](https://www.adafruit.com/product/6066). -.. seealso:: For detailed information about powering and best practices for addressable LEDs, see the [Adafruit NeoPixel Überguide](https://learn.adafruit.com/adafruit-neopixel-uberguide/powering-neopixels). +.. note:: The 300-500 ohm data line resistor and large 1000uF capactitor across the power pins are highly recommended. Also, use a VRM to power the LEDs, with the *grounds* tied together. -.. warning:: WS2812B LEDs are designed for 5V, but roboRIO PWM/Servo ports output 6V. While the LEDs will function, this may reduce their lifespan. Consider using a voltage regulator or level shifter if longevity is a concern. +.. warning:: WS2815 LEDs (and maybe other products as well, **check the label**) are designed for **12V** but have **5V** data (see above note). The **backup line on the first strip** needs to be connected to **ground**, **not** connected to the data line despite what other guides may say. ## Instantiating the AddressableLED Object -You first create an ``AddressableLED`` object that takes the PWM port as an argument. It *must* be a PWM header on the roboRIO. Then you set the number of LEDs located on your LED strip, which can be done with the ``setLength()`` function. +You first create an ``AddressableLED`` object that takes the SMART I/O port as an argument. It *must* be a SMART I/O header on the Systemcore. Then you set the number of LEDs located on your LED strip, which can be done with the ``setLength()`` function. .. warning:: It is important to note that setting the length of the LED header is an expensive task and it's **not** recommended to run this periodically. @@ -49,7 +48,7 @@ After the length of the strip has been set, you'll have to create an ``Addressab ## Controlling Sections of an LED Strip -The roboRIO can only control a single addressable LED output at a time, but there are often multiple physical LED strips daisy-chained around a robot, or a single flexible LED strip wrapped around structures on a robot. Individual sections can be accessed in Java using ``AddressableLEDBufferView``. Buffer views behave like subsections of the larger buffer, and can be accessed using indices in the typical [0, length) range. They can also be reversed, to allow for parallel serpentine sections to be animated in the same physical orientation (i.e. both sections would animate "forward" in the same direction, even if the strips are physically tip-to-tail). +Individual sections can be accessed in Java using ``AddressableLEDBufferView``. Buffer views behave like subsections of the larger buffer, and can be accessed using indices in the typical [0, length) range. They can also be reversed, to allow for parallel serpentine sections to be animated in the same physical orientation (i.e. both sections would animate "forward" in the same direction, even if the strips are physically tip-to-tail). .. tab-set:: From 4581a748be5adc35ce5f22b884c25e0b8c572b49 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Mon, 15 Dec 2025 12:18:08 -0500 Subject: [PATCH 02/39] Apply suggestions from code review Co-authored-by: Dan Katzuv <31829093+katzuv@users.noreply.github.com> --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 99183eb292..737ad08685 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -1,6 +1,6 @@ # Addressable LEDs -LED strips have been commonly used by teams for several years for a variety of reasons. They allow teams to debug robot functionality from the audience, provide a visual marker for their robot, and can simply add some visual appeal. These are also referred to as NeoPixels as well. WPILib has an API for controlling WS2812, WS2812B, WS2815, and other LEDs that share the same protocol (WS2811, SK6812, etc.) with their data pin connected to the SIGNAL pin of a SMART I/O connector. +LED strips have been commonly used by teams for several years for a variety of reasons. They allow teams to debug robot functionality from the audience, provide a visual marker for their robot, and can simply add some visual appeal. These are also referred to as NeoPixels. WPILib has an API for controlling WS2812, WS2812B, WS2815, and other LEDs that share the same protocol (WS2811, SK6812, etc.) with their data pin connected to the SIGNAL pin of a SMART I/O connector. .. note:: LEDs can be controlled through this API while the robot is disabled. @@ -8,7 +8,7 @@ LED strips have been commonly used by teams for several years for a variety of r .. note:: WS281x LEDs (with the exception of the WS2815, see below warning) are designed for **5V**, but Systemcore ports output **3.3V**. This may cause issues with some LED strips, and a logic level shifter is needed, such as the [Adafruit Pixel Shifter](https://www.adafruit.com/product/6066). -.. note:: The 300-500 ohm data line resistor and large 1000uF capactitor across the power pins are highly recommended. Also, use a VRM to power the LEDs, with the *grounds* tied together. +.. note:: The 300-500 Ohm data line resistor and large 1000μF capacitor across the power pins are highly recommended. Also, use a VRM to power the LEDs, with the *grounds* tied together. .. warning:: WS2815 LEDs (and maybe other products as well, **check the label**) are designed for **12V** but have **5V** data (see above note). The **backup line on the first strip** needs to be connected to **ground**, **not** connected to the data line despite what other guides may say. From 0b528a2940af9142f1358e0a1c3d5a423ce45953 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Mon, 15 Dec 2025 13:17:51 -0500 Subject: [PATCH 03/39] Apply suggestions from docs review --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 737ad08685..b4c6da0ce0 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -14,7 +14,7 @@ LED strips have been commonly used by teams for several years for a variety of r ## Instantiating the AddressableLED Object -You first create an ``AddressableLED`` object that takes the SMART I/O port as an argument. It *must* be a SMART I/O header on the Systemcore. Then you set the number of LEDs located on your LED strip, which can be done with the ``setLength()`` function. +You first create an ``AddressableLED`` object that takes the SMART I/O port as an argument. Then you set the number of LEDs located on your LED strip, which can be done with the ``setLength()`` function. .. warning:: It is important to note that setting the length of the LED header is an expensive task and it's **not** recommended to run this periodically. From 2d04c462acb20c98514e4f34075ed0b0c4e35684 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Sun, 21 Dec 2025 12:09:24 -0500 Subject: [PATCH 04/39] Apply suggestions from docs review --- .../software/hardware-apis/misc/addressable-leds.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index b4c6da0ce0..4c6d65f8c5 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -1,7 +1,16 @@ # Addressable LEDs LED strips have been commonly used by teams for several years for a variety of reasons. They allow teams to debug robot functionality from the audience, provide a visual marker for their robot, and can simply add some visual appeal. These are also referred to as NeoPixels. WPILib has an API for controlling WS2812, WS2812B, WS2815, and other LEDs that share the same protocol (WS2811, SK6812, etc.) with their data pin connected to the SIGNAL pin of a SMART I/O connector. +.. note:: This library only supports WS2812B-compliant addressable LED products (strips, bars, matrixes,etc.) +HUB-75 LED matrixes, DotStar LEDs, and other types of addressable LED products are not supported by this API. In addition to that, some WS2812B-compliant strips with different timings (WS2815, etc.) may not work. + +Timings: + +T0H: 375ns +T0L: 875ns +T1H: 750ns +T1L: 500ns .. note:: LEDs can be controlled through this API while the robot is disabled. .. seealso:: For detailed information about powering and best practices for addressable LEDs, see the [Adafruit NeoPixel Überguide](https://learn.adafruit.com/adafruit-neopixel-uberguide/powering-neopixels). From ed9e3263eb66d98bfe93b1ecc8269e71f30c81e3 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Mon, 22 Dec 2025 22:07:20 -0500 Subject: [PATCH 05/39] Apply suggestions from docs review --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 4c6d65f8c5..d0964c2811 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -17,7 +17,7 @@ T1L: 500ns .. note:: WS281x LEDs (with the exception of the WS2815, see below warning) are designed for **5V**, but Systemcore ports output **3.3V**. This may cause issues with some LED strips, and a logic level shifter is needed, such as the [Adafruit Pixel Shifter](https://www.adafruit.com/product/6066). -.. note:: The 300-500 Ohm data line resistor and large 1000μF capacitor across the power pins are highly recommended. Also, use a VRM to power the LEDs, with the *grounds* tied together. +.. note:: The 300-500 Ohm data line resistor and large 1000μF capacitor across the power pins are recommended, especially with larger quantities of LEDs. Also, use an external 5V regulator to power the LEDs, with the **grounds** tied together. .. warning:: WS2815 LEDs (and maybe other products as well, **check the label**) are designed for **12V** but have **5V** data (see above note). The **backup line on the first strip** needs to be connected to **ground**, **not** connected to the data line despite what other guides may say. From bfb449680636f1a6a2e3d8ff0bf5092842bf010a Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Mon, 22 Dec 2025 22:12:50 -0500 Subject: [PATCH 06/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index d0964c2811..1763b1cd5c 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -1,6 +1,8 @@ # Addressable LEDs -LED strips have been commonly used by teams for several years for a variety of reasons. They allow teams to debug robot functionality from the audience, provide a visual marker for their robot, and can simply add some visual appeal. These are also referred to as NeoPixels. WPILib has an API for controlling WS2812, WS2812B, WS2815, and other LEDs that share the same protocol (WS2811, SK6812, etc.) with their data pin connected to the SIGNAL pin of a SMART I/O connector. +Addressable LEDs have been commonly used by teams for several years for a variety of reasons. LED strips are the most common, but other form factors such as matrixes and bars are available as well. + +They allow teams to debug robot functionality from the audience, provide a visual marker for their robot, and can simply add some visual appeal. WPILib has an API for controlling WS2812, WS2812B, and potentially other LEDs that share the same protocol with their data pin connected to the SIGNAL pin of a SMART I/O connector. These types of addressable LEDs are also referred to as NeoPixels by other companies. .. note:: This library only supports WS2812B-compliant addressable LED products (strips, bars, matrixes,etc.) HUB-75 LED matrixes, DotStar LEDs, and other types of addressable LED products are not supported by this API. In addition to that, some WS2812B-compliant strips with different timings (WS2815, etc.) may not work. From 646d3dd22e04ee4003aa0e4e7f0a3984226d3021 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Mon, 22 Dec 2025 22:13:09 -0500 Subject: [PATCH 07/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 1763b1cd5c..b642fce77e 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -5,6 +5,8 @@ Addressable LEDs have been commonly used by teams for several years for a variet They allow teams to debug robot functionality from the audience, provide a visual marker for their robot, and can simply add some visual appeal. WPILib has an API for controlling WS2812, WS2812B, and potentially other LEDs that share the same protocol with their data pin connected to the SIGNAL pin of a SMART I/O connector. These types of addressable LEDs are also referred to as NeoPixels by other companies. .. note:: This library only supports WS2812B-compliant addressable LED products (strips, bars, matrixes,etc.) +Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. + HUB-75 LED matrixes, DotStar LEDs, and other types of addressable LED products are not supported by this API. In addition to that, some WS2812B-compliant strips with different timings (WS2815, etc.) may not work. Timings: From bf9b975bf57c2e22e80c0ed57804740e6a49b38a Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 14:23:55 -0500 Subject: [PATCH 08/39] Apply suggestions from docs review --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index b642fce77e..a6845631cf 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -3,6 +3,8 @@ Addressable LEDs have been commonly used by teams for several years for a variety of reasons. LED strips are the most common, but other form factors such as matrixes and bars are available as well. They allow teams to debug robot functionality from the audience, provide a visual marker for their robot, and can simply add some visual appeal. WPILib has an API for controlling WS2812, WS2812B, and potentially other LEDs that share the same protocol with their data pin connected to the SIGNAL pin of a SMART I/O connector. These types of addressable LEDs are also referred to as NeoPixels by other companies. + +.. note:: LEDs can be controlled through this API while the robot is disabled. .. note:: This library only supports WS2812B-compliant addressable LED products (strips, bars, matrixes,etc.) Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. From 5411d96106324003773d30a70c59b692058bc0a4 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 14:27:11 -0500 Subject: [PATCH 09/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index a6845631cf..410c750838 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -17,7 +17,6 @@ T0H: 375ns T0L: 875ns T1H: 750ns T1L: 500ns -.. note:: LEDs can be controlled through this API while the robot is disabled. .. seealso:: For detailed information about powering and best practices for addressable LEDs, see the [Adafruit NeoPixel Überguide](https://learn.adafruit.com/adafruit-neopixel-uberguide/powering-neopixels). From fc96c5d5d87c4d260c1c49ea3cf2dd19a3b7c8cf Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 14:34:22 -0500 Subject: [PATCH 10/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 410c750838..a37948bc27 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -28,7 +28,7 @@ T1L: 500ns ## Instantiating the AddressableLED Object -You first create an ``AddressableLED`` object that takes the SMART I/O port as an argument. Then you set the number of LEDs located on your LED strip, which can be done with the ``setLength()`` function. +You first create an ``AddressableLED`` object that takes the SMART I/O port as an argument. Then you set the number of LEDs that are connected, which can be done with the ``setLength()`` function. .. warning:: It is important to note that setting the length of the LED header is an expensive task and it's **not** recommended to run this periodically. From 75fda75e3719ca7145a09dabb7f26efa7c672ec4 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 14:44:58 -0500 Subject: [PATCH 11/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index a37948bc27..34d717a289 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -1,6 +1,8 @@ # Addressable LEDs -Addressable LEDs have been commonly used by teams for several years for a variety of reasons. LED strips are the most common, but other form factors such as matrixes and bars are available as well. +Addressable LEDs have been commonly used by teams for several years for a variety of reasons. + +LED strips are the most common, but other form factors such as matrixes and bars are available as well, so your code will work even if you are not using an LED strip. They allow teams to debug robot functionality from the audience, provide a visual marker for their robot, and can simply add some visual appeal. WPILib has an API for controlling WS2812, WS2812B, and potentially other LEDs that share the same protocol with their data pin connected to the SIGNAL pin of a SMART I/O connector. These types of addressable LEDs are also referred to as NeoPixels by other companies. From dd14cc5bf68fc61ef311a1eb1bcfdd37769c6c3d Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 14:45:04 -0500 Subject: [PATCH 12/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- .../docs/software/hardware-apis/misc/addressable-leds.rst | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 34d717a289..c194fc4974 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -11,7 +11,12 @@ They allow teams to debug robot functionality from the audience, provide a visua Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. -HUB-75 LED matrixes, DotStar LEDs, and other types of addressable LED products are not supported by this API. In addition to that, some WS2812B-compliant strips with different timings (WS2815, etc.) may not work. + ..important:: + Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. + + HUB-75 LED matrixes, DotStar LEDs, and other types of addressable LED products are not supported by this API. + + In addition to that, some WS2812B-compliant LEDs with different timings (WS2815, etc.) may not work. Timings: From c6d969f32480e6910c0033daae4b75a4528a14e0 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:46:25 -0500 Subject: [PATCH 13/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index c194fc4974..05debf422e 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -2,7 +2,7 @@ Addressable LEDs have been commonly used by teams for several years for a variety of reasons. -LED strips are the most common, but other form factors such as matrixes and bars are available as well, so your code will work even if you are not using an LED strip. +LED strips are the most common, but other form factors such as matrixes and bars are available as well, so your code will work even if you are not using a LED strip. They allow teams to debug robot functionality from the audience, provide a visual marker for their robot, and can simply add some visual appeal. WPILib has an API for controlling WS2812, WS2812B, and potentially other LEDs that share the same protocol with their data pin connected to the SIGNAL pin of a SMART I/O connector. These types of addressable LEDs are also referred to as NeoPixels by other companies. From d0cc195cc57f729c3de17700063f1a3e96b83b77 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:47:17 -0500 Subject: [PATCH 14/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 05debf422e..35960e1c28 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -11,7 +11,7 @@ They allow teams to debug robot functionality from the audience, provide a visua Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. - ..important:: +..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. HUB-75 LED matrixes, DotStar LEDs, and other types of addressable LED products are not supported by this API. From 3dabdabbc9254d4e3684bcdabf1564974f3470cd Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:48:45 -0500 Subject: [PATCH 15/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- .../docs/software/hardware-apis/misc/addressable-leds.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 35960e1c28..cacdc9df04 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -5,7 +5,14 @@ Addressable LEDs have been commonly used by teams for several years for a variet LED strips are the most common, but other form factors such as matrixes and bars are available as well, so your code will work even if you are not using a LED strip. They allow teams to debug robot functionality from the audience, provide a visual marker for their robot, and can simply add some visual appeal. WPILib has an API for controlling WS2812, WS2812B, and potentially other LEDs that share the same protocol with their data pin connected to the SIGNAL pin of a SMART I/O connector. These types of addressable LEDs are also referred to as NeoPixels by other companies. +.. note:: This **library only supports WS2812B-compliant addressable** LEDs. HUB-75 LED matrixes, DotStar LEDs, and other types of addressable LEDs are not supported by this API. In addition to that, some WS2812B-compliant strips with different timings (WS2815, etc.) may not work. +Timings: + +- T0H: 375ns +- T0L: 875ns +- T1H: 750ns +- T1L: 500ns .. note:: LEDs can be controlled through this API while the robot is disabled. .. note:: This library only supports WS2812B-compliant addressable LED products (strips, bars, matrixes,etc.) From e0c561333270deef9d6b3586b1e64faff4b6e0b9 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:49:04 -0500 Subject: [PATCH 16/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index cacdc9df04..db399c5eeb 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -19,7 +19,6 @@ Timings: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. ..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. - Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. HUB-75 LED matrixes, DotStar LEDs, and other types of addressable LED products are not supported by this API. From b027e55c8f9da67a62f913b72a525d75670f8103 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:51:21 -0500 Subject: [PATCH 17/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index db399c5eeb..92e8496958 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -13,7 +13,6 @@ Timings: - T0L: 875ns - T1H: 750ns - T1L: 500ns -.. note:: LEDs can be controlled through this API while the robot is disabled. .. note:: This library only supports WS2812B-compliant addressable LED products (strips, bars, matrixes,etc.) Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. From cc855b8095f64ddd526d3de100aeea9f1f2f6d14 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:52:51 -0500 Subject: [PATCH 18/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 92e8496958..655fdd4311 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -5,6 +5,8 @@ Addressable LEDs have been commonly used by teams for several years for a variet LED strips are the most common, but other form factors such as matrixes and bars are available as well, so your code will work even if you are not using a LED strip. They allow teams to debug robot functionality from the audience, provide a visual marker for their robot, and can simply add some visual appeal. WPILib has an API for controlling WS2812, WS2812B, and potentially other LEDs that share the same protocol with their data pin connected to the SIGNAL pin of a SMART I/O connector. These types of addressable LEDs are also referred to as NeoPixels by other companies. + +LEDs can also be controlled using this API while the robot is disabled. .. note:: This **library only supports WS2812B-compliant addressable** LEDs. HUB-75 LED matrixes, DotStar LEDs, and other types of addressable LEDs are not supported by this API. In addition to that, some WS2812B-compliant strips with different timings (WS2815, etc.) may not work. Timings: From c84f31be15badc39ca1f23382c19da1cae8aae39 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:54:13 -0500 Subject: [PATCH 19/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 655fdd4311..34e09271b4 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -19,7 +19,7 @@ Timings: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. -..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. +..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. LEDs can also be controlled using this API while the robot is disabled. HUB-75 LED matrixes, DotStar LEDs, and other types of addressable LED products are not supported by this API. From 7ab4845b3f105dd35d95a3d6fec8e785f7872b25 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:54:27 -0500 Subject: [PATCH 20/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 34e09271b4..5a1d15af05 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -17,7 +17,6 @@ Timings: - T1L: 500ns .. note:: This library only supports WS2812B-compliant addressable LED products (strips, bars, matrixes,etc.) -Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. ..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. LEDs can also be controlled using this API while the robot is disabled. From 20ee4f820bb71e6ef688851ff154d1ce6d339af0 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:54:47 -0500 Subject: [PATCH 21/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 5a1d15af05..1ff4f0d173 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -20,7 +20,7 @@ Timings: ..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. LEDs can also be controlled using this API while the robot is disabled. - HUB-75 LED matrixes, DotStar LEDs, and other types of addressable LED products are not supported by this API. +HUB-75 LED matrixes, DotStar LEDs, and other types of addressable LED products are not supported by this API. In addition to that, some WS2812B-compliant LEDs with different timings (WS2815, etc.) may not work. From f5e43330ca38830a8f54c0df6045f5ba593d313e Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:55:10 -0500 Subject: [PATCH 22/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 1ff4f0d173..fb2389cbb3 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -20,7 +20,6 @@ Timings: ..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. LEDs can also be controlled using this API while the robot is disabled. -HUB-75 LED matrixes, DotStar LEDs, and other types of addressable LED products are not supported by this API. In addition to that, some WS2812B-compliant LEDs with different timings (WS2815, etc.) may not work. From abd05ec3eb0ed67fd1f7d8b3d327751f72e812f4 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:55:26 -0500 Subject: [PATCH 23/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index fb2389cbb3..70ef8ca91f 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -21,7 +21,6 @@ Timings: ..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. LEDs can also be controlled using this API while the robot is disabled. - In addition to that, some WS2812B-compliant LEDs with different timings (WS2815, etc.) may not work. Timings: From 24aa6eac80b59ac154b2940980a7e4d64354f6d5 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:55:42 -0500 Subject: [PATCH 24/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 70ef8ca91f..c43d82f3dd 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -21,7 +21,6 @@ Timings: ..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. LEDs can also be controlled using this API while the robot is disabled. - Timings: T0H: 375ns From dd5f467547e5127856c74d75f27a837497b4ed55 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:55:57 -0500 Subject: [PATCH 25/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index c43d82f3dd..c6707fac45 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -20,7 +20,6 @@ Timings: ..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. LEDs can also be controlled using this API while the robot is disabled. - Timings: T0H: 375ns From e8ed7b17fc1669847c3ecbb565819196e4096c0b Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:56:33 -0500 Subject: [PATCH 26/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index c6707fac45..d0eea98f97 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -20,7 +20,6 @@ Timings: ..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. LEDs can also be controlled using this API while the robot is disabled. -Timings: T0H: 375ns T0L: 875ns From bbd913599dec27c14f8c52b693d5d98fef89f222 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:56:50 -0500 Subject: [PATCH 27/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index d0eea98f97..2ea752002a 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -24,7 +24,6 @@ Timings: T0H: 375ns T0L: 875ns T1H: 750ns -T1L: 500ns .. seealso:: For detailed information about powering and best practices for addressable LEDs, see the [Adafruit NeoPixel Überguide](https://learn.adafruit.com/adafruit-neopixel-uberguide/powering-neopixels). From 85d324a5a612d368dd88022624f5c9971b5f6350 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:57:34 -0500 Subject: [PATCH 28/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 2ea752002a..5910f29d9a 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -21,7 +21,6 @@ Timings: ..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. LEDs can also be controlled using this API while the robot is disabled. -T0H: 375ns T0L: 875ns T1H: 750ns From 68cdb8dd70ab2e7eddac560b5eb2002f8d7054dc Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:57:47 -0500 Subject: [PATCH 29/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 5910f29d9a..009e2d7ec1 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -21,7 +21,6 @@ Timings: ..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. LEDs can also be controlled using this API while the robot is disabled. -T0L: 875ns T1H: 750ns .. seealso:: For detailed information about powering and best practices for addressable LEDs, see the [Adafruit NeoPixel Überguide](https://learn.adafruit.com/adafruit-neopixel-uberguide/powering-neopixels). From 3e3d762f65ff2acacb261447832b847d2571dad1 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:58:00 -0500 Subject: [PATCH 30/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 009e2d7ec1..00da05f860 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -20,7 +20,6 @@ Timings: ..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. LEDs can also be controlled using this API while the robot is disabled. - T1H: 750ns .. seealso:: For detailed information about powering and best practices for addressable LEDs, see the [Adafruit NeoPixel Überguide](https://learn.adafruit.com/adafruit-neopixel-uberguide/powering-neopixels). From 11828c34b5bbecdd8e53b71cfcd8c7694dda879a Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 15:58:13 -0500 Subject: [PATCH 31/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 00da05f860..9147146cff 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -20,7 +20,6 @@ Timings: ..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. LEDs can also be controlled using this API while the robot is disabled. -T1H: 750ns .. seealso:: For detailed information about powering and best practices for addressable LEDs, see the [Adafruit NeoPixel Überguide](https://learn.adafruit.com/adafruit-neopixel-uberguide/powering-neopixels). From 317b0240f5152262e12dc551554b7bdc2954ae57 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 16:27:38 -0500 Subject: [PATCH 32/39] Apply suggestion from @Another-Person1 --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 9147146cff..da46fd9621 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -15,7 +15,6 @@ Timings: - T0L: 875ns - T1H: 750ns - T1L: 500ns -.. note:: This library only supports WS2812B-compliant addressable LED products (strips, bars, matrixes,etc.) ..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. LEDs can also be controlled using this API while the robot is disabled. From 41aa9ead193d00437d1e62f6a7356d58ca074b51 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 16:28:55 -0500 Subject: [PATCH 33/39] Fix docs --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index da46fd9621..c80a7e8277 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -13,7 +13,7 @@ Timings: - T0H: 375ns - T0L: 875ns -- T1H: 750ns + - T1L: 500ns From 561046762397e54c3b4066cdf5242b01e8af9283 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 16:46:20 -0500 Subject: [PATCH 34/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index c80a7e8277..da46fd9621 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -13,7 +13,7 @@ Timings: - T0H: 375ns - T0L: 875ns - +- T1H: 750ns - T1L: 500ns From 9c7a6a45b055d65b47cdf10e4ccc5522e7e668d7 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 16:51:02 -0500 Subject: [PATCH 35/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index da46fd9621..d41152a120 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -17,7 +17,7 @@ Timings: - T1L: 500ns -..important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. LEDs can also be controlled using this API while the robot is disabled. +.. important:: Unlike the roboRIO, the Systemcore supports multiple addressable LED products at once. LEDs can also be controlled using this API while the robot is disabled. .. seealso:: For detailed information about powering and best practices for addressable LEDs, see the [Adafruit NeoPixel Überguide](https://learn.adafruit.com/adafruit-neopixel-uberguide/powering-neopixels). From a269713e3a4a03d8bc1089f117ba08383f97c4b3 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 17:53:28 -0500 Subject: [PATCH 36/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index d41152a120..79aa0ca85b 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -27,7 +27,8 @@ Timings: .. note:: The 300-500 Ohm data line resistor and large 1000μF capacitor across the power pins are recommended, especially with larger quantities of LEDs. Also, use an external 5V regulator to power the LEDs, with the **grounds** tied together. .. warning:: WS2815 LEDs (and maybe other products as well, **check the label**) are designed for **12V** but have **5V** data (see above note). The **backup line on the first strip** needs to be connected to **ground**, **not** connected to the data line despite what other guides may say. - +Example wiring diagram: +![Systemcore Addressable LED](https://github.com/user-attachments/assets/d780b026-7c02-465b-8afa-5c2de5bee539) ## Instantiating the AddressableLED Object You first create an ``AddressableLED`` object that takes the SMART I/O port as an argument. Then you set the number of LEDs that are connected, which can be done with the ``setLength()`` function. From a5741d73a9e41c6f25d9b5c63ae6849ce0be543f Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Tue, 23 Dec 2025 19:22:46 -0500 Subject: [PATCH 37/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst fixed the image hopefully --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 79aa0ca85b..1d1206d264 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -28,7 +28,7 @@ Timings: .. warning:: WS2815 LEDs (and maybe other products as well, **check the label**) are designed for **12V** but have **5V** data (see above note). The **backup line on the first strip** needs to be connected to **ground**, **not** connected to the data line despite what other guides may say. Example wiring diagram: -![Systemcore Addressable LED](https://github.com/user-attachments/assets/d780b026-7c02-465b-8afa-5c2de5bee539) +.. image:: https://github.com/user-attachments/assets/2f1d7f05-f11b-4bed-bb91-267134f04f23) ## Instantiating the AddressableLED Object You first create an ``AddressableLED`` object that takes the SMART I/O port as an argument. Then you set the number of LEDs that are connected, which can be done with the ``setLength()`` function. From 7478f865f039ed67b6759b615c1f974d8b106380 Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Sat, 3 Jan 2026 19:09:43 -0500 Subject: [PATCH 38/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst Co-authored-by: sciencewhiz --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 1d1206d264..5340e30274 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -27,6 +27,7 @@ Timings: .. note:: The 300-500 Ohm data line resistor and large 1000μF capacitor across the power pins are recommended, especially with larger quantities of LEDs. Also, use an external 5V regulator to power the LEDs, with the **grounds** tied together. .. warning:: WS2815 LEDs (and maybe other products as well, **check the label**) are designed for **12V** but have **5V** data (see above note). The **backup line on the first strip** needs to be connected to **ground**, **not** connected to the data line despite what other guides may say. + Example wiring diagram: .. image:: https://github.com/user-attachments/assets/2f1d7f05-f11b-4bed-bb91-267134f04f23) ## Instantiating the AddressableLED Object From a11134df7c6ab5e5fea268feff49daa854bc7d1e Mon Sep 17 00:00:00 2001 From: Another-Person1 <170378877+Another-Person1@users.noreply.github.com> Date: Sat, 3 Jan 2026 19:48:08 -0500 Subject: [PATCH 39/39] Update source/docs/software/hardware-apis/misc/addressable-leds.rst Co-authored-by: sciencewhiz --- source/docs/software/hardware-apis/misc/addressable-leds.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/source/docs/software/hardware-apis/misc/addressable-leds.rst b/source/docs/software/hardware-apis/misc/addressable-leds.rst index 5340e30274..07b73c153e 100644 --- a/source/docs/software/hardware-apis/misc/addressable-leds.rst +++ b/source/docs/software/hardware-apis/misc/addressable-leds.rst @@ -7,6 +7,7 @@ LED strips are the most common, but other form factors such as matrixes and bars They allow teams to debug robot functionality from the audience, provide a visual marker for their robot, and can simply add some visual appeal. WPILib has an API for controlling WS2812, WS2812B, and potentially other LEDs that share the same protocol with their data pin connected to the SIGNAL pin of a SMART I/O connector. These types of addressable LEDs are also referred to as NeoPixels by other companies. LEDs can also be controlled using this API while the robot is disabled. + .. note:: This **library only supports WS2812B-compliant addressable** LEDs. HUB-75 LED matrixes, DotStar LEDs, and other types of addressable LEDs are not supported by this API. In addition to that, some WS2812B-compliant strips with different timings (WS2815, etc.) may not work. Timings: