# All DFU devices
[USB\CLASS_FE&SUBCLASS_01]
Plugin = dfu

# GD32VF103 Rev1
[USB\VID_28E9&PID_0189]
Flags = gd32,force-dfu-mode,will-disappear
Name = GD32VF103

# Realtek USB camera
[USB\VID_0BDA&PID_5850]
Flags = enforce-requires
CounterpartGuid = USB\VID_0BDA&PID_5800
[USB\VID_0BDA&PID_5855]
Flags = enforce-requires
CounterpartGuid = USB\VID_0BDA&PID_5800
[USB\VID_0BDA&PID_58FE]
Flags = enforce-requires
CounterpartGuid = USB\VID_0BDA&PID_5800
[USB\VID_0BDA&PID_5800]
Flags = detach-for-attach,enforce-requires

# Openmoko Freerunner / GTA02
[USB\VID_1D50&PID_5119]
Plugin = dfu
Flags = ignore-polltimeout,no-pid-change,no-dfu-runtime,needs-bootloader,no-get-status-upload

# OpenPCD Reader
[USB\VID_16C0&PID_076B]
Plugin = dfu
Flags = ignore-polltimeout

# SIMtrace
[USB\VID_16C0&PID_0762]
Plugin = dfu
Flags = ignore-polltimeout

# OpenPICC
[USB\VID_16C0&PID_076C]
Plugin = dfu
Flags = ignore-polltimeout

# Siemens AG, PXM 40 & PXM 50
[USB\VID_0908&PID_02C4]
Plugin = dfu
[USB\VID_0908&PID_02C5]
Plugin = dfu
[USB\VID_0908&PID_02C4&REV_0000]
Flags = ignore-polltimeout
[USB\VID_0908&PID_02C5&REV_0000]
Flags = ignore-polltimeout

# Midiman M-Audio Transit
[USB\VID_0763&PID_2806]
Plugin = dfu
Flags = ignore-polltimeout

# LPC DFU bootloader
[USB\VID_1FC9&PID_000C]
Plugin = dfu
Flags = force-dfu-mode

# m-stack DFU
[USB\VID_273F&PID_1003]
Flags = attach-upload-download
[USB\VID_273F&PID_100A]
Flags = attach-upload-download
[USB\VID_273F&PID_1008]
Flags = attach-upload-download

# HydraBus
[USB\VID_1D50&PID_60A7]
Plugin = dfu
Flags = no-dfu-runtime,needs-bootloader

# Hughski AT90USBKEY Mouse+DFU Demo
[USB\VID_273F&PID_2000]
Flags = unsigned-payload

# Jabra 410 [appIDLE & dfuIDLE]
[USB\VID_0B0E&PID_0411]
Plugin = dfu
Flags = no-pid-change,ignore-upload,attach-extra-reset

# Jabra 510 [appIDLE & dfuIDLE]
[USB\VID_0B0E&PID_0421]
Plugin = dfu
Flags = no-pid-change,ignore-upload,attach-extra-reset

# Jabra 710 [appIDLE & dfuIDLE]
[USB\VID_0B0E&PID_0982]
Plugin = dfu
Flags = no-pid-change,ignore-upload,attach-extra-reset

# Jabra 810 [appIDLE & dfuIDLE]
[USB\VID_0B0E&PID_0971]
Plugin = dfu
Flags = no-pid-change,ignore-upload,attach-extra-reset

# Atmel AT90USB Bootloader
[USB\VID_03EB&PID_2FF7]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
DfuForceVersion = 0xff01
[USB\VID_03EB&PID_2FF9]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
DfuForceVersion = 0xff01
[USB\VID_03EB&PID_2FFA]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
DfuForceVersion = 0xff01
[USB\VID_03EB&PID_2FFB]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
DfuForceVersion = 0xff01

# Atmel ATMEGA Bootloader
[USB\VID_03EB&PID_2FEE]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
[USB\VID_03EB&PID_2FEF]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
[USB\VID_03EB&PID_2FF0]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
[USB\VID_03EB&PID_2FF2]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
[USB\VID_03EB&PID_2FF3]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode
[USB\VID_03EB&PID_2FF4]
Plugin = dfu
Flags = use-any-interface,legacy-protocol,force-dfu-mode

# Atmel XMEGA Bootloader
[USB\VID_03EB&PID_2FE2]
Plugin = dfu
Flags = use-any-interface,force-dfu-mode
DfuForceVersion = 0xff01

# Leaflabs Maple3
[USB\VID_1EAF&PID_0003&REV_0200]
Plugin = dfu
DfuForceVersion = 0x0110

# AT32UC3B1256	[BLDR][USER]	USER@0x2000, BLDR+USER=0x40000
[DFU_AVR\CID_0x58200203]
DfuAltName = @Flash/0x2000/1*248Kg

# AT32UC3A3256	[BLDR][USER]	USER@0x2000, BLDR+USER=0x40000
[DFU_AVR\CID_0x58200204]
DfuAltName = @Flash/0x2000/1*248Kg

# AT90USB1287	[USER][BLDR]	BLDR@0x1e000, BLDR+USER=0x20000
[DFU_AVR\CID_0x581e9782]
DfuAltName = @Flash/0x0/1*120Kg

# AT90USB647	[USER][BLDR]	BLDR@0x0e000, BLDR+USER=0x10000
# AT90USB646	[USER][BLDR]	BLDR@0x0e000, BLDR+USER=0x10000
[DFU_AVR\CID_0x581e9682]
DfuAltName = @Flash/0x0/1*56Kg

# ATmega32U4	[USER][BLDR]	BLDR@0x07000, BLDR+USER=0x08000
[DFU_AVR\CID_0x581e9587]
DfuAltName = @Flash/0x0/1*28Kg

# ATmega16U4	[USER][BLDR]	BLDR@0x03000, BLDR+USER=0x04000
[DFU_AVR\CID_0x581e9488]
DfuAltName = @Flash/0x0/1*12Kg

# ATmega32U2	[USER][BLDR]	BLDR@0x07000, BLDR+USER=0x08000
[DFU_AVR\CID_0x581e958a]
DfuAltName = @Flash/0x0/1*28Kg

# ATmega16U2	[USER][BLDR]	BLDR@0x03000, BLDR+USER=0x04000
[DFU_AVR\CID_0x581e9489]
DfuAltName = @Flash/0x0/1*12Kg

# AT90USB162	[USER][BLDR]	BLDR@0x03000, BLDR+USER=0x04000
[DFU_AVR\CID_0x581e9482]
DfuAltName = @Flash/0x0/1*12Kg

# ATmega8U2	[USER][BLDR]	BLDR@0x01000, BLDR+USER=0x02000
[DFU_AVR\CID_0x581e9389]
DfuAltName = @Flash/0x0/1*4Kg

# AT90USB82	[USER][BLDR]	BLDR@0x01000, BLDR+USER=0x02000
[DFU_AVR\CID_0x581e9382]
DfuAltName = @Flash/0x0/1*4Kg

# ATxmega16A4	[USER]		USER=0x4000
[DFU_AVR\CID_0x1e9441]
DfuAltName = @Flash/0x0/1*16Kg

# ATxmega16C4	[USER]		USER=0x4000
[DFU_AVR\CID_0x1e9544]
DfuAltName = @Flash/0x0/1*16Kg

# ATxmega16D4	[USER]		USER=0x4000
[DFU_AVR\CID_0x1e9442]
DfuAltName = @Flash/0x0/1*16Kg

# ATxmega32A4	[USER]		USER=0x8000
[DFU_AVR\CID_0x1e9541]
DfuAltName = @Flash/0x0/1*32Kg

# ATxmega32C4	[USER]		USER=0x8000
[DFU_AVR\CID_0x1e9443]
DfuAltName = @Flash/0x0/1*32Kg

# ATxmega32D4	[USER]		USER=0x8000
[DFU_AVR\CID_0x1e9542]
DfuAltName = @Flash/0x0/1*32Kg

# ATxmega64A4	[USER]		USER=0x10000
[DFU_AVR\CID_0x1e9646]
DfuAltName = @Flash/0x0/1*64Kg

# ATxmega64C3	[USER]		USER=0x10000
[DFU_AVR\CID_0x1e9649]
DfuAltName = @Flash/0x0/1*64Kg

# ATxmega64D3	[USER]		USER=0x10000
[DFU_AVR\CID_0x1e964a]
DfuAltName = @Flash/0x0/1*64Kg

# ATxmega64D4	[USER]		USER=0x10000
[DFU_AVR\CID_0x1e9647]
DfuAltName = @Flash/0x0/1*64Kg

# ATxmega64A1	[USER]		USER=0x10000
[DFU_AVR\CID_0x1e964e]
DfuAltName = @Flash/0x0/1*64Kg

# ATxmega64A3	[USER]		USER=0x10000
[DFU_AVR\CID_0x1e9642]
DfuAltName = @Flash/0x0/1*64Kg

# ATxmega64B1	[USER]		USER=0x10000
[DFU_AVR\CID_0x1e9652]
DfuAltName = @Flash/0x0/1*64Kg

