Repository: espressif/idf-extra-components
Pull request #501: refactor(1wire): improve the driver to support esp-idf v6
Author: login: suda-morris
Created: 2025-05-13T15:02:15Z | Merged: 2025-05-19T06:44:16Z

The rmt driver in esp-idf v6.0 removes some deprecated config options like io_loop_back and io_od_mode. This PR is to adapt that change.

Tested passed locally with the following packages:

```
NOTICE: [1/3] ds18b20 (0.1.2) (/home/morris/esp/esp-bsp/components/ds18b20)
NOTICE: [2/3] onewire_bus (1.0.3) (/home/morris/esp/idf-extra-components/onewire_bus)
NOTICE: [3/3] idf (6.0.0)
```



Diff:
diff --git a/onewire_bus/CHANGELOG.md b/onewire_bus/CHANGELOG.md
index 5804b26e4d..d2366f9236 100644
--- a/onewire_bus/CHANGELOG.md
+++ b/onewire_bus/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.3
+
+- Improve the driver to support esp-idf v6.0
+
 ## 1.0.2
 
 - raise recovery time to support more sensor on longer wire (d0b2b52)
diff --git a/onewire_bus/CMakeLists.txt b/onewire_bus/CMakeLists.txt
index b1b729669a..a1322114cd 100644
--- a/onewire_bus/CMakeLists.txt
+++ b/onewire_bus/CMakeLists.txt
@@ -1,6 +1,19 @@
-idf_component_register(SRCS "src/onewire_bus_api.c"
-                            "src/onewire_bus_impl_rmt.c"
-                            "src/onewire_crc.c"
-                            "src/onewire_device.c"
+set(srcs "src/onewire_bus_api.c"
+         "src/onewire_crc.c"
+         "src/onewire_device.c")
+
+if(CONFIG_SOC_RMT_SUPPORTED)
+     list(APPEND srcs "src/onewire_bus_impl_rmt.c")
+endif()
+
+set(priv_requires)
+# Starting from esp-idf v5.3, the RMT drivers are moved to separate components
+if("${IDF_VERSION_MAJOR}.${IDF_VERSION_MINOR}" VERSION_GREATER_EQUAL "5.3")
+    list(APPEND priv_requires "esp_driver_rmt" "esp_driver_gpio")
+else()
+    list(APPEND priv_requires "driver")
+endif()
+
+idf_component_register(SRCS ${srcs}
                        INCLUDE_DIRS "include" "interface"
-                       PRIV_REQUIRES driver)
+                       PRIV_REQUIRES ${priv_requires})
diff --git a/onewire_bus/README.md b/onewire_bus/README.md
index afc865e937..dcb5a14fa6 100644
--- a/onewire_bus/README.md
+++ b/onewire_bus/README.md
@@ -3,3 +3,7 @@
 [![Component Registry](https://components.espressif.com/components/espressif/onewire_bus/badge.svg)](https://components.espressif.com/components/espressif/onewire_bus)
 
 This directory contains an implementation for Dallas 1-Wire bus by different peripherals. Currently only RMT is supported as the backend.
+
+## Appendix
+
+* [DS18B20 device driver based on the 1-Wire Bus driver](https://components.espressif.com/components/espressif/ds18b20) and the [DS18B20 Example](https://github.com/espressif/esp-bsp/tree/master/components/ds18b20/examples/ds18b20-read)
diff --git a/onewire_bus/idf_component.yml b/onewire_bus/idf_component.yml
index 59c9a8f537..2bb9d201c5 100644
--- a/onewire_bus/idf_component.yml
+++ b/onewire_bus/idf_component.yml
@@ -1,5 +1,5 @@
-version: "1.0.2"
-description: Driver for Dalas 1-Wire bus
+version: "1.0.3"
+description: Driver for Dallas 1-Wire bus
 url: https://github.com/espressif/idf-extra-components/tree/master/onewire_bus
 issues: "https://github.com/espressif/idf-extra-components/issues"
 dependencies:
diff --git a/onewire_bus/src/onewire_bus_impl_rmt.c b/onewire_bus/src/onewire_bus_impl_rmt.c
index 9840684f82..e0a5d94eed 100644
--- a/onewire_bus/src/onewire_bus_impl_rmt.c
+++ b/onewire_bus/src/onewire_bus_impl_rmt.c
@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
+ * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
  *
  * SPDX-License-Identifier: Apache-2.0
  */
@@ -12,8 +12,11 @@
 #include "esp_attr.h"
 #include "driver/rmt_tx.h"
 #include "driver/rmt_rx.h"
+#include "driver/gpio.h"
+#include "esp_private/gpio.h"
 #include "onewire_bus_impl_rmt.h"
 #include "onewire_bus_interface.h"
+#include "esp_idf_version.h"
 
 static const char *TAG = "1-wire.rmt";
 
@@ -114,6 +117,8 @@ typedef struct {
     rmt_channel_handle_t tx_channel; /*!< rmt tx channel handler */
     rmt_channel_handle_t rx_channel; /*!< rmt rx channel handler */
 
+    gpio_num_t data_gpio_num; /*!< GPIO number for 1-wire bus */
+
     rmt_encoder_handle_t tx_bytes_encoder; /*!< used to encode commands and data */
     rmt_encoder_handle_t tx_copy_encoder; /*!< used to encode reset pulse and bits */
 
@@ -253,6 +258,7 @@ esp_err_t onewire_new_bus_rmt(const onewire_bus_config_t *bus_config, const onew
 
     bus_rmt = calloc(1, sizeof(onewire_bus_rmt_obj_t));
     ESP_RETURN_ON_FALSE(bus_rmt, ESP_ERR_NO_MEM, TAG, "no mem for onewire_bus_rmt_obj_t");
+    bus_rmt->data_gpio_num = GPIO_NUM_NC;
 
     // create rmt bytes encoder to transmit 1-wire commands and data
     rmt_bytes_encoder_config_t bytes_encoder_config = {
@@ -268,7 +274,7 @@ esp_err_t onewire_new_bus_rmt(const onewire_bus_config_t *bus_config, const onew
     ESP_GOTO_ON_ERROR(rmt_new_copy_encoder(&copy_encoder_config, &bus_rmt->tx_copy_encoder),
                       err, TAG, "create copy encoder failed");
 
-    // Note: must create rmt rx channel before tx channel
+    // create RX and TX channels and bind them to the same GPIO
     rmt_rx_channel_config_t onewire_rx_channel_cfg = {
         .clk_src = RMT_CLK_SRC_DEFAULT,
         .resolution_hz = ONEWIRE_RMT_RESOLUTION_HZ,
@@ -278,19 +284,26 @@ esp_err_t onewire_new_bus_rmt(const onewire_bus_config_t *bus_config, const onew
     ESP_GOTO_ON_ERROR(rmt_new_rx_channel(&onewire_rx_channel_cfg, &bus_rmt->rx_channel),
                       err, TAG, "create rmt rx channel failed");
 
-    // create rmt tx channel
     rmt_tx_channel_config_t onewire_tx_channel_cfg = {
         .clk_src = RMT_CLK_SRC_DEFAULT,
         .resolution_hz = ONEWIRE_RMT_RESOLUTION_HZ,
         .gpio_num = bus_config->bus_gpio_num,
         .mem_block_symbols = ONEWIRE_RMT_DEFAULT_MEM_BLOCK_SYMBOLS,
         .trans_queue_depth = ONEWIRE_RMT_DEFAULT_TRANS_QUEUE_SIZE,
-        .flags.io_loop_back = true, // make tx channel coexist with rx channel on the same gpio pin
-        .flags.io_od_mode = true,   // enable open-drain mode for 1-wire bus
+#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(6, 0, 0)
+        .flags.io_loop_back = true,
+        .flags.io_od_mode = true,
+#endif
     };
     ESP_GOTO_ON_ERROR(rmt_new_tx_channel(&onewire_tx_channel_cfg, &bus_rmt->tx_channel),
                       err, TAG, "create rmt tx channel failed");
 
+#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(6, 0, 0)
+    bus_rmt->data_gpio_num = bus_config->bus_gpio_num;
+    // enable open-drain mode for 1-wire bus
+    gpio_od_enable(bus_rmt->data_gpio_num);
+#endif
+
     // allocate rmt rx symbol buffer, one RMT symbol represents one bit, so x8
     bus_rmt->rx_symbols_buf = malloc(rmt_config->max_rx_bytes * sizeof(rmt_symbol_word_t) * 8);
     ESP_GOTO_ON_FALSE(bus_rmt->rx_symbols_buf, ESP_ERR_NO_MEM, err, TAG, "no mem to store received RMT symbols");
@@ -366,6 +379,11 @@ static esp_err_t onewire_bus_rmt_destroy(onewire_bus_rmt_obj_t *bus_rmt)
     if (bus_rmt->rx_symbols_buf) {
         free(bus_rmt->rx_symbols_buf);
     }
+#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(6, 0, 0)
+    if (bus_rmt->data_gpio_num != GPIO_NUM_NC) {
+        gpio_od_disable(bus_rmt->data_gpio_num);
+    }
+#endif
     free(bus_rmt);
     return ESP_OK;
 }


Reviews:
user: login: copilot-pull-request-reviewer[bot]
body: ## Pull Request Overview

This PR refactors the 1-Wire driver to support esp-idf v6 by removing deprecated configuration options and adapting the channel configuration.  
- Updates copyright year.  
- Adds conditional compilation to support deprecated flags for ESP-IDF versions below 6.0.0 and new open-drain API calls for ESP-IDF v6.0.  
- Updates version and description in component and changelog files.

### Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

| File                                        | Description                                                  |
| ------------------------------------------- | ------------------------------------------------------------ |
| onewire_bus/src/onewire_bus_impl_rmt.c        | Adds version checks and enables/disables open-drain mode using new API; initializes data_gpio_num with a placeholder value. |
| onewire_bus/idf_component.yml                | Bumps version and corrects the driver description.           |
| onewire_bus/CHANGELOG.md                     | Documents the changes introduced for ESP-IDF v6 support.       |




state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-13T15:03:15Z
user: login: github-advanced-security[bot]
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-13T15:05:25Z
user: login: copilot-pull-request-reviewer[bot]
body: ## Pull Request Overview

This pull request refactors the 1-Wire driver to support esp-idf v6 by adjusting the RMT channel configuration and removing deprecated options. Key updates include:
- Conditional configuration of RMT channel flags based on esp-idf version.
- Introduction of GPIO functions to enable/disable the open-drain mode in esp-idf v6.
- Version bump and changelog update to reflect the changes.

### Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

| File                                         | Description                                                                       |
| -------------------------------------------- | --------------------------------------------------------------------------------- |
| onewire_bus/src/onewire_bus_impl_rmt.c         | Adjusts RMT channel configuration and adds conditional logic to support esp-idf v6|
| onewire_bus/idf_component.yml                  | Updates component version and corrects the bus description                        |
| onewire_bus/CHANGELOG.md                       | Updates changelog to include support for esp-idf v6                                 |




state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-14T02:08:20Z
user: login: github-advanced-security[bot]
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-14T07:26:39Z
user: login: copilot-pull-request-reviewer[bot]
body: ## Pull Request Overview

This PR refactors the 1-Wire RMT driver to support esp-idf v6 by conditionally applying configuration changes that remove deprecated options and enable the open-drain mode for the GPIO.  
- Update SPDX year and include necessary headers  
- Conditionally remove deprecated rmt_tx channel flags and enable GPIO open-drain mode in esp-idf v6  
- Update component metadata and changelog for version 1.0.3

### Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

| File                                | Description                                                               |
| ----------------------------------- | ------------------------------------------------------------------------- |
| onewire_bus/src/onewire_bus_impl_rmt.c | Refactored driver initialization to conditionally remove deprecated config options and enable GPIO open-drain mode based on esp-idf version |
| onewire_bus/idf_component.yml        | Updated version number and fixed minor spelling in description            |
| onewire_bus/CHANGELOG.md             | Added changelog entry for version 1.0.3                                   |




state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-05-14T07:26:52Z
user: login: suda-morris
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-05-14T07:30:39Z
user: login: github-advanced-security[bot]
state: COMMENTED
author_association: NONE
submitted_at: 2025-05-19T02:39:24Z
user: login: mahavirj
state: APPROVED
author_association: MEMBER
submitted_at: 2025-05-19T04:54:53Z

Review comments:
diff_hunk: @@ -253,6 +258,7 @@ esp_err_t onewire_new_bus_rmt(const onewire_bus_config_t *bus_config, const onew
 
     bus_rmt = calloc(1, sizeof(onewire_bus_rmt_obj_t));
     ESP_RETURN_ON_FALSE(bus_rmt, ESP_ERR_NO_MEM, TAG, "no mem for onewire_bus_rmt_obj_t");
+    bus_rmt.data_gpio_num = -1;
path: onewire_bus/src/onewire_bus_impl_rmt.c
user: login: Copilot
body: [nitpick] Avoid using the magic value -1 to represent an uninitialized gpio_num. Consider defining a constant (e.g., INVALID_GPIO_NUM) to improve code clarity.
```suggestion
    bus_rmt.data_gpio_num = INVALID_GPIO_NUM;
```
created_at: 2025-05-13T15:03:15Z
author_association: CONTRIBUTOR
diff_hunk: @@ -253,6 +258,7 @@
 
     bus_rmt = calloc(1, sizeof(onewire_bus_rmt_obj_t));
     ESP_RETURN_ON_FALSE(bus_rmt, ESP_ERR_NO_MEM, TAG, "no mem for onewire_bus_rmt_obj_t");
+    bus_rmt.data_gpio_num = -1;
path: onewire_bus/src/onewire_bus_impl_rmt.c
user: login: github-advanced-security[bot]
body: member reference type 'onewire_bus_rmt_obj_t *' is a pointer; did you mean to use '->'? [clang-diagnostic-error]

[Show more details](https://github.com/espressif/idf-extra-components/security/code-scanning/1515)
created_at: 2025-05-13T15:05:25Z
author_association: NONE
diff_hunk: @@ -12,8 +12,11 @@
 #include "esp_attr.h"
 #include "driver/rmt_tx.h"
 #include "driver/rmt_rx.h"
+#include "driver/gpio.h"
+#include "esp_private/gpio.h"
path: onewire_bus/src/onewire_bus_impl_rmt.c
user: login: Copilot
body: Using the internal header 'esp_private/gpio.h' could lead to compatibility issues in future updates since it is intended for private use. Consider using a public GPIO API if available.
```suggestion

```
created_at: 2025-05-14T02:08:20Z
author_association: CONTRIBUTOR
diff_hunk: @@ -366,6 +379,11 @@ static esp_err_t onewire_bus_rmt_destroy(onewire_bus_rmt_obj_t *bus_rmt)
     if (bus_rmt->rx_symbols_buf) {
         free(bus_rmt->rx_symbols_buf);
     }
+#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(6, 0, 0)
+    if (bus_rmt->data_gpio_num >= 0) {
path: onewire_bus/src/onewire_bus_impl_rmt.c
user: login: Copilot
body: Instead of using a hard-coded numeric test (>= 0) for validating the GPIO number, consider comparing against a defined constant (e.g., GPIO_NUM_NC) to improve code clarity.
```suggestion
    if (bus_rmt->data_gpio_num != GPIO_NUM_NC) {
```
created_at: 2025-05-14T02:08:20Z
author_association: CONTRIBUTOR
diff_hunk: @@ -278,19 +283,26 @@
     ESP_GOTO_ON_ERROR(rmt_new_rx_channel(&onewire_rx_channel_cfg, &bus_rmt->rx_channel),
                       err, TAG, "create rmt rx channel failed");
 
-    // create rmt tx channel
     rmt_tx_channel_config_t onewire_tx_channel_cfg = {
         .clk_src = RMT_CLK_SRC_DEFAULT,
         .resolution_hz = ONEWIRE_RMT_RESOLUTION_HZ,
         .gpio_num = bus_config->bus_gpio_num,
         .mem_block_symbols = ONEWIRE_RMT_DEFAULT_MEM_BLOCK_SYMBOLS,
         .trans_queue_depth = ONEWIRE_RMT_DEFAULT_TRANS_QUEUE_SIZE,
-        .flags.io_loop_back = true, // make tx channel coexist with rx channel on the same gpio pin
-        .flags.io_od_mode = true,   // enable open-drain mode for 1-wire bus
+#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(6, 0, 0)
+        .flags.io_loop_back = true,
+        .flags.io_od_mode = true,
+#endif
     };
     ESP_GOTO_ON_ERROR(rmt_new_tx_channel(&onewire_tx_channel_cfg, &bus_rmt->tx_channel),
                       err, TAG, "create rmt tx channel failed");
 
+#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(6, 0, 0)
+    // enable open-drain mode for 1-wire bus
+    gpio_od_enable(bus_config->bus_gpio_num);
path: onewire_bus/src/onewire_bus_impl_rmt.c
user: login: github-advanced-security[bot]
body: call to undeclared function 'gpio_od_enable'; ISO C99 and later do not support implicit function declarations [clang-diagnostic-implicit-function-declaration]

[Show more details](https://github.com/espressif/idf-extra-components/security/code-scanning/1516)
created_at: 2025-05-14T07:26:39Z
author_association: NONE
diff_hunk: @@ -366,6 +378,11 @@
     if (bus_rmt->rx_symbols_buf) {
         free(bus_rmt->rx_symbols_buf);
     }
+#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(6, 0, 0)
+    if (bus_rmt->data_gpio_num != GPIO_NUM_NC) {
+        gpio_od_disable(bus_rmt->data_gpio_num);
path: onewire_bus/src/onewire_bus_impl_rmt.c
user: login: github-advanced-security[bot]
body: call to undeclared function 'gpio_od_disable'; ISO C99 and later do not support implicit function declarations [clang-diagnostic-implicit-function-declaration]

[Show more details](https://github.com/espressif/idf-extra-components/security/code-scanning/1517)
created_at: 2025-05-14T07:26:39Z
author_association: NONE
diff_hunk: @@ -278,19 +283,26 @@ esp_err_t onewire_new_bus_rmt(const onewire_bus_config_t *bus_config, const onew
     ESP_GOTO_ON_ERROR(rmt_new_rx_channel(&onewire_rx_channel_cfg, &bus_rmt->rx_channel),
                       err, TAG, "create rmt rx channel failed");
 
-    // create rmt tx channel
     rmt_tx_channel_config_t onewire_tx_channel_cfg = {
         .clk_src = RMT_CLK_SRC_DEFAULT,
         .resolution_hz = ONEWIRE_RMT_RESOLUTION_HZ,
         .gpio_num = bus_config->bus_gpio_num,
         .mem_block_symbols = ONEWIRE_RMT_DEFAULT_MEM_BLOCK_SYMBOLS,
         .trans_queue_depth = ONEWIRE_RMT_DEFAULT_TRANS_QUEUE_SIZE,
-        .flags.io_loop_back = true, // make tx channel coexist with rx channel on the same gpio pin
-        .flags.io_od_mode = true,   // enable open-drain mode for 1-wire bus
+#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(6, 0, 0)
+        .flags.io_loop_back = true,
+        .flags.io_od_mode = true,
+#endif
     };
     ESP_GOTO_ON_ERROR(rmt_new_tx_channel(&onewire_tx_channel_cfg, &bus_rmt->tx_channel),
                       err, TAG, "create rmt tx channel failed");
 
+#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(6, 0, 0)
+    // enable open-drain mode for 1-wire bus
+    gpio_od_enable(bus_config->bus_gpio_num);
+#endif
+    bus_rmt->data_gpio_num = bus_config->bus_gpio_num;
path: onewire_bus/src/onewire_bus_impl_rmt.c
user: login: Copilot
body: [nitpick] Consider assigning bus_rmt->data_gpio_num earlier in the function using bus_config->bus_gpio_num to avoid redundant assignments and improve clarity regarding which GPIO value is used for configuring open-drain mode.
```suggestion
    bus_rmt->data_gpio_num = bus_config->bus_gpio_num;
    // enable open-drain mode for 1-wire bus
    gpio_od_enable(bus_rmt->data_gpio_num);
#endif
```
created_at: 2025-05-14T07:26:52Z
author_association: CONTRIBUTOR
diff_hunk: @@ -278,19 +283,26 @@
     ESP_GOTO_ON_ERROR(rmt_new_rx_channel(&onewire_rx_channel_cfg, &bus_rmt->rx_channel),
                       err, TAG, "create rmt rx channel failed");
 
-    // create rmt tx channel
     rmt_tx_channel_config_t onewire_tx_channel_cfg = {
         .clk_src = RMT_CLK_SRC_DEFAULT,
         .resolution_hz = ONEWIRE_RMT_RESOLUTION_HZ,
         .gpio_num = bus_config->bus_gpio_num,
         .mem_block_symbols = ONEWIRE_RMT_DEFAULT_MEM_BLOCK_SYMBOLS,
         .trans_queue_depth = ONEWIRE_RMT_DEFAULT_TRANS_QUEUE_SIZE,
-        .flags.io_loop_back = true, // make tx channel coexist with rx channel on the same gpio pin
-        .flags.io_od_mode = true,   // enable open-drain mode for 1-wire bus
+#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(6, 0, 0)
+        .flags.io_loop_back = true,
+        .flags.io_od_mode = true,
+#endif
     };
     ESP_GOTO_ON_ERROR(rmt_new_tx_channel(&onewire_tx_channel_cfg, &bus_rmt->tx_channel),
                       err, TAG, "create rmt tx channel failed");
 
+#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(6, 0, 0)
+    // enable open-drain mode for 1-wire bus
+    gpio_od_enable(bus_config->bus_gpio_num);
path: onewire_bus/src/onewire_bus_impl_rmt.c
user: login: suda-morris
body: it's declared in the `driver/gpio.h`, which is available on esp-idf v6.0
created_at: 2025-05-14T07:30:39Z
author_association: COLLABORATOR
diff_hunk: @@ -12,8 +12,11 @@
 #include "esp_attr.h"
 #include "driver/rmt_tx.h"
 #include "driver/rmt_rx.h"
+#include "driver/gpio.h"
path: onewire_bus/src/onewire_bus_impl_rmt.c
user: login: github-advanced-security[bot]
body: 'driver/gpio.h' file not found [clang-diagnostic-error]

[Show more details](https://github.com/espressif/idf-extra-components/security/code-scanning/1524)
created_at: 2025-05-19T02:39:24Z
author_association: NONE

PR comments:
user: login: github-actions[bot]
created_at: 2025-05-13T15:16:38Z
body: ## Test Results
 0 tests   0 ✅  10s ⏱️
15 suites  0 💤
15 files    0 ❌

Results for commit 4604173a.

[test-results]:data:application/gzip;base64,H4sIAN+nKmgC/1WMyw7CIBBFf6Vh7YKhUIw/YyiPZGJbzAAr479Lq7Gwu+fc5LxYwMUndhtAXQaWCuaTXCGTMW4788r1yvv53/dUrO3FA5+dCAaXTniiSD9DZUvNbHNfPmsHN7GD25aN64q5ApMTl6BHI/gsQShphAOtx6vTmk8KAkDwswLO3h/zjVQ+/gAAAA==

:recycle: This comment has been updated with latest results.
author_association: NONE
user: login: espzav
created_at: 2025-05-16T07:30:12Z
body: Hi @suda-morris, thank you for this PR. I checked only the code, LGTM. I haven't tested it on HW yet.
Please, do you plan to update readme with some examples of usage? I think this is missing there.
author_association: COLLABORATOR
user: login: suda-morris
created_at: 2025-05-16T08:56:52Z
body: Hi @espzav Thanks for the review. This is a middle ware, we have examples in https://github.com/espressif/esp-bsp/tree/master/components/ds18b20/examples/ds18b20-read and https://github.com/espressif/esp-idf/tree/master/examples/peripherals/rmt/onewire So it does have test coverage, just in a different place.
author_association: COLLABORATOR
user: login: espzav
created_at: 2025-05-16T09:33:51Z
body: > Hi @espzav Thanks for the review. This is a middle ware, we have examples in https://github.com/espressif/esp-bsp/tree/master/components/ds18b20/examples/ds18b20-read and https://github.com/espressif/esp-idf/tree/master/examples/peripherals/rmt/onewire So it does have test coverage, just in a different place.

Thanks for links, I think there will be nice to add these links to Readme with some text that examples and usage are on other place. 
author_association: COLLABORATOR
user: login: suda-morris
created_at: 2025-05-19T02:38:18Z
body: @vikramdattu Thanks for the advice. I updated the README file. 
author_association: COLLABORATOR