ESP32-S3 as USB Host for Ethernet via usb-adapter

iParcelBox
Posts: 46
Joined: Sun Oct 27, 2019 3:12 pm

Re: ESP32-S3 as USB Host for Ethernet via usb-adapter

Postby iParcelBox » Sat Mar 08, 2025 12:00 am

For anyone else looking to do similar, I now have a version of cdc-ecm-host working for RTL8152 devices:

https://github.com/gadget-man/cdc-acm-host

It works for a basic ping, still need to test for other network events and it needs some tidying up, so PRs welcome!

chegewara
Posts: 2457
Joined: Wed Jun 14, 2017 9:00 pm

Re: ESP32-S3 as USB Host for Ethernet via usb-adapter

Postby chegewara » Sat Mar 08, 2025 1:27 pm

Hi, thanks for sharing.
I have RTL8153 device, but sadly it is using 0xFF driver, so it is not recognized.
I also tried with USB-NCM device on esp32-p4, but it also is not working, even if its recognized.

iParcelBox
Posts: 46
Joined: Sun Oct 27, 2019 3:12 pm

Re: ESP32-S3 as USB Host for Ethernet via usb-adapter

Postby iParcelBox » Sat Mar 08, 2025 2:04 pm

I believe that both RTL8152 and RTL8153 have both primary (0xFF) and Secondary configurations (CDC-ECM), so it should be working. I've just tested with a Belkin usb-c to ethernet dongle here which uses the RTL8153 chipset and was able to get an IP address over DHCP and then ping the device.

Could you test our example script and let me know what console output you get, so that we can look into whether it's a device-specific problem?

chegewara
Posts: 2457
Joined: Wed Jun 14, 2017 9:00 pm

Re: ESP32-S3 as USB Host for Ethernet via usb-adapter

Postby chegewara » Sat Mar 08, 2025 2:14 pm

Sadly the one i have, from waveshare, is using 0xFF interface too:

Code: Select all

Config Number: 1
	Number of Interfaces: 1
	Attributes: 80
	MaxPower Needed: 350mA

	Interface Number: 0
		Name: r8152
		Alternate Number: 0
		Class: ff
		Sub Class: ff
		Protocol: 00
		Number of Endpoints: 3
		

iParcelBox
Posts: 46
Joined: Sun Oct 27, 2019 3:12 pm

Re: ESP32-S3 as USB Host for Ethernet via usb-adapter

Postby iParcelBox » Sat Mar 08, 2025 4:58 pm

That looks as though it's the details for bConfigurationValue 1. On Realtek 8152 the cdc-ecm interface is on bConfigurationValue 2. Have you enabled `CONFIG_USB_HOST_ENABLE_ENUM_FILTER_CALLBACK` and captured the callback to set the second configuration?

Can you post the full device and config descriptors for your device, just to check that you have `bConfigurationValue 2`

Also, have you tried the sample code from my repo to test it?

Who is online

Users browsing this forum: No registered users and 135 guests