Skip to content

network.USBD_NCM arrived upstream in 1.29: deliver it as a costume, or record the exclusion #21

Closed

Description

@bdbarnett

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.

Activity

  1. added
    pin-moveBelongs to the post-1.29 retool project, not the housekeeping sweep
    bradNeeds Brad: an account, ears, hands, or a decision
    and removed
    pin-moveBelongs to the post-1.29 retool project, not the housekeeping sweep
    on Sep 23, 2026
  2. bdbarnett commented on Sep 26, 2026

    @bdbarnett
    ContributorAuthor

    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.

  3. bdbarnett commented on Sep 26, 2026

    @bdbarnett
    ContributorAuthor

    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.

  4. added
    parkedWaiting on a named trigger
    and removed
    bradNeeds Brad: an account, ears, hands, or a decision
    on Sep 26, 2026
  5. bdbarnett commented on Oct 7, 2026

    @bdbarnett
    ContributorAuthor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    parkedWaiting on a named trigger

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions