Skip to content

Commit 5efa5ab

Browse files
Merge branch 'feature/usb_device_examples_update_v2.0.0' into 'master'
feature(usb_device): Examples update to esp_tinyusb v2.0.0 Closes IDF-13618 See merge request espressif/esp-idf!41610
2 parents ab2829d + 852ecc3 commit 5efa5ab

File tree

18 files changed

+169
-168
lines changed

18 files changed

+169
-168
lines changed

examples/network/sta2eth/main/idf_component.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
## IDF Component Manager Manifest File
22
dependencies:
33
espressif/esp_tinyusb:
4-
version: "^1.3.0"
4+
version: "^2.0.0"
55
rules:
66
- if: "idf_version >=4.4"
77
- if: "target in [esp32s2, esp32s3]"

examples/network/sta2eth/main/usb_ncm_iface.c

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
2+
* SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD
33
*
44
* SPDX-License-Identifier: Unlicense OR CC0-1.0
55
*/
@@ -12,6 +12,7 @@
1212
#include "esp_netif.h"
1313
#include "esp_event.h"
1414
#include "tinyusb.h"
15+
#include "tinyusb_default_config.h"
1516
#include "tinyusb_net.h"
1617
#include "wired_iface.h"
1718
#include "dhcpserver/dhcpserver_options.h"
@@ -44,9 +45,7 @@ void mac_spoof(mac_spoof_direction_t direction, uint8_t *buffer, uint16_t len, u
4445

4546
esp_err_t wired_bridge_init(wired_rx_cb_t rx_cb, wired_free_cb_t free_cb)
4647
{
47-
const tinyusb_config_t tusb_cfg = {
48-
.external_phy = false,
49-
};
48+
const tinyusb_config_t tusb_cfg = TINYUSB_DEFAULT_CONFIG();
5049
ESP_ERROR_CHECK(tinyusb_driver_install(&tusb_cfg));
5150

5251
tinyusb_net_config_t net_config = {
@@ -56,7 +55,7 @@ esp_err_t wired_bridge_init(wired_rx_cb_t rx_cb, wired_free_cb_t free_cb)
5655

5756
esp_read_mac(net_config.mac_addr, ESP_MAC_WIFI_STA);
5857

59-
esp_err_t ret = tinyusb_net_init(TINYUSB_USBDEV_0, &net_config);
58+
esp_err_t ret = tinyusb_net_init(&net_config);
6059
if (ret != ESP_OK) {
6160
ESP_LOGE(TAG, "USB net init but not connect wifi");
6261
return ret;
@@ -113,9 +112,7 @@ static esp_err_t netif_recv_callback(void *buffer, uint16_t len, void *ctx)
113112
*/
114113
esp_err_t wired_netif_init(void)
115114
{
116-
const tinyusb_config_t tusb_cfg = {
117-
.external_phy = false,
118-
};
115+
const tinyusb_config_t tusb_cfg = TINYUSB_DEFAULT_CONFIG();
119116
ESP_ERROR_CHECK(tinyusb_driver_install(&tusb_cfg));
120117

121118
const tinyusb_net_config_t net_config = {
@@ -125,7 +122,7 @@ esp_err_t wired_netif_init(void)
125122
.on_recv_callback = netif_recv_callback,
126123
};
127124

128-
esp_err_t ret = tinyusb_net_init(TINYUSB_USBDEV_0, &net_config);
125+
esp_err_t ret = tinyusb_net_init(&net_config);
129126
if (ret != ESP_OK) {
130127
ESP_LOGE(TAG, "Cannot initialize USB Net device");
131128
return ret;
Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,4 @@
11
# ESP32S3 has USB-OTG, let's prefer virtual Ethernet (USB-NCM device)
22
CONFIG_EXAMPLE_WIRED_INTERFACE_IS_USB=y
33
CONFIG_EXAMPLE_WIRED_INTERFACE_IS_ETHERNET=n
4-
5-
# TinyUSB needs to be initialized and run from one core
6-
# that's why we pin the task to CPU0 and init tusb in the task
7-
# on dual core devices (ESP32S3)
8-
CONFIG_TINYUSB_TASK_AFFINITY_CPU0=y
9-
CONFIG_TINYUSB_INIT_IN_DEFAULT_TASK=y
10-
114
CONFIG_TINYUSB_NET_MODE_NCM=y
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
## IDF Component Manager Manifest File
22
dependencies:
3-
espressif/esp_tinyusb: "^1.2"
3+
espressif/esp_tinyusb:
4+
version: "^2.0.0"

examples/peripherals/usb/device/tusb_composite_msc_serialdevice/main/tusb_composite_main.c

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
2+
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
33
*
44
* SPDX-License-Identifier: Unlicense OR CC0-1.0
55
*/
@@ -10,8 +10,9 @@
1010
#include "esp_partition.h"
1111
#include "esp_check.h"
1212
#include "tinyusb.h"
13-
#include "tusb_msc_storage.h"
14-
#include "tusb_cdc_acm.h"
13+
#include "tinyusb_default_config.h"
14+
#include "tinyusb_msc.h"
15+
#include "tinyusb_cdc_acm.h"
1516

1617
#define BASE_PATH "/usb" // base path to mount the partition
1718

@@ -144,42 +145,36 @@ void app_main(void)
144145
ESP_LOGI(TAG, "Initializing storage...");
145146

146147
static wl_handle_t wl_handle = WL_INVALID_HANDLE;
148+
147149
ESP_ERROR_CHECK(storage_init_spiflash(&wl_handle));
148150

149-
const tinyusb_msc_spiflash_config_t config_spi = {
150-
.wl_handle = wl_handle
151+
tinyusb_msc_storage_handle_t storage_hdl = NULL;
152+
153+
const tinyusb_msc_storage_config_t storage_cfg = {
154+
.mount_point = TINYUSB_MSC_STORAGE_MOUNT_APP, // Initial mount point to APP
155+
.medium.wl_handle = wl_handle,
156+
.fat_fs = {
157+
.base_path = BASE_PATH, // User specific base path
158+
},
151159
};
152-
ESP_ERROR_CHECK(tinyusb_msc_storage_init_spiflash(&config_spi));
153-
ESP_ERROR_CHECK(tinyusb_msc_storage_mount(BASE_PATH));
160+
161+
ESP_ERROR_CHECK(tinyusb_msc_new_storage_spiflash(&storage_cfg, &storage_hdl));
162+
154163
file_operations();
155164

156165
ESP_LOGI(TAG, "USB Composite initialization");
157-
const tinyusb_config_t tusb_cfg = {
158-
.device_descriptor = NULL,
159-
.string_descriptor = NULL,
160-
.string_descriptor_count = 0,
161-
.external_phy = false,
162-
#if (TUD_OPT_HIGH_SPEED)
163-
.fs_configuration_descriptor = NULL,
164-
.hs_configuration_descriptor = NULL,
165-
.qualifier_descriptor = NULL,
166-
#else
167-
.configuration_descriptor = NULL,
168-
#endif // TUD_OPT_HIGH_SPEED
169-
};
166+
const tinyusb_config_t tusb_cfg = TINYUSB_DEFAULT_CONFIG();
170167
ESP_ERROR_CHECK(tinyusb_driver_install(&tusb_cfg));
171168

172169
tinyusb_config_cdcacm_t acm_cfg = {
173-
.usb_dev = TINYUSB_USBDEV_0,
174170
.cdc_port = TINYUSB_CDC_ACM_0,
175-
.rx_unread_buf_sz = 64,
176171
.callback_rx = &tinyusb_cdc_rx_callback, // the first way to register a callback
177172
.callback_rx_wanted_char = NULL,
178173
.callback_line_state_changed = NULL,
179174
.callback_line_coding_changed = NULL
180175
};
181176

182-
ESP_ERROR_CHECK(tusb_cdc_acm_init(&acm_cfg));
177+
ESP_ERROR_CHECK(tinyusb_cdcacm_init(&acm_cfg));
183178
/* the second way to register a callback */
184179
ESP_ERROR_CHECK(tinyusb_cdcacm_register_callback(
185180
TINYUSB_CDC_ACM_0,
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
## IDF Component Manager Manifest File
22
dependencies:
3-
espressif/esp_tinyusb: "^1"
3+
espressif/esp_tinyusb:
4+
version: "^2.0.0"
Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
/*
2-
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
2+
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
33
*
44
* SPDX-License-Identifier: Unlicense OR CC0-1.0
55
*/
66

77
// DESCRIPTION:
8-
// This example contains minimal code to make ESP32-S2 based device
9-
// recognizable by USB-host devices as a USB Serial Device printing output from
10-
// the application.
8+
// This example contains minimal code to make a USB device, recognizable by USB-host as
9+
// a USB Serial Device printing output from the application.
1110

1211
#include <stdio.h>
1312
#include <stdlib.h>
@@ -16,8 +15,9 @@
1615
#include "freertos/FreeRTOS.h"
1716
#include "freertos/task.h"
1817
#include "tinyusb.h"
19-
#include "tusb_cdc_acm.h"
20-
#include "tusb_console.h"
18+
#include "tinyusb_default_config.h"
19+
#include "tinyusb_cdc_acm.h"
20+
#include "tinyusb_console.h"
2121
#include "sdkconfig.h"
2222

2323
static const char *TAG = "example";
@@ -27,23 +27,11 @@ void app_main(void)
2727
/* Setting TinyUSB up */
2828
ESP_LOGI(TAG, "USB initialization");
2929

30-
const tinyusb_config_t tusb_cfg = {
31-
.device_descriptor = NULL,
32-
.string_descriptor = NULL,
33-
.external_phy = false, // In the most cases you need to use a `false` value
34-
#if (TUD_OPT_HIGH_SPEED)
35-
.fs_configuration_descriptor = NULL,
36-
.hs_configuration_descriptor = NULL,
37-
.qualifier_descriptor = NULL,
38-
#else
39-
.configuration_descriptor = NULL,
40-
#endif // TUD_OPT_HIGH_SPEED
41-
};
42-
30+
const tinyusb_config_t tusb_cfg = TINYUSB_DEFAULT_CONFIG();
4331
ESP_ERROR_CHECK(tinyusb_driver_install(&tusb_cfg));
4432

4533
tinyusb_config_cdcacm_t acm_cfg = { 0 }; // the configuration uses default values
46-
ESP_ERROR_CHECK(tusb_cdc_acm_init(&acm_cfg));
34+
ESP_ERROR_CHECK(tinyusb_cdcacm_init(&acm_cfg));
4735

4836
ESP_LOGI(TAG, "USB initialization DONE");
4937
while (1) {
@@ -54,13 +42,13 @@ void app_main(void)
5442
fprintf(stderr, "example: print -> stderr\n");
5543
vTaskDelay(1000 / portTICK_PERIOD_MS);
5644

57-
esp_tusb_init_console(TINYUSB_CDC_ACM_0); // log to usb
45+
ESP_ERROR_CHECK(tinyusb_console_init(TINYUSB_CDC_ACM_0)); // log to usb
5846
ESP_LOGI(TAG, "log -> USB");
5947
vTaskDelay(1000 / portTICK_PERIOD_MS);
6048
fprintf(stdout, "example: print -> stdout\n");
6149
vTaskDelay(1000 / portTICK_PERIOD_MS);
6250
fprintf(stderr, "example: print -> stderr\n");
6351
vTaskDelay(1000 / portTICK_PERIOD_MS);
64-
esp_tusb_deinit_console(TINYUSB_CDC_ACM_0); // log to uart
52+
ESP_ERROR_CHECK(tinyusb_console_deinit(TINYUSB_CDC_ACM_0)); // log to uart
6553
}
6654
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
## IDF Component Manager Manifest File
22
dependencies:
3-
espressif/esp_tinyusb: "^1.1"
3+
espressif/esp_tinyusb:
4+
version: "^2.0.0"

examples/peripherals/usb/device/tusb_hid/main/tusb_hid_example_main.c

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include "freertos/FreeRTOS.h"
1010
#include "freertos/task.h"
1111
#include "tinyusb.h"
12+
#include "tinyusb_default_config.h"
1213
#include "class/hid/hid_device.h"
1314
#include "driver/gpio.h"
1415

@@ -164,19 +165,15 @@ void app_main(void)
164165
ESP_ERROR_CHECK(gpio_config(&boot_button_config));
165166

166167
ESP_LOGI(TAG, "USB initialization");
167-
const tinyusb_config_t tusb_cfg = {
168-
.device_descriptor = NULL,
169-
.string_descriptor = hid_string_descriptor,
170-
.string_descriptor_count = sizeof(hid_string_descriptor) / sizeof(hid_string_descriptor[0]),
171-
.external_phy = false,
168+
tinyusb_config_t tusb_cfg = TINYUSB_DEFAULT_CONFIG();
169+
170+
tusb_cfg.descriptor.device = NULL;
171+
tusb_cfg.descriptor.full_speed_config = hid_configuration_descriptor;
172+
tusb_cfg.descriptor.string = hid_string_descriptor;
173+
tusb_cfg.descriptor.string_count = sizeof(hid_string_descriptor) / sizeof(hid_string_descriptor[0]);
172174
#if (TUD_OPT_HIGH_SPEED)
173-
.fs_configuration_descriptor = hid_configuration_descriptor, // HID configuration descriptor for full-speed and high-speed are the same
174-
.hs_configuration_descriptor = hid_configuration_descriptor,
175-
.qualifier_descriptor = NULL,
176-
#else
177-
.configuration_descriptor = hid_configuration_descriptor,
175+
tusb_cfg.descriptor.high_speed_config = hid_configuration_descriptor;
178176
#endif // TUD_OPT_HIGH_SPEED
179-
};
180177

181178
ESP_ERROR_CHECK(tinyusb_driver_install(&tusb_cfg));
182179
ESP_LOGI(TAG, "USB initialization DONE");
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
## IDF Component Manager Manifest File
22
dependencies:
3-
espressif/esp_tinyusb: "^1.1"
3+
espressif/esp_tinyusb:
4+
version: "^2.0.0"

0 commit comments

Comments
 (0)