diff --git a/components/light/esp32_rmt_led_strip.rst b/components/light/esp32_rmt_led_strip.rst index 5b0ea33d29..fd23c0d3c9 100644 --- a/components/light/esp32_rmt_led_strip.rst +++ b/components/light/esp32_rmt_led_strip.rst @@ -23,7 +23,6 @@ Only for Arduino platforms (and ESP-IDF <5 which was used until ESPHome 2025), t light: - platform: esp32_rmt_led_strip - rmt_channel: 0 ... Configuration variables @@ -56,21 +55,22 @@ Configuration variables sending commands as quickly as changes are made to the lights. - **use_psram** (*Optional*, boolean): Set to ``false`` to force internal RAM allocation even if you have the the PSRAM component enabled. This can be useful if you're experiencing issues like flickering with your leds strip. Defaults to ``true``. -- **rmt_symbols** (*Optional*, int): The amount of RMT memory allocated to this component. Memory is shared by all - receivers and transmitters. On variants other than ``ESP32`` and ``ESP32-S2`` only half the symbol memory is - available to transmitters. Each symbol is 32 bits and contains two values. +- **rmt_symbols** (*Optional*, int): When ``use_dma`` is enabled, this sets the size of the driver's internal DMA + buffer. When DMA is disabled, it specifies how much RMT memory is allocated to the component. RMT memory is shared + across all components and should be allocated in multiples of the block size. On the ``ESP32`` and ``ESP32-S2`` + variants, RMT memory is shared between RX and TX components. On other variants, RX and TX have dedicated RMT memory. .. csv-table:: - :header: "ESP32 Variant", "Memory Size", "Block Size" + :header: "ESP32 Variant", "Available Memory", "Block Size" "ESP32", "512 symbols", "64 symbols" - "ESP32-C3", "192 symbols", "48 symbols" - "ESP32-C5", "192 symbols", "48 symbols" - "ESP32-C6", "192 symbols", "48 symbols" - "ESP32-H2", "192 symbols", "48 symbols" - "ESP32-P4", "384 symbols", "48 symbols" + "ESP32-C3", "96 symbols", "48 symbols" + "ESP32-C5", "96 symbols", "48 symbols" + "ESP32-C6", "96 symbols", "48 symbols" + "ESP32-H2", "96 symbols", "48 symbols" + "ESP32-P4", "192 symbols", "48 symbols" "ESP32-S2", "256 symbols", "64 symbols" - "ESP32-S3", "384 symbols", "48 symbols" + "ESP32-S3", "192 symbols", "48 symbols" - **use_dma** (*Optional*, boolean): Enable DMA on variants that support it. If enabled ``rmt_symbols`` controls the DMA buffer size and can be set to a large value. diff --git a/components/output/pca9685.rst b/components/output/pca9685.rst index a95f7878e0..7b26bf91d9 100644 --- a/components/output/pca9685.rst +++ b/components/output/pca9685.rst @@ -53,6 +53,22 @@ global ``pca9685`` hub and give it an id, and then define the pca9685_id: 'pca9685_hub1' channel: 0 +.. code-block:: yaml + + # Example configuration entry with disabled phase_balancer + pca9685: + - id: pca9685_hub1 + phase_balancer: none + + # Individual outputs + output: + - platform: pca9685 + pca9685_id: 'pca9685_hub1' + channel: 0 + - platform: pca9685 + pca9685_id: 'pca9685_hub1' + channel: 1 + Configuration variables: ************************ @@ -64,6 +80,15 @@ Configuration variables: Defaults to ``0x40``. - **id** (*Optional*, :ref:`config-id`): The id to use for this pca9685 component. Use this if you have multiple PCA9685s connected at the same time +- **phase_balancer** (*Optional*, string): The phase balancer algorithm to use (see below). + +Phase balancer: +*************** + +The PCA9685 allows to set different phase angles on the each output. ``linear`` is used by default. The following algorithmes can be used to set the phase angle of each output: + +- ``linear``: The Phase angle is set by distributing all defined outputs equally amoung 360°. So with 3 outputs the first would have 0°, the second 120° and the last 240°. This algorithmn can cause flickering when animating the light, because the PCA9685 chip will need an additional frame, where no pwm is generated, if the start angle is lower than the stop angle. +- `ǹone``: The Phase angle is always 0°. This is the safer option if you control led lights. .. _pca9685-output: diff --git a/components/remote_receiver.rst b/components/remote_receiver.rst index 321c5d3ade..f83a2d48b2 100644 --- a/components/remote_receiver.rst +++ b/components/remote_receiver.rst @@ -80,29 +80,29 @@ Configuration variables: - **filter** (*Optional*, :ref:`config-time`): Filter any pulses that are shorter than this. Useful for removing glitches from noisy signals. Allowed values are in range ``0`` to ``4294967295us``. Defaults to ``50us``. - **idle** (*Optional*, :ref:`config-time`): The amount of time that a signal should remain stable/unchanged for it to - be considered complete. Allowed values are in range ``0`` to ``4294967295us``. Defaults to ``10ms``. + be considered complete. The maximum value is ``65536us`` on ESP32, and ``4294967295us`` on other platforms. Defaults to ``10ms``. - **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. Useful when multiple receivers are configured on a single device. ESP32 configuration variables: ********************************** -- **rmt_symbols** (*Optional*, int): If ``use_dma`` is enabled, ``rmt_symbols`` represents the size of the driver's - internal DMA buffer. If DMA is not enabled, ``rmt_symbols`` determines the amount of RMT memory allocated to this - component. Memory is shared by all receivers and transmitters. On variants other than ``ESP32`` and ``ESP32-S2``, - only half of the symbol memory is available to receivers. Each symbol is 32 bits and contains two values. +- **rmt_symbols** (*Optional*, int): When ``use_dma`` is enabled, this sets the size of the driver's internal DMA + buffer. When DMA is disabled, it specifies how much RMT memory is allocated to the component. RMT memory is shared + across all components and should be allocated in multiples of the block size. On the ``ESP32`` and ``ESP32-S2`` + variants, RMT memory is shared between RX and TX components. On other variants, RX and TX have dedicated RMT memory. .. csv-table:: - :header: "ESP32 Variant", "Memory Size", "Block Size" + :header: "ESP32 Variant", "Available Memory", "Block Size" "ESP32", "512 symbols", "64 symbols" - "ESP32-C3", "192 symbols", "48 symbols" - "ESP32-C5", "192 symbols", "48 symbols" - "ESP32-C6", "192 symbols", "48 symbols" - "ESP32-H2", "192 symbols", "48 symbols" - "ESP32-P4", "384 symbols", "48 symbols" + "ESP32-C3", "96 symbols", "48 symbols" + "ESP32-C5", "96 symbols", "48 symbols" + "ESP32-C6", "96 symbols", "48 symbols" + "ESP32-H2", "96 symbols", "48 symbols" + "ESP32-P4", "192 symbols", "48 symbols" "ESP32-S2", "256 symbols", "64 symbols" - "ESP32-S3", "384 symbols", "48 symbols" + "ESP32-S3", "192 symbols", "48 symbols" - **receive_symbols** (*Optional*, int): Maximum receive length in symbols. On some variants the maximum receive is limited to ``rmt_symbols``. diff --git a/components/remote_transmitter.rst b/components/remote_transmitter.rst index d702af81c8..41b8bdc6fb 100644 --- a/components/remote_transmitter.rst +++ b/components/remote_transmitter.rst @@ -41,22 +41,22 @@ Configuration variables: ESP32 configuration variables: ********************************** -- **rmt_symbols** (*Optional*, int): If ``use_dma`` is enabled, ``rmt_symbols`` represents the size of the driver's - internal DMA buffer. If DMA is not enabled, ``rmt_symbols`` determines the amount of RMT memory allocated to this - component. Memory is shared by all receivers and transmitters. On variants other than ``ESP32`` and ``ESP32-S2``, - only half of the symbol memory is available to transmitters. Each symbol is 32 bits and contains two values. +- **rmt_symbols** (*Optional*, int): When ``use_dma`` is enabled, this sets the size of the driver's internal DMA + buffer. When DMA is disabled, it specifies how much RMT memory is allocated to the component. RMT memory is shared + across all components and should be allocated in multiples of the block size. On the ``ESP32`` and ``ESP32-S2`` + variants, RMT memory is shared between RX and TX components. On other variants, RX and TX have dedicated RMT memory. .. csv-table:: - :header: "ESP32 Variant", "Memory Size", "Block Size" + :header: "ESP32 Variant", "Available Memory", "Block Size" "ESP32", "512 symbols", "64 symbols" - "ESP32-C3", "192 symbols", "48 symbols" - "ESP32-C5", "192 symbols", "48 symbols" - "ESP32-C6", "192 symbols", "48 symbols" - "ESP32-H2", "192 symbols", "48 symbols" - "ESP32-P4", "384 symbols", "48 symbols" + "ESP32-C3", "96 symbols", "48 symbols" + "ESP32-C5", "96 symbols", "48 symbols" + "ESP32-C6", "96 symbols", "48 symbols" + "ESP32-H2", "96 symbols", "48 symbols" + "ESP32-P4", "192 symbols", "48 symbols" "ESP32-S2", "256 symbols", "64 symbols" - "ESP32-S3", "384 symbols", "48 symbols" + "ESP32-S3", "192 symbols", "48 symbols" - **clock_resolution** (*Optional*, int): The clock resolution used by the RMT peripheral in Hz. Defaults to ``1000000``. - **use_dma** (*Optional*, boolean): Enable DMA on variants that support it. If enabled ``rmt_symbols`` controls diff --git a/components/sx127x.rst b/components/sx127x.rst index 037552f23e..c89244bb6d 100644 --- a/components/sx127x.rst +++ b/components/sx127x.rst @@ -61,7 +61,7 @@ LoRa configuration variables: packet size is fixed. If not configured explicit header mode is enabled and variable packet sizes can be used. Maximum length is 256. Must be greater than zero when using a ``spreading_factor`` of 6. - **crc_enable** (**Optional**, bool): Enables a payload CRC calculation/check. -- **preamble_size** (**Optional**, int): Length of the preamble in symbols, minimum of 6. Defaults to 8. +- **preamble_size** (**Required**, int): Length of the preamble in symbols, minimum of 6. - **spreading_factor** (**Optional**, int): Spreading factor, values range from 6 to 12. Defaults to 7. - **coding_rate** (**Optional**, enum): Coding rate, values can be ``CR_4_5``, ``CR_4_6``, ``CR_4_7`` or ``CR_4_8``. Defaults to ``CR_4_5``.