Skip to content

Instantly share code, notes, and snippets.

@tmk
Created July 30, 2021 01:38
Show Gist options
  • Save tmk/57898ca51b6f61df9bdb8c2908a3de53 to your computer and use it in GitHub Desktop.
Save tmk/57898ca51b6f61df9bdb8c2908a3de53 to your computer and use it in GitHub Desktop.
Arduino Leonardo bootloader - 2341:0036
Bus 003 Device 103: ID 2341:0036 Arduino SA Arduino Leonardo
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 2 Communications
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x2341 Arduino SA
idProduct 0x0036
bcdDevice 0.01
iManufacturer 2
iProduct 1
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x003e
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 1 AT-commands (v.25ter)
iInterface 0
CDC Header:
bcdCDC 1.10
CDC ACM:
bmCapabilities 0x04
sends break
CDC Union:
bMasterInterface 0
bSlaveInterface 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 255
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 1
//////////////////////////////////////////////////////////////////////
// USB_desc_dump
// Address: 01
// Lowspeed: 00
// Devicer dump:
12 01 10 01 02 00 00 08 41 23 36 00 01 00 02 01
00 01
// Device:
bLength: 12
bDescriptorType: 01
bcdUSB: 0110
bDeviceClass: 02
bDeviceSubClass: 00
bDeviceProtocol: 00
bMaxPacketSize0: 08
idVendor: 2341
idProduct: 0036
bcdDevice: 0001
iManufacturer: 02
iProduct: 01
iSerialNumber: 00
bNumConfigurations: 01
// String Zero: len: 04
// 04 03 09 04
// LangId: 0409
// iManufacturer: String2(0409): len: 18
// 18 03 41 00 72 00 64 00 75 00 69 00 6E 00 6F 00
// 20 00 4C 00 4C 00 43 00
// Arduino LLC
// iProduct: String1(0409): len: 22
// 22 03 41 00 72 00 64 00 75 00 69 00 6E 00 6F 00
// 20 00 4C 00 65 00 6F 00 6E 00 61 00 72 00 64 00
// 6F 00
// Arduino Leonardo
// Config0 dump: len: 003E
09 02 3E 00 02 01 00 80 32 09 04 00 00 01 02 02
01 00 05 24 00 10 01 04 24 02 04 05 24 06 00 01
07 05 82 03 08 00 FF 09 04 01 00 02 0A 00 00 00
07 05 04 02 10 00 01 07 05 83 02 10 00 01
// Config:
bLength: 09
bDescriptorType: 02
wTotalLength: 003E
bNumInterfaces: 02
bConfigurationValue: 01
iConfiguration: 00
bmAttributes: 80
bMaxPower: 32
// Interface0.0:
bLength: 09
bDescriptorType: 04
bInterfaceNumber: 00
bAlternateSetting: 00
bNumEndpoints: 01
bInterfaceClass: 02
bInterfaceSubClass: 02
bInterfaceProtocol: 01
iInterface: 00
// Unknown Desc: type: 24 len: 05
05 24 00 10 01
// Unknown Desc: type: 24 len: 04
04 24 02 04
// Unknown Desc: type: 24 len: 05
05 24 06 00 01
// Endpoint:
bLength: 07
bDescriptorType: 05
bEndpointAddress: 82
bmAttributes: 03
wMaxPacketSize: 0008
bInterval: FF
// Interface1.0:
bLength: 09
bDescriptorType: 04
bInterfaceNumber: 01
bAlternateSetting: 00
bNumEndpoints: 02
bInterfaceClass: 0A
bInterfaceSubClass: 00
bInterfaceProtocol: 00
iInterface: 00
// Endpoint:
bLength: 07
bDescriptorType: 05
bEndpointAddress: 04
bmAttributes: 02
wMaxPacketSize: 0010
bInterval: 01
// Endpoint:
bLength: 07
bDescriptorType: 05
bEndpointAddress: 83
bmAttributes: 02
wMaxPacketSize: 0010
bInterval: 01
---
http://eleccelerator.com/usbdescreqparser/
0x09, // bLength
0x02, // bDescriptorType (Configuration)
0x3E, 0x00, // wTotalLength 62
0x02, // bNumInterfaces 2
0x01, // bConfigurationValue
0x00, // iConfiguration (String Index)
0x80, // bmAttributes
0x32, // bMaxPower 100mA
0x09, // bLength
0x04, // bDescriptorType (Interface)
0x00, // bInterfaceNumber 0
0x00, // bAlternateSetting
0x01, // bNumEndpoints 1
0x02, // bInterfaceClass
0x02, // bInterfaceSubClass
0x01, // bInterfaceProtocol
0x00, // iInterface (String Index)
0x05, // bLength
0x24, // bDescriptorType (Dependant on Type)
0x00, 0x10, 0x01,
0x04, // bLength
0x24, // bDescriptorType (Dependant on Type)
0x02, 0x04,
0x05, // bLength
0x24, // bDescriptorType (Dependant on Type)
0x06, 0x00, 0x01,
0x07, // bLength
0x05, // bDescriptorType (Endpoint)
0x82, // bEndpointAddress (IN/D2H)
0x03, // bmAttributes (Interrupt)
0x08, 0x00, // wMaxPacketSize 8
0xFF, // bInterval 255 (unit depends on device speed)
0x09, // bLength
0x04, // bDescriptorType (Interface)
0x01, // bInterfaceNumber 1
0x00, // bAlternateSetting
0x02, // bNumEndpoints 2
0x0A, // bInterfaceClass
0x00, // bInterfaceSubClass
0x00, // bInterfaceProtocol
0x00, // iInterface (String Index)
0x07, // bLength
0x05, // bDescriptorType (Endpoint)
0x04, // bEndpointAddress (OUT/H2D)
0x02, // bmAttributes (Bulk)
0x10, 0x00, // wMaxPacketSize 16
0x01, // bInterval 1 (unit depends on device speed)
0x07, // bLength
0x05, // bDescriptorType (Endpoint)
0x83, // bEndpointAddress (IN/D2H)
0x02, // bmAttributes (Bulk)
0x10, 0x00, // wMaxPacketSize 16
0x01, // bInterval 1 (unit depends on device speed)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment