diff --git a/ports/esp32s2/mpconfigport.mk b/ports/esp32s2/mpconfigport.mk index 2d324e1618..7dcd3355f5 100644 --- a/ports/esp32s2/mpconfigport.mk +++ b/ports/esp32s2/mpconfigport.mk @@ -30,6 +30,7 @@ CIRCUITPY_ROTARYIO = 1 CIRCUITPY_NVM = 1 # We don't have enough endpoints to include MIDI. CIRCUITPY_USB_MIDI = 0 +CIRCUITPY_USB_HID = 0 # We have borrowed the VENDOR nomenclature from tinyusb. VENDOR AKA WEBUSB CIRCUITPY_USB_VENDOR = 1 CIRCUITPY_WIFI = 1 diff --git a/tools/gen_usb_descriptor.py b/tools/gen_usb_descriptor.py index 210ca19238..36c6f45a6e 100644 --- a/tools/gen_usb_descriptor.py +++ b/tools/gen_usb_descriptor.py @@ -390,8 +390,32 @@ audio_control_interface = standard.InterfaceDescriptor( audio_interfaces = [audio_control_interface] + cs_ac_interface.audio_streaming_interfaces + cs_ac_interface.midi_streaming_interfaces # TODO New code goes here to create vendor objects +# Starting out with a clone-and-modify of the HID descriptors +vendor_endpoint_in_descriptor = standard.EndpointDescriptor( + description="VENDOR in", + bEndpointAddress=args.vendor_ep_num_in | standard.EndpointDescriptor.DIRECTION_IN, + bmAttributes=standard.EndpointDescriptor.TYPE_BULK, + bInterval=16) -vendor_interfaces = [] # TODO Fix this! +vendor_endpoint_out_descriptor = standard.EndpointDescriptor( + description="VENDOR out", + bEndpointAddress=args.vendor_ep_num_out | standard.EndpointDescriptor.DIRECTION_OUT, + bmAttributes=standard.EndpointDescriptor.TYPE_BULK, + bInterval=16) + +vendor_interface = standard.InterfaceDescriptor( + description="VENDOR", + bInterfaceClass=0xff, # vendor.VENDOR_CLASS, + bInterfaceSubClass=0x00, #vendor.VENDOR_SUBCLASS_???,, + bInterfaceProtocol=0x00, #vendor.VENDOR_PROTOCOL_NONE, + iInterface=StringIndex.index("{} VENDOR".format(args.interface_name)), + subdescriptors=[ + vendor_endpoint_in_descriptor, + vendor_endpoint_out_descriptor, + ] +) + +vendor_interfaces = [vendor_interface] interfaces_to_join = [] @@ -737,7 +761,7 @@ const tusb_desc_webusb_url_t desc_webusb_url = // #define.. // SWAG for now. Will have to be manually corrected until generated by gen_usb_descriptor.py -#define ITF_NUM_VENDOR 6i +#define ITF_NUM_VENDOR 3 //--------------------------------------------------------------------+ // BOS Descriptor