# ATxmega64B3	[USER]		USER=0x10000
[DFU_AVR\CID_0x1e9651]
DfuAltName = @Flash/0x0/1*64Kg

# ATxmega128C3	[USER]		USER=0x20000
[DFU_AVR\CID_0x1e9752]
DfuAltName = @Flash/0x0/1*128Kg

# ATxmega128D3	[USER]		USER=0x20000
[DFU_AVR\CID_0x1e9748]
DfuAltName = @Flash/0x0/1*128Kg

# ATxmega128D4	[USER]		USER=0x20000
[DFU_AVR\CID_0x1e9747]
DfuAltName = @Flash/0x0/1*128Kg

# ATxmega128A1	[USER]		USER=0x20000
[DFU_AVR\CID_0x1e974c]
DfuAltName = @Flash/0x0/1*128Kg

# ATxmega128A1D	[USER]		USER=0x20000
[DFU_AVR\CID_0x1e9741]
DfuAltName = @Flash/0x0/1*128Kg

# ATxmega128A3	[USER]		USER=0x20000
[DFU_AVR\CID_0x1e9742]
DfuAltName = @Flash/0x0/1*128Kg

# ATxmega128A4	[USER]		USER=0x20000
[DFU_AVR\CID_0x1e9746]
DfuAltName = @Flash/0x0/1*128Kg

# ATxmega128B1	[USER]		USER=0x20000
[DFU_AVR\CID_0x1e974d]
DfuAltName = @Flash/0x0/1*128Kg

# ATxmega128B3	[USER]		USER=0x20000
[DFU_AVR\CID_0x1e974b]
DfuAltName = @Flash/0x0/1*128Kg

# ATxmega192C3	[USER]		USER=0x30000
[DFU_AVR\CID_0x1e9751]
DfuAltName = @Flash/0x0/1*192Kg

# ATxmega192D3	[USER]		USER=0x30000
[DFU_AVR\CID_0x1e9749]
DfuAltName = @Flash/0x0/1*192Kg

# ATxmega192A1	[USER]		USER=0x30000
[DFU_AVR\CID_0x1e974e]
DfuAltName = @Flash/0x0/1*192Kg

# ATxmega192A3	[USER]		USER=0x30000
[DFU_AVR\CID_0x1e9744]
DfuAltName = @Flash/0x0/1*192Kg

# ATxmega256	[USER]		USER=0x40000
[DFU_AVR\CID_0x1e9846]
DfuAltName = @Flash/0x0/1*256Kg

# ATxmega256D3	[USER]		USER=0x40000
[DFU_AVR\CID_0x1e9844]
DfuAltName = @Flash/0x0/1*256Kg

# ATxmega256A3	[USER]		USER=0x40000
[DFU_AVR\CID_0x1e9842]
DfuAltName = @Flash/0x0/1*256Kg

# ATxmega256A3B	[USER]		USER=0x40000
[DFU_AVR\CID_0x1e9843]
DfuAltName = @Flash/0x0/1*256Kg

# ATxmega384C3	[USER]		USER=0x60000
[DFU_AVR\CID_0x1e9845]
DfuAltName = @Flash/0x0/1*384Kg

# ATxmega384D3	[USER]		USER=0x60000
[DFU_AVR\CID_0x1e9847]
DfuAltName = @Flash/0x0/1*384Kg

# ATxmega8E5	[USER]		USER=0x2000
[DFU_AVR\CID_0x1e9341]
DfuAltName = @Flash/0x0/1*8Kg

# ATxmega16E5	[USER]		USER=0x4000
[DFU_AVR\CID_0x1e9445]
DfuAltName = @Flash/0x0/1*16Kg

# ATxmega32E5	[USER]		USER=0x8000
[DFU_AVR\CID_0x1e954c]
DfuAltName = @Flash/0x0/1*32Kg

# STM32F745 dfuse bootloader
[USB\VID_0483&PID_DF11]
Flags = absent-sector-size,will-disappear
Plugin = dfu
DfuForceVersion = 0x011a
DfuForceTimeout = 5000

# Poly Studio USB
[USB\VID_095D&PID_9217]
Plugin = dfu
Flags = manifest-poll,no-bus-reset-attach,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 60000
[USB\VID_095D&PID_9218]
Plugin = dfu
Flags = manifest-poll,no-bus-reset-attach,allow-zero-polltimeout,signed-payload
RemoveDelay = 60000

# Poly Eagle Eye Cube
[USB\VID_095D&PID_9212]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,unsigned-payload
RemoveDelay = 30000
[USB\VID_095D&PID_9213]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,unsigned-payload
RemoveDelay = 30000

