Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bulk endpoints (and thus things that depend on them like AVR-CDC and CDC-232) don’t work on modern OSes #38

Open
th-in-gs opened this issue Jan 23, 2025 · 0 comments

Comments

@th-in-gs
Copy link

I don’t think this is fixable, but I wanted to file an issue here so that folks looking into it in the future don’t need to go down a long rabbit hole like I did.

Bulk endpoints made with V-USB do not and can not be made to work on modern macOS (tested on 15.2, but I believe it’s been true for some time). Experience of others on the web seems to suggest that this is also true on modern Windows and Linux.

Further details from macOS console:

IOUSBHostFamily		<Missing Description>	IOUSBHostFamily::validateEndpointMaxPacketSize: USB 2.0 5.[5|7].3: endpoint 0x01 invalid wMaxPacketSize 0x0008	default	11:38:22.779191-0500	kernel

This contains a direct reference to sections 5.5.3 and 5.7.3, which discuss packet size on control and interrupt endpoints respectively. The error is a bit misleading - 8 is a valid size for both of these, but the analogous subsection for bulk endpoints, 5.8.3, "Bulk Transfer Packet Size Constraints”, which is very clear that “A low-speed device must not have bulk endpoints.”

I guess OSes used to be more lenient, but that time is over. No amount of work will make bulk endpoints work. V-USB can only create low-speed devices, and OS USB subsystems no longer allow bulk endpoints on them (as the USB spec has always dictated).

Once-popular projects that you might want to get to work that can no longer work include AVR-CDC and related projects including the CDC-232 V-USB-based CDC serial port CDC-232:

http://www.recursion.jp/prose/avrcdc/
http://www.recursion.jp/prose/avrcdc/cdc-232.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant