You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
network.USBD_NCM arrived upstream in 1.29: deliver it as a costume, or record the exclusion #21
MicroPython 1.29 adds network.USBD_NCM (Ethernet-over-USB as a USB device class; extmod/network_usbd_ncm.c, documented under network), off by default. usbif's costume roster is the org's statement of which USB device classes a board can wear, and it says nothing about NCM either way.
The pin-move checklist (micropython-pydevices#1) asks for one of two outcomes, and this issue is where it gets recorded:
Deliver it: a costume that enables USBD_NCM alongside (or instead of) the existing classes, with the descriptor policy usbif's extension header already applies, proven on the S3 and the P4 the way the other classes were.
Exclude it: a line in the roster saying NCM is upstream's own class, reachable by enabling it in a board's config without usbif, and why usbif does not wrap it.
Nothing is broken today; the class is simply unaccounted for. Found in the post-pin-move sweep, 2026-09-23.
Still unaccounted for on 1.29. Nothing in the README, docs, src or examples mentions NCM.
One thing to weigh: usbif serves the configuration descriptor itself. #26 shows that machine.USBDevice's runtime interfaces never reach the host on a usbif image, and network.USBD_NCM very likely hits the same wall. So "reachable without usbif" would really mean "on an image built without usbif".
@bdbarnett: deliver it as a costume, or record the exclusion? I'd record the exclusion for now: one roster line saying NCM needs an image without usbif. Build the costume when someone actually wants Ethernet over USB.
Brad's decision (2026-09-26): parked. The NCM (Ethernet over USB) costume waits until something in the program needs a wired-over-USB link. That's the trigger.
Activity
bdbarnett commentedon Sep 26, 2026
Still unaccounted for on 1.29. Nothing in the README, docs, src or examples mentions NCM.
One thing to weigh: usbif serves the configuration descriptor itself. #26 shows that
machine.USBDevice's runtime interfaces never reach the host on a usbif image, andnetwork.USBD_NCMvery likely hits the same wall. So "reachable without usbif" would really mean "on an image built without usbif".@bdbarnett: deliver it as a costume, or record the exclusion? I'd record the exclusion for now: one roster line saying NCM needs an image without usbif. Build the costume when someone actually wants Ethernet over USB.
bdbarnett commentedon Sep 26, 2026
Brad's decision (2026-09-26): parked. The NCM (Ethernet over USB) costume waits until something in the program needs a wired-over-USB link. That's the trigger.
bdbarnett commentedon Oct 7, 2026
Planned now in ROADMAP.md: https://github.com/PyDevices/usbif/blob/main/ROADMAP.md