Tutorial: Installing DFU-Driver on Windows [24 Feb 2015]

@wesner0019, if you have winzip or 7zip or winrar, you should be able to right-click on the file and open it as an archive. If so, open the .tar file which is also an archive. Once open, open the directory you will see (dfu-util-0.8-binaries) and you will see the win32-mingw32 directory. The contents of that directory need to replace the ones in the directory on your PC.

@peekay123, got it, working now, thanks!

1 Like

I tried for hours to get this to work on my windows7 machine. The dfu-util would never see the core. I finally read on another post that the dfu-util doesn’t like usb3 ports. I switched to a usb2 port and volia it works.

If dfu-util doesn’t see it, change it to a usb2 Port (usb3 didn’t work for me)


what do you mean exactly mean by

I did all the above but I can’t find dfu-util.exe and when I write dfu-util in cmd I get:
‘dfu-util’ is not recognized as an internal or external command…
What is the problem?

@mohmhus, Windows has an application search path. Open a CMD prompt and type “path” and you will see what your present windows search path is. For dfu-util to run from any directory, windows needs to find it. It does this by looking in the search path. You need to add the directory where you put the dfu-util.exe (and supporting files) to the path.

You can find help on doing that here or by googling “windows add to path” for example.


If you look at the end of the tutorial, i have already provided a link on how to do that :wink:

Thank you very much
The problem was that I didn’t know what a .tar file is :joy:


Is it working for Photon?

Thank you


1 Like

Thank you. I have tried it and no problem.

I tried to follow this step by step got the dll installed. then i hit this line. I did a search on my PC i don’t have dfu-util.exe was that application supposed to install that as well?

I managed to get my photon stuck in safe mode was trying flash tinker to it. Ended up resetting it using my phone. Let me know how to get this to work because being able to flash code from my pc instead of the web interface will be useful seeing as the web interface doesn’t have any form for source control.


Did you download dfu-util from the provided link, unpacked it and placed somewhere on your harddrive?

Or find it at the project home

For Windows, this might be interesting as well :wink:

I use CLI so it is installed. However it wouldn’t let me flash anything with out DFU-UTIL which i did a search on my pc and doesn’t exist.

I ran that drive program which i would assume would install the DFU-UTIL driver. Seams i missed where to get the DFU-UTIL from.

I will try this again the next time I manage to lock my photon in safemode.

That installer should also install DFU Util for you, hence the suggestion. It really does make things easier.

There’s also this guide that should tell you how to get DFU Util going manually:

You can also flash via particle flash --serial firmware.bin
But getting dfu-util is never wrong

And the place where to download it was provided in my previous post!

Great post. Thanks for sharing.
Olivia at http://www.ampronix.com/

I am getting the following error when trying to install dfu-util. Can someone please give me some suggestions?

C:\Users\bslau\Desktop\Photon\win32-mingw32>dfu-util -1
dfu-util: unknown option -- 1
Usage: dfu-util [options] ...
  -h --help                     Print this help message
  -V --version                  Print the version number
  -v --verbose                  Print verbose debug statements
  -l --list                     List currently attached DFU capable devices
  -e --detach                   Detach currently attached DFU capable devices
  -E --detach-delay seconds     Time to wait before reopening a device after detach
  -d --device <vendor>:<product>[,<vendor_dfu>:<product_dfu>]
                                Specify Vendor/Product ID(s) of DFU device
  -p --path <bus-port. ... .port>       Specify path to DFU device
  -c --cfg <config_nr>          Specify the Configuration of DFU device
  -i --intf <intf_nr>           Specify the DFU Interface number
  -S --serial <serial_string>[,<serial_string_dfu>]
                                Specify Serial String of DFU device
  -a --alt <alt>                Specify the Altsetting of the DFU Interface
                                by name or by number
  -t --transfer-size <size>     Specify the number of bytes per USB Transfer
  -U --upload <file>            Read firmware from device into <file>
  -Z --upload-size <bytes>      Specify the expected upload size in bytes
  -D --download <file>          Write firmware from <file> into device
  -R --reset                    Issue USB Reset signalling once we're finished
  -s --dfuse-address <address>  ST DfuSe mode, specify target address for
                                raw file download or upload. Not applicable for
                                DfuSe file (.dfu) downloads

Seems to be working. It should be lowercase L --> l

GEEZ. Ive been stuck here for a while. I thought it was a 1. thank you for the help!