Having trouble connecting your flight controller (FC) to Betaflight configurator on your computer, or flashing firmware? In most cases, this is caused by missing or incorrect drivers, or bad cable. In this tutorial, I’ll explain the potential causes and simple step-by-step solutions to help you fix the issue. I’ll also cover the basics of the drivers needed for STM32-based flight controllers, so you understand what you are doing.
New to FPV? Learn the basics of flight controllers in my buyer’s guide: https://oscarliang.com/flight-controller/
Table of Contents
You Need Two Drivers
Betaflight flight controllers require two main drivers: the VCP driver and the DFU driver. Here’s what each does:
VCP Driver (Virtual COM Port)
- Used when your flight controller is in normal operating mode — this allows Betaflight Configurator to connect, read, and write settings.
- When it’s working properly, Betaflight Configurator will recognize the FC as a COM port, e.g.
COM3. - Windows usually installs this driver automatically, so for most users, it should be plug and play.
DFU Driver (Device Firmware Upgrade)
- Used when your flight controller is in bootloader mode — this is the mode required for flashing firmware.
- In this mode, the FC shows up in Windows as “
STM32 BOOTLOADER”, and in Betaflight Configurator as “DFU”. - Beginners often struggle with DFU mode because it requires manually putting the FC into bootloader mode and installing the DFU driver
- You may also have to repeat this process for different flight controllers, so expect to encounter DFU driver issues when you get a new drone. But once you understand the process and the common causes, though, it becomes easy to handle.
Learn how to enter DFU mode here: https://oscarliang.com/dfu-mode/
Failed to Open Serial Port
The error “Failed to open serial port” is one of the most common issues when connecting a flight controller to Betaflight Configurator.
Common Causes and Solutions
- Another software is using the COM port (e.g., BLHeli Configurator, INAV, or a serial terminal). Try closing all the apps, even your browser, anything that might be accessing the FC. Sometimes Windows locks the port, so try unplugging and replugging the USB cable to reset it. If that doesn’t work, restart your PC. Still no luck? Try a different PC to rule out software issues.
- Try a different USB cable, make sure it’s a data cable, not charge-only. Make sure the connector is firmly inserted on both ends.
- Missing or incorrect VCP driver. This is less common, but can happen if your STM32 VCP driver isn’t properly installed.
- Open Device Manager → Ports (COM & LPT). You should see something like:
STM32 Virtual COM Port (COM3). - If you see “Unknown Device” or “USB Serial Device”, you likely need to install the VCP driver. To fix it, there are 3 methods you can try:
- Download and run the ImpulseRC Driver Fixer tool here, this is the easiest way.
- Or install the Virtual COM Port (VCP) Driver from ST: https://www.st.com/en/development-tools/stsw-stm32102.html. You’ll need to create a login or provide your email address to receive the download link.
- Alternatively, try the official CP210x USB to UART Bridge Virtual COM Port driver here.
- Open Device Manager → Ports (COM & LPT). You should see something like:
Can’t Get Into Bootloader Mode (DFU)
To flash firmware, your flight controller (FC) needs to be in bootloader mode, also known as DFU mode.
Most flight controllers have a boot button. Hold down this button while plugging in the USB cable, and the FC should enter DFU mode. There are also other methods to enter DFU mode (for example, through Betaflight CLI commands). I’ve explained all of them in detail here — I won’t repeat them in this post to keep it short: https://oscarliang.com/dfu-mode/
If you can’t get into DFU mode, the easiest fix is to use the ImpulseRC Driver Fixer tool.
-
- Connect your flight controller to your computer via USB.
- Download and run the ImpulseRC Driver Fixer tool here.
- The tool will automatically detect your flight controller and install the correct drivers. If it keeps saying “Searching for flight controller”, try unplug FC and plug it back in without pressing the bootloader button.
Once it’s done, open Betaflight Configurator — your FC should now appear in DFU mode.
Still Can’t Get Into DFU Mode: Disconnect UART!
If you can’t get into DFU mode, or you get an error “Unexpected Number of Devices Detected” while using ImpulseRC Driver Fixer, it could be caused by other components connected to your FC that are interfering. This includes devices like: receiver, GPS module, DJI Air Unit etc. Basically anything that is connected to the serial ports / UART’s.
Solution: Disconnect all peripherals, leave only the USB cable plugged in, and run the tool again.
Wrong DFU Driver Installed
If your FC connects to Betaflight Configurator just fine, but when trying to flash firmware, it gives you the “Failed to open serial port” error and ImpulseRC Driver Fixer doesn’t resolve the issue, it’s possible that the wrong DFU driver is installed. In my case, it was “Guillemot STM DFU Device“, but the correct DFU driver should be “STM32 BOOTLOADER“.
How to Check
- Put your FC in DFU mode.
- Open Device Manager and look for “Guillemot STM DFU Device” under any category (often under Sound, Video and Game Controllers).
- If you see it — congratulations, you’ve found the problem! That’s the wrong driver.
Why Reinstalling the Driver Doesn’t Work
Simply reinstalling the driver using Zadig or ImpulseRC Driver Fixer might appear to work at first — the device may briefly show up as “STM32 BOOTLOADER” — but it will always revert back to “Guillemot STM DFU Device.”
This is because the Guillemot driver automatically reinstalls itself unless it’s completely removed from your system.
How to Fix It (Completely Remove Guillemot)
- Delete these two folders if they exist:
C:\Program Files\GuillemotC:\Program Files (x86)\Guillemot
- With your FC connected in DFU mode, open Device Manager, find
Guillemot STM DFU Device, right-click it → Uninstall device, and check “Delete the driver software for this device.” - Unplug the FC and reboot your computer.
- Put your FC back into bootloader mode and run ImpulseRC Driver Fixer again.
You should now be able to flash firmware successfully.
Nothing Works?
I’ve personally had a computer that could connect to Betaflight Configurator just fine — but never managed to flash firmware, no matter what I tried.
Different cables, different drivers, endless troubleshooting — nothing worked after trying for months.
If you have a stubborn computer like that, there’s the work around: Use the Speedybee app on your smartphone. You can connect to your FC, change settings, and flash firmware just like the desktop Betaflight Configurator.
- For Android phones, the cheapest way is to use an OTG cable, buy on Amazon: https://amzn.to/3kXAWsu (affiliate link). Or you could use the Speedybee Adapter 3 to connect via Wi-Fi.
- For iPhone users (and Android users without OTG support), your only option is the SpeedyBee Adapter: https://oscarliang.com/product-k74v
Getting Stuck on “Initiating reboot to bootloader”
If you’re on Windows and Betaflight Configurator it hangs on “Initiating reboot to bootloader”, you likely need to install the correct driver for the STM32 BOOTLOADER device.
- Open Device Manager, look for
STM32 BOOTLOADERunder Other Devices, or Universal Serial Bus devices, Go to View → Show hidden devices to ensure all devices are visible. - You might need to uninstall all STM Device in DFU Mode devices under Universal Serial Bus Controllers before Windows will install the
STM32 BOOTLOADERdevice. Make sure to check Delete the driver software for this device. - In the Configurator, go to the CLI tab and type
dfu. This puts the FC in Device Firmware Update mode. - Download and start Zadig (link can be found on the home page of Betaflight Configurator before you click connect)
- In Zadig, select Options > List all Devices, select STM32 BOOTLOADER and change the driver to WinUSB. Flash firmware should now work.
AT32 Flight Controllers
When you first plug an AT32 flight controller into your PC, Windows normally installs the drivers automatically, and Betaflight should be able to connect to it after a few seconds. In the COM Port it should show “AT32 Virtual COM Port”. If this is not the case, you can download and install the drivers manually:
- Go to the MCU page: https://www.arterychip.com/en/product/AT32F435.jsp
- In the “USB Tool and Driver” section , download “Virtual serial port composite PC driver”: https://www.arterychip.com/download/USB_Tool_Driver/VirtualCOM_Composite_DriverInstalll_V1.0.31.zip
AT32 FC also requires different DFU drivers. Again this might be installed automatically but if not you can do it manually.
- Go to the page of the microcontroller concerned, therefore the AT32F435: https://www.arterychip.com/en/product/AT32F435.jsp
- In Resources, then “Tool” at the bottom of the page, download “In-System-Programming tool supporting AT32 MCU”: https://www.arterychip.com/download/TOOL/Artery_ISP_Programmer_V2.0.11.zip
- Unzip and enter the “Artery_DFU_DriverInstall” directory to launch the installer. Start the installation then restart the PC
Note: the ImpulseRC Driver Fixer does not work for FC with AT32 processor, only STM32 ones.
How to Install Driver On MacOS
Driver installation on macOS is slightly different.
- Download and install the CP210x driver for macOS.
- During installation, macOS may block it because it’s from an unauthorized developer.
- Go to System Preferences → Security & Privacy.
- Click the padlock icon to unlock settings.
- Click “Enable” or “Allow” next to SiLabs.
- Restart your Mac.
- Once installed, you need to go back to the same place to allow unauthorised application, Silabs in this case.
FAQ
Q: I’m having trouble flashing the board. DFU mode shows up in Betaflight Configurator, but flashing fails with this message: “Read protection not active. USB device successfully closed.”
A: Try unchecking the “Full chip erase” option before flashing. After the firmware is installed, you can reset your settings in CLI by typing: “default” in CLI to reset all settings.
Conclusion
Driver issues are one of the most common frustrations when setting up a new drone or flight controller, especially across different MCU types. With the correct VCP and DFU drivers installed, Betaflight Configurator should connect and flash firmware reliably on your PC. And there are always work around if your PC fails you.
Edit History
- Jul 2017 – Article created
- Aug 2017 – Added fix for missing VCP driver
- Feb 2023 – Added fix for replacing Guillemot DFU driver with STM32
- Sep 2024 – Added fix regarding macOS
- Feb 2025 – Added instructions for installing drivers for AT32 flight controllers
- Nov 2025 – Rewrote tutorial for clarity and added more detailed instructions
50 comments
Mac SpeedyBee f405 wing, all suggestions failed. Finally succeeded with `sudo /Applications/INAV\ Configurator.app/Contents/MacOS/inav-configurator`
An interesting finding in case someone else falls on it. I was unable to flash my FC (SpeedyBeeF405Mini) on my PC (Win11) with the usual failed to open port problem. I tried ImpulceRC driver fixer, Zadig, around 10 different usb cables but nothing worked. Then I used my laptop (Win11) to give it a try and it flashed instantly without any problems.
What I found out is that I had installed the Thrustmaster drivers for T300RS (and probably same for other sim kits or anything that uses an STM32 controller actually) and the driver was hijacking the port as it saw the STM32.
I found that out from Zadig, which in STM32 BOOTLOADER entry it kept showing GuiSTDFUDev (v7.0.3.0) even though I had replaced driver with WinUSB 6.1.xxxx multiple times. Zadig claimed to have installed the driver successfully however that was not the case as the GuiSTDFUDev (v7.0.3.0) driver was still there. What I also thought later is that the STM32 bootloader never showed correctly under Ports category in device manager.
The solution was to completely uninstall the Guillemot GuiSTDFUDev (v7.0.3.0) driver and then do a clean install with Zagit. Then DFU worked fine. Leaving this here in case it helps someone in the future. Cya!
You might want to update the link to the ISP driver, currently it points to a 404 page. Here’s the updated page:
arterychip.com/en/support/tools.jsp?index=0
And the direct link:
arterychip.com/file/download/1764
I completely kill my home PC – it refusing to connect to any of my FC’s, but laptop works fine even with Artery-based FC’s without installing drivers. But in rare cases PC is working. What I have to add is since Betaflight-configurator now web-based application, I suspect my VPN software is interfering with connection. I’m also had a situation when COM-port is detected but was set at 9600 speed while BF-Configurator expect 115200. When I change speed to 115200 it works, but until reboot. Working laptop make me think that if I somehow manage to reset driver handling to default behavior – it will work, but I don’t know how. P.S. Big thanks to Oscar for providing useful information about drones for all these years.
I got an aio today and flashed it with an older version of betaflight. Before I flashed it , it was reading it fine. Now the online version of betaflight and the older version won’t see it on my Mac and now the only light that comes on is the red light. The blue light stopped flashing. I backed up the original firmware and tried reloading it but the Mac won’t see it at all. It’s like I fried it completely using the new firmware. Is it hopeless?
can you try a diferrent cable, and computer just in case?
Did you flash the wrong firmware that bricked the FC?
If that’s the case, try this guide: https://oscarliang.com/cannot-connect-to-naze32-brick-fix/
Was having issues updating my new Pavo 20 Pro. This info saved me :)
Thank you thank you thank you!!
Even though device manager was showing (and still does show) unknown device, I found the Guillemot driver installed.
I don’t know why it still says unknown device but it worked so I’m not touching it!
I just ran into the issue where the impulseRC driver fixer wasn’t working. My ELRS controller was on an connected to my drone. I turned off the controller and it worked! Hope this might be helpful to someone else
hi i got the failed to open serial port message but ive tried just about every cable in my house and ive downloaded the impulse driver, but none of it works. pls help
I am struggling to connect to Apple M2 Macbook Pro, no Com port. Struggling to find a good driver for virtual com port for M2 Apple silicon;( Has anyone succeeded connecting to modern macs? Would appreciate a good hint
Desoldering one wire from ELRS receiver (V -) solved my problem with DFU.
I had to disconnect the Walksnail VTX from the Crazy F405HD FC in my Mobula 8 to flash from BTFL 4.3.2 to 4.4.2
I unsoldered the ground wire and used the CLI command to get into DFU mode. Thanks!
Well I am facing an issue with ftdi adapter. My usb broke on the speedybee f405 v3 and now I wanted to try out bf 4.5.
When the fc gets into DFU mode it is not recognised by the pc. Other than that in nirmal mode it connects perfectly fine and I can adjust everything in Betaflight.
I was having issues with flashing new firmware with a new build using Iflight Blitz F435 which has the MCU: AT32F435CGU7. I TRIED EVERYTHING and almost gave up. I Download this driver for the AT32 FC’s and it fixed my problem. I still have the issue of my DJI controller 2 not connecting to FC. The same DJI 03 unit works with the controller 2 on my other drones. Not sure what the issue is. All the SBUS protocols are the same as my other drones in Betaflight. If anybody has advise on getting it to work, please let me know. Thanks for all your hard work Oscar!
I had difficulties getting the ImpulseRC Driver to work (“unexpected number of devices detected” error message), the trick was to plug in the USB cable, then wait until the FC went into wifi mode (rapidly flashing LED), then run the program.
if you have 2 programs running on one comport clean flight used for flashing,it will not flash
I bought an Eachine Wizard X220 (not X220s) drone. It’s my first FPV racer, and I just can’t get the FC to connect to my PC. I’ve tried different cables and the Impulse RC software, but it doesn’t find my FC. Please help.
Do you have an Android phone? Try the Speedybee app, and connect the FC to your phone via OTG: https://oscarliang.com/fpv-app/
None of this worked for me. I think flight controllers hate me.
You are my new best friend, that impulse driver fixer worked. I bought 3 speedybee f405 fc and one right after another it flashed them all. Thank you so much.
I have problem with my speedybee F405 wing, able to connect DFU mode, and flash firmware. But after 2 minute disconnected. And I connect it again, not showing any port.
I’m using macbook, i try using other FC, it can connect normally.
Could you help me oscar!!
Do you have any devices connected to the Speedybee FC? Like receiver, GPS, etc? remove everything and try again?
I was about to get despirate until I found your article on the wrong STM bootloader for the SpeedyBee f405 wing using my Windows 11 pc. I followed your instructions to remove the Guillemot STM DFU Device, ant that worked.
Fantastic !!
That solved my problem, thank you very much Oscar. you are a legend :)
I was not able to enter DFU mode, the FC was not recognized on the PC without disconnected everything.
“disconnecting everything from the flight controller. Such as receiver, GPS etc, everything that uses the UART”
Hi i have fc spracing f3 acro but impulse rc can’t detect it and when i using zadig, it don’t work or connect to cleanflight. How to fix it pls?
does anything appear at all in Device Manager when you plug it into your computer? Do you hear any sound when plugging it in? If nothing new appears, and no sound, it’s likely that your computer isn’t detecting the FC. Maybe bad cable or the FC is toasted.
maybe try a different cable and make sure it’s 100% a data cable.
try it on a different computer if none of these work.
last resort would be connecting it to your android phone, or use the speedybee adapter if you have an iphone, I used this method when my new computer didn’t work (until i found a way to fix the driver issue).
Bro please help me… I got wrong when using zadig. So now my fc cannt read by Betaflight. The fc read by PC its like flashdisk. Please help mee
Hello, I have downloaded and installed all of the drivers. I just went in using Zadig tool and updated the serial bus device on my windows device and was successful but I am getting the same message i got before (STM32 – timed out, programming: FAILED). I have also tried to use the impulse RC but it just searches and never finds my FC. Can anyone help me out??
I have Mamba F405 mk2 and I have problem in BetaFlight because when I change any option an wont to save an reeboot BF freezing and anything happend? Whtat can be? On other newer laptop it’s work well, maybe my PC is broken, haw can I repair?
Yaa I have also mamba f4 mk2 FC it doesn’t connect to betaflight , I have spent 1 day to fix the Driver but it didn’t connect. Does anyone have any solution for mamba f405 mk2 FC. Even it doesn’t Detect by Computor it directly goes to DFU mode.
Has anyone seen the DFU mode open the USB port and close it without installing the firmware?
The INAV message log is
2019-10-11 @ 12:54:04 — USB device successfully opened with ID: 1
2019-10-11 @ 12:54:04 — USB device successfully closed
So nothing happens!!
File is
arduplane_with_bl.hex
I believe all the drivers are correct,
The STM32 BOOTLOADER shows on the Device Manager (Windows 10)
I can connect to the FC via the Com port as usual.
The FC is the new Matek F765 Wing.
I want to flash ardupilot.
Its like mine now. Si what the solution bro???
Hello
My flight controller diatone mamba f405 is not showing any sensor on board after I flashed the firmware with STM32F405 firmware. What could be the problem?
Had to comment to say thank you !!
HI,
My Diatone GT M3 V2 won’t connect to Betaflight or let me flash the firmware. When I connect the battery it beeps 3 times only, not 5 as it should. Please, I’ve been looking for an answer to this for hours and hours.The FC appears to work because it has its green light on, steady. I use a Mac laptop so I don’t think is a matter of drivers. Please give some some advice to fix this. Thank you!!
So I’m having an issue I’ve never seen and cannot seem to find a solution. My FC shows up fine at com5, and I can start the connection. It just says connecting for a moment, saying successfully serial port successfuly opened then changes to successfully closed. Everything is brand new, this is a first time setup on this quad.
Hi I’m having the same issue with both of my Rekon 5’s atm. Did you find a solution?
Thank you very much for this tutorial, I had been looking for a solution to my problem for a long time.
I have a dys f4 pro v2
Greetings from Spain
i get an error 99 on impulse rc fixing tool :-\
I have all the same issues. But after reading this I don’t feel so bad. The mamba FC I just purchased is the problem because this FC came with a type C usb on it. No matter what I do my laptop will not recognize it. I’ve been in device manager and all through my system nothing I do will work on that FC.
Same error. It worked after using Zadig in Bootloader mode !
The Impulse Driver Fixer works! Spent hours looking for a solution. Thanks!
My FC won’t connect after a hard impact that broke the nylon standoffs. When I plug it into USB all windows does is make the ‘usb connection’ sound over and over. I can connect with my other quads. Is the FC cooked? The original 4 in 1esc is good and being used, but I wanted to try and salvage the FC if possible. I’ve even tried shorting the boot pins but nothing.
I have tried using Zdaig and when I try and replace the USB drivers I get the error:
Drivers already installed.
My spf3 wont talk to computer anymore after flashing. My other quads all still connect fine. Is my usb on fc cooked??
Hi, I’ve done all this, when I plug the FC board into my computer with a good cable windows recognizes it, but none of the configurators will show it.
What am I doing wrong?
I’m using impulse RC and I instaled before a lot of usb drivers. Now when I simply want to connect another FC board, there’s the “failed to open serial port” . I’m using Impulse RC at every connections with new FC board and it works! Is it normal to use it every time? Conflict with USB?
thank you for this post oscar!! saved my betaflight f3 board…..fkin drivers :/
Might be worth mentioning that if COM port doesn’t show up after flashing the FW, you might need to install the STM32 VCP drivers.
Another thing that I’ve experienced is conflicts in COM ports with other USB-to-serial drivers (Prolific, FTDI, etc.) so it might be worth removing those if you’re having trouble.
thank you David, that’s excellent advice !