# Poly Studio P15
[USB\VID_095D&PID_9290]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 60000
[USB\VID_095D&PID_9291]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload
RemoveDelay = 60000

# Poly ULCC
[USB\VID_095D&PID_9160]
Plugin = dfu
Flags = manifest-poll,no-bus-reset-attach,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 60000
[USB\VID_095D&PID_927B]
Plugin = dfu
Flags = manifest-poll,no-bus-reset-attach,allow-zero-polltimeout,signed-payload
RemoveDelay = 60000

# Poly Eagle Eye Mini
[USB\VID_095D&PID_3001]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,unsigned-payload
RemoveDelay = 9000
[USB\VID_095D&PID_3002]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,unsigned-payload
RemoveDelay = 9000

# Poly Studio R30
[USB\VID_095D&PID_92B2]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 60000
[USB\VID_095D&PID_92B3]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload
RemoveDelay = 60000
[USB\VID_095D&PID_92B4]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 60000

# Poly Studio P5
[USB\VID_095D&PID_9296]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,unsigned-payload
RemoveDelay = 9000
[USB\VID_095D&PID_9297]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,unsigned-payload
RemoveDelay = 9000

# Poly Studio E70
[USB\VID_095D&PID_92A1]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 90000
[USB\VID_095D&PID_92A2]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload
RemoveDelay = 90000

# Poly Studio P21
[USB\VID_095D&PID_9298]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,unsigned-payload
RemoveDelay = 9000
[USB\VID_095D&PID_9299]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,unsigned-payload
RemoveDelay = 9000

# Poly Studio V52
[USB\VID_095D&PID_92C6]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 180000
[USB\VID_095D&PID_92C8]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 180000
[USB\VID_095D&PID_92C7]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload
RemoveDelay = 180000

# Poly Studio V72
[USB\VID_095D&PID_92D8]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 180000
[USB\VID_095D&PID_92DA]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 180000
[USB\VID_095D&PID_92D9]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload
RemoveDelay = 180000

# Poly Studio V12
[USB\VID_095D&PID_92D2]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 180000
[USB\VID_095D&PID_92D4]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload,index-force-detach
RemoveDelay = 180000
[USB\VID_095D&PID_92D3]
Plugin = dfu
Flags = manifest-poll,allow-zero-polltimeout,signed-payload
RemoveDelay = 180000

# AVer ATLAS CAM
[USB\VID_34AD&PID_0006]
Plugin = dfu
Flags = detach-for-attach
RemoveDelay = 60000

# AVer CAM520 Pro2
[USB\VID_2574&PID_0A30]
Plugin = dfu
Flags = detach-for-attach
RemoveDelay = 180000

# FlatFrog DFU
[USB\VID_25B5&PID_0004]
Plugin = dfu
Flags = manifest-poll,detach-for-attach,ignore-upload

# SunplusIT USB cameras
[USB\VID_1BCF&PID_0B1D]
Plugin = dfu
Flags = detach-for-attach,ignore-upload,ignore-polltimeout

[USB\VID_1BCF&PID_0B1E]
Plugin = dfu
Flags = detach-for-attach,ignore-upload

[USB\VID_1BCF&PID_0B22]
Plugin = dfu
Flags = detach-for-attach,ignore-upload

# Sonix USB cameras
[USB\VID_0C45&PID_636D]
Plugin = dfu
Flags = detach-for-attach,ignore-upload,enforce-requires
[USB\VID_0C45&PID_636C]
Plugin = dfu
Flags = detach-for-attach,ignore-upload,enforce-requires
[USB\VID_0C45&PID_636E]
Plugin = dfu
Flags = detach-for-attach,ignore-upload,enforce-requires
[USB\VID_0C45&PID_636F]
Plugin = dfu
Flags = detach-for-attach,ignore-upload,enforce-requires
[USB\VID_0C45&PID_6373]
Plugin = dfu
Flags = detach-for-attach,ignore-upload,enforce-requires
[USB\VID_0C45&PID_6374]
Plugin = dfu
Flags = detach-for-attach,ignore-upload,enforce-requires

# FPC Fingerprint Reader
[USB\VID_10A5&PID_FFE0]
DfuForceVersion = 0x0
Flags = enforce-requires
[USB\VID_10A5&PID_FFE1]
DfuForceVersion = 0x0
Flags = enforce-requires
[USB\VID_10A5&PID_9800]
DfuForceVersion = 0x0
Flags = enforce-requires
[USB\VID_10A5&PID_D805]
DfuForceVersion = 0x0
Flags = enforce-requires
