<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.bitcoin.it/w/index.php?action=history&amp;feed=atom&amp;title=Using_USB-DFU_Protocol</id>
	<title>Using USB-DFU Protocol - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://en.bitcoin.it/w/index.php?action=history&amp;feed=atom&amp;title=Using_USB-DFU_Protocol"/>
	<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Using_USB-DFU_Protocol&amp;action=history"/>
	<updated>2026-05-01T20:24:01Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Using_USB-DFU_Protocol&amp;diff=59875&amp;oldid=prev</id>
		<title>Johnson-Fan: Created page with &quot;{| border=1 class=&quot;wikitable&quot; style=&quot;width: 100%; height: 100px&quot; |+&lt;big&gt;&lt;big&gt;DFU Device Descriptor&lt;/big&gt;&lt;/big&gt; !Offset!!Field!!Size!!Value!!Descripton |- | 0 || bLength || 1 |...&quot;</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Using_USB-DFU_Protocol&amp;diff=59875&amp;oldid=prev"/>
		<updated>2016-01-08T03:13:49Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{| border=1 class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%; height: 100px&amp;quot; |+&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;DFU Device Descriptor&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt; !Offset!!Field!!Size!!Value!!Descripton |- | 0 || bLength || 1 |...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{| border=1 class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%; height: 100px&amp;quot;&lt;br /&gt;
|+&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;DFU Device Descriptor&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
!Offset!!Field!!Size!!Value!!Descripton&lt;br /&gt;
|-&lt;br /&gt;
| 0 || bLength || 1 || 12h || Size of this descriptor,in bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || bDescriptorType || 1 || 01h || DEVICE descriptor type.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || bcdUSB || 2 || 0100h || USB specification release number in binary coded decimal.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || bDeviceClass || 1 || 00h || See interface.&lt;br /&gt;
|-&lt;br /&gt;
| 5 || bDeviceSubClass || 1 || 00h || See interface&lt;br /&gt;
|-&lt;br /&gt;
| 6 || bDeviceProtocol || 1 || 00h || See interface.&lt;br /&gt;
|-&lt;br /&gt;
| 7 || bMaxPacketSize0 || 1 || 8,16,32,64 || Maximum packet size for endpoint.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || idVendor || 2 || ID || Vendor ID. Assigned by the USB-IF.&lt;br /&gt;
|-&lt;br /&gt;
| 10 || idProduct || 2 || ID || Product ID. Assigned by manufacturer.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || bcdDevice || 2 || BCD || Device release number in binary coded decimal.&lt;br /&gt;
|-&lt;br /&gt;
| 14 || iManufacturer || 1 || index || index of string descriptor.&lt;br /&gt;
|-&lt;br /&gt;
| 15 || iProduct || 1 || index || index of string descriptor.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || iSerialNumber || 1 || index || index of string descriptor.&lt;br /&gt;
|-&lt;br /&gt;
| 17 || bNumConfigurations || 1 || 01h || One configuration only for DFU. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%; height: 100px&amp;quot;&lt;br /&gt;
|+&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;DFU Interface Descriptor&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
! Offset !! Field !! Size !! Value !! Descripton&lt;br /&gt;
|-&lt;br /&gt;
| 0 || bLength || 1 || 09h || Size of this descriptor,in bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || bDescriptorType || 1 || 04h || INTERFACE descriptor type.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || bInterfaceNumber || 1 || Number || Number of this interface.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || bAlternateSetting || 1 || 00h || Alternate setting. Must be zero.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || bNumEndpoints || 1 || 00h || Only the control pipe is used.&lt;br /&gt;
|-&lt;br /&gt;
| 5 || bInterfaceClass || 1 || FEh || Application Specific Class Code.&lt;br /&gt;
|-&lt;br /&gt;
| 6 || bInterfaceSubClass || 1 || 01h || Device Firmware Upgrade Code.&lt;br /&gt;
|-&lt;br /&gt;
| 7 || bInterfaceProtocol || 1 || 01h || Runtime protocol.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || iInterface || 1 || index || Index of string descriptor for this interface.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%; height: 100px&amp;quot;&lt;br /&gt;
|+&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;DFU Functional Descriptor&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
! Offset !! Field !! Size !! Value !! Descripton&lt;br /&gt;
|-&lt;br /&gt;
| 0 || bLength || 1 || 09h || Size of this descriptor,in bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || bDescriptorType || 1 || 21h || DFU FUNCTIONAL descriptor type.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || bmAttributes || 1 || Bit mask || DFU attributes&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bit 7……4: reserved&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bit 3: device will perform a bus detach-attach sequence when it receives a DFU_DETACH request. The host must not issue a USB Reset. (bitWillDetach)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0 = no&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 = yes&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bit 2: device is able to communicate via USB afeter Manifestation phase.(bitManifestationTolerant)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0 = no, must see bus reset&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 = yes&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bit1: upload capable(bitCanUpload)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0 = no&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 = yes&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bit0: download capable(bitCanDnload)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0 = no&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 = yes&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 3 || wDetachTimeOut || 2 || Number || Time,in milliseconds, that the device will wait after receipt of the DFU_DETACH request. if this time elapses without a USB reaset, then the device will terminate the Reconfiguration phase and revert back to normal operation . This repreents the maximum time that the device can wait(depending on its timers, etc.).The host may specify a shorter timeout in the DFU_DETACH request.&lt;br /&gt;
|-&lt;br /&gt;
| 5 || wTransferSize || 2 || Number || Maximum number of bytes that the device can accept per control-write transaction.&lt;br /&gt;
|-&lt;br /&gt;
| 7 || bcdDFUVersion || 2 || BCD || Numeric expression identifying the version of the DFU Specification release.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=1 class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%; height: 100px&amp;quot;&lt;br /&gt;
|+&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;DFU Mode Interface Descriptor&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
! Offset !! Field !! Size !! Value !! Descripton&lt;br /&gt;
|-&lt;br /&gt;
| 0 || bLength || 1 || 09h || Size of this descriptor,in bytes.&lt;br /&gt;
|-&lt;br /&gt;
| 1 || bDescriptorType || 1 || 04h || INTERFACE descriptor type.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || bInterfaceNumber || 1 || Number || Number of this interface.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || bAlternateSetting || 1 || 00h || Alternate setting. Must be zero.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || bNumEndpoints || 1 || 00h || Only the control pipe is used.&lt;br /&gt;
|-&lt;br /&gt;
| 5 || bInterfaceClass || 1 || FEh || Application Specific Class Code.&lt;br /&gt;
|-&lt;br /&gt;
| 6 || bInterfaceSubClass || 1 || 01h || Device Firmware Upgrade Code.&lt;br /&gt;
|-&lt;br /&gt;
| 7 || bInterfaceProtocol || 1 || 02h || DFU mode protocol.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || iInterface || 1 || index || Index of string descriptor for this interface.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Johnson-Fan</name></author>
	</entry>
</feed>