From 1c18839472a9e308a47a20b91a2514bec103daed Mon Sep 17 00:00:00 2001 From: Jonathan Swoboda Date: Sun, 12 Jan 2025 16:25:45 -0500 Subject: [PATCH 1/3] Add use_psram to the docs --- components/light/esp32_rmt_led_strip.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/components/light/esp32_rmt_led_strip.rst b/components/light/esp32_rmt_led_strip.rst index e437991332..6ffaed6518 100644 --- a/components/light/esp32_rmt_led_strip.rst +++ b/components/light/esp32_rmt_led_strip.rst @@ -46,6 +46,7 @@ Configuration variables - **max_refresh_rate** (*Optional*, :ref:`config-time`): A time interval used to limit the number of commands a light can handle per second. For example, ``16ms`` will limit the light to a refresh rate of about 60Hz. Defaults to sending commands as quickly as changes are made to the lights. +- **use_psram** (*Optional*, boolean): Will allocate the memory from PSRAM instead of DRAM. Defaults to ``true``. IDF configuration variables: **************************** @@ -79,6 +80,12 @@ Arduino configuration variables: - All other options from :ref:`Light `. +.. note:: + + When **use_psram** is configured using IDF all RMT interrupts will be deferred, including RMT interrupts for other + components. RMT transactions rely on ping-pong interrupts, delayed handling can lead to an unpredictable result. + It is recommended to configure allocate the maximum RMT memory possible. + .. _esp32-rmt-led-strip-manual_timings: Manual Timings From 314302502895238bf1ff2d759832baa328cd1ead Mon Sep 17 00:00:00 2001 From: Jonathan Swoboda Date: Sun, 12 Jan 2025 17:24:37 -0500 Subject: [PATCH 2/3] Change psram default and fix wording --- components/light/esp32_rmt_led_strip.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/components/light/esp32_rmt_led_strip.rst b/components/light/esp32_rmt_led_strip.rst index 6ffaed6518..75c361cb46 100644 --- a/components/light/esp32_rmt_led_strip.rst +++ b/components/light/esp32_rmt_led_strip.rst @@ -46,7 +46,7 @@ Configuration variables - **max_refresh_rate** (*Optional*, :ref:`config-time`): A time interval used to limit the number of commands a light can handle per second. For example, ``16ms`` will limit the light to a refresh rate of about 60Hz. Defaults to sending commands as quickly as changes are made to the lights. -- **use_psram** (*Optional*, boolean): Will allocate the memory from PSRAM instead of DRAM. Defaults to ``true``. +- **use_psram** (*Optional*, boolean): Will allocate the memory from PSRAM instead of DRAM. Defaults to ``false``. IDF configuration variables: **************************** @@ -83,8 +83,8 @@ Arduino configuration variables: .. note:: When **use_psram** is configured using IDF all RMT interrupts will be deferred, including RMT interrupts for other - components. RMT transactions rely on ping-pong interrupts, delayed handling can lead to an unpredictable result. - It is recommended to configure allocate the maximum RMT memory possible. + components. RMT transactions rely on ping-pong interrupts, delayed handling could lead to an unpredictable result. + It is recommended to allocate the maximum RMT memory possible to help mitigate this. .. _esp32-rmt-led-strip-manual_timings: From e866395fd08285eb4b7568dae14f9f9d86c0ad46 Mon Sep 17 00:00:00 2001 From: Jonathan Swoboda Date: Sun, 12 Jan 2025 17:25:10 -0500 Subject: [PATCH 3/3] Fix wording --- components/light/esp32_rmt_led_strip.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/light/esp32_rmt_led_strip.rst b/components/light/esp32_rmt_led_strip.rst index 75c361cb46..16ce2e4ed1 100644 --- a/components/light/esp32_rmt_led_strip.rst +++ b/components/light/esp32_rmt_led_strip.rst @@ -46,7 +46,7 @@ Configuration variables - **max_refresh_rate** (*Optional*, :ref:`config-time`): A time interval used to limit the number of commands a light can handle per second. For example, ``16ms`` will limit the light to a refresh rate of about 60Hz. Defaults to sending commands as quickly as changes are made to the lights. -- **use_psram** (*Optional*, boolean): Will allocate the memory from PSRAM instead of DRAM. Defaults to ``false``. +- **use_psram** (*Optional*, boolean): Will allocate memory from PSRAM instead of DRAM. Defaults to ``false``. IDF configuration variables: ****************************