How to Fix Flight Controller Driver Issues — Can’t Connect to Betaflight or Flash Firmware (VCP & DFU)

by Oscar

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.

Some of the links on this page are affiliate links. I receive a commission (at no extra cost to you) if you make a purchase after clicking on one of these affiliate links. This helps support the free content for the community on this website. Please read our Affiliate Link Policy for more information.

New to FPV? Learn the basics of flight controllers in my buyer’s guide: https://oscarliang.com/flight-controller/

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

  1. 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.
  2. 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.
  3. Missing or incorrect VCP driver. This is less common, but can happen if your STM32 VCP driver isn’t properly installed.
    1. Open Device Manager → Ports (COM & LPT). You should see something like: STM32 Virtual COM Port (COM3).
    2. 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:
      1. Download and run the ImpulseRC Driver Fixer tool here, this is the easiest way.
      2. 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.
      3. Alternatively, try the official CP210x USB to UART Bridge Virtual COM Port driver here.

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.

    1. Connect your flight controller to your computer via USB.
  1. Download and run the ImpulseRC Driver Fixer tool here.
  2. 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.

Betaflight Configurator Ports 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

  1. Put your FC in DFU mode.
  2. Open Device Manager and look for “Guillemot STM DFU Device” under any category (often under Sound, Video and Game Controllers).
  3. 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)

  1. Delete these two folders if they exist:
    1. C:\Program Files\Guillemot
    2. C:\Program Files (x86)\Guillemot
  2. 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.”
  3. Unplug the FC and reboot your computer.
  4. 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.

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.

  1. Open Device Manager, look for STM32 BOOTLOADER under Other Devices, or Universal Serial Bus devices, Go to View → Show hidden devices to ensure all devices are visible.
  2. You might need to uninstall all STM Device in DFU Mode devices under Universal Serial Bus Controllers before Windows will install the STM32 BOOTLOADER device. Make sure to check Delete the driver software for this device.
  3. In the Configurator, go to the CLI tab and type dfu. This puts the FC in Device Firmware Update mode.
  4. Download and start Zadig (link can be found on the home page of Betaflight Configurator before you click connect)
  5. In Zadig, select Options > List all Devices, select STM32 BOOTLOADER and change the driver to WinUSB. Flash firmware should now work.

Install Zadig Driver Flight Controller Stm32

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.

  1. Download and install the CP210x driver for macOS.
  2. During installation, macOS may block it because it’s from an unauthorized developer.
    1. Go to System Preferences → Security & Privacy.
    2. Click the padlock icon to unlock settings.
    3. Click “Enable” or “Allow” next to SiLabs.
    4. Restart your Mac.
  3. 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

Leave a Comment

By using this form, you agree with the storage and handling of your data by this website. Note that all comments are held for moderation before appearing.

50 comments

Brian 16th June 2026 - 4:38 pm

Mac SpeedyBee f405 wing, all suggestions failed. Finally succeeded with `sudo /Applications/INAV\ Configurator.app/Contents/MacOS/inav-configurator`

Reply
Alex 7th April 2026 - 1:02 pm

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!

Reply
SanderPuh 29th March 2026 - 8:51 am

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

Reply
cheat 13th February 2026 - 3:03 pm

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.

Reply
Jared Mudgett 28th December 2025 - 2:36 am

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?

Reply
Oscar 29th December 2025 - 3:15 pm

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/

Reply
Kraiye 13th December 2025 - 12:16 am

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!

Reply
james 13th November 2025 - 3:08 am

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

Reply
Aidan 5th July 2025 - 8:38 am

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

Reply
Ramil 27th June 2025 - 8:13 am

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

Reply
utrinque 7th December 2024 - 2:21 pm

Desoldering one wire from ELRS receiver (V -) solved my problem with DFU.

Reply
Eric 11th July 2024 - 6:17 pm

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!

Reply
NikolaZ 16th April 2024 - 11:30 am

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.

Reply
Joe Fernandez 13th April 2024 - 4:23 am

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!

Reply
Konrad Lindblad 15th March 2024 - 1:52 pm

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.

Reply
eddie duff 12th March 2024 - 8:10 am

if you have 2 programs running on one comport clean flight used for flashing,it will not flash

Reply
Adrian 24th February 2024 - 7:26 pm

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.

Reply
Oscar 26th February 2024 - 4:49 pm

Do you have an Android phone? Try the Speedybee app, and connect the FC to your phone via OTG: https://oscarliang.com/fpv-app/

Reply
Jack 2nd December 2023 - 1:35 pm

None of this worked for me. I think flight controllers hate me.

Reply
pete 16th August 2023 - 3:54 pm

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.

Reply
i nyoman suarjana 9th August 2023 - 5:47 am

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!!

Reply
Oscar 9th August 2023 - 1:50 pm

Do you have any devices connected to the Speedybee FC? Like receiver, GPS, etc? remove everything and try again?

Reply
G van Werkhoven 28th June 2023 - 12:05 am

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 !!

Reply
ShqiponjaFPV 22nd June 2023 - 12:24 pm

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”

Reply
Hakim 24th May 2023 - 10:22 am

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?

Reply
Oscar 24th May 2023 - 11:41 am

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).

Reply
Farid 20th December 2021 - 8:52 am

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

Reply
Alex Guzman 11th August 2021 - 9:20 am

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??

Reply
Treash 9th December 2020 - 12:29 am

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?

Reply
Eagleye_fpv 10th August 2021 - 8:46 pm

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.

Reply
Rob 11th October 2019 - 8:16 am

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.

Reply
Farid 20th December 2021 - 8:53 am

Its like mine now. Si what the solution bro???

Reply
Vidyadhar Patil 3rd June 2019 - 2:42 pm

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?

Reply
Unitae 26th March 2019 - 9:57 pm

Had to comment to say thank you !!

Reply
Andrés Giraldo 16th February 2019 - 7:04 am

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!!

Reply
Kyle 8th February 2019 - 10:39 am

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.

Reply
Michael 27th January 2022 - 4:26 pm

Hi I’m having the same issue with both of my Rekon 5’s atm. Did you find a solution?

Reply
Daniel 4th February 2019 - 11:21 pm

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

Reply
Tsenior 15th January 2019 - 6:55 pm

i get an error 99 on impulse rc fixing tool :-\

Reply
Michael hicks 30th September 2021 - 1:22 pm

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.

Reply
Adreh 8th March 2026 - 6:57 am

Same error. It worked after using Zadig in Bootloader mode !

Reply
Les Jack 25th October 2018 - 1:50 pm

The Impulse Driver Fixer works! Spent hours looking for a solution. Thanks!

Reply
Mark 27th August 2018 - 6:07 pm

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.

Reply
Andrew 11th July 2018 - 8:56 am

I have tried using Zdaig and when I try and replace the USB drivers I get the error:

Drivers already installed.

Reply
Tyler Walker 16th June 2018 - 8:19 pm

My spf3 wont talk to computer anymore after flashing. My other quads all still connect fine. Is my usb on fc cooked??

Reply
Steve 4th June 2018 - 2:37 pm

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?

Reply
paul 29th August 2017 - 8:57 am

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?

Reply
ganz 19th August 2017 - 10:38 am

thank you for this post oscar!! saved my betaflight f3 board…..fkin drivers :/

Reply
DavidPi 3rd August 2017 - 11:25 am

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.

Reply
Oscar 3rd August 2017 - 3:36 pm

thank you David, that’s excellent advice !

Reply