Flash Cleanflight on CC3D using Arduino
Here you will find how to flash the Cleanflight / Betaflight firmware on your CC3D board using Arduino. You need an FTDI adapter or Arduino board with FDTI chip on it, like Nano v3. Connect your Arduino to CC3D as follow: 5V – 5V, GND – GND, TX and RX to the MainPort on the CC3D. Note that you should put a jumber to bridge the GND and RST pins too.
Download and install the STM Flash Demonstrator. Go to GitHub and download the latest Cleanflight / Betaflight firmware for the CC3D. To flash the firmware, the flight controller must be in bootloader mode. Bridge the SBL and 3.3V pads while powering the CC3D. Once its in bootloader mode, you can start with the flashing.
Run the STM Demonstrator and do every step exactly as shown! on the pictures below. I should mention, that I have connected and disconnected the board (with the pins bridged when powering on) several times before the STM Demonstrator accepted it.
After you finish the erase process, click “Back” and select the downloaded CC3D firmware for flashing.
That’s all. If you have any questions, don’t hesitate to leave me a comment.
Thank you for reading! Follow DroneHiTech on Facebook and stay tuned for more drone news, reviews and tutorials.
Thanks for this tutorial,
Could you confirm that you have to place a jumper between GND and RST?
In case yes, there may be helpful to add that info 🙂
Hi Olivier, yes it should be placed. I will add it to the tutorial. Thanks for thе note 😉
Thanks to you.
Another question. Does the nano have to be flashed as arduinoISP?
No. By bridging the GND and RST pins it actually work only as a FTDI adapter.
That simple ^^
Me again sorry…
I’m trying to do the process but the software tells me that it can’t communicate with the board.
Could you confirm one thing?
My nano appears as USB_serial in under COM port in Windows. Is this the way it appears on your side ?
Thank for the help.
No, problem Olivier. Not sure how it appeared on my PC. I cant test it now, because I bricked my Nano few months ago. I can remember, that I have connected and disconnected the board several times (with its bootloader pins bridged) several times before I succeed. But you can also flash the CC3D direct through the USB port using OpenPilot GCS. Check it here: http://dronehitech.com/flash-cc3d-cleanflight-openpilot/
yes I did that way but I definitely need and want to overwrite the BL because I don’t want to have to plug the lipo anymore ;).
… Succeed ^^
## Note for others
On the Atom led should not blink at all when in BL mode.
Thanks a lot Sergey you rocks !
Great How-to…My question is getting the cc3d into bootloader mode. You say to Bridge the SBL and 3.3V pads while powering the CC3D….Where do I find these pads? and how are you bridging them?
Hey Steve, look at this picture: In the upper right corner you will find the pads. I bridge them using a tiny wire. Cheers, Sergey
keeps saying Unrecognized device…Please, reset your device then try again. Im using the Arduino, all the connections look to be correct along with the jumper from GND to RST. I have it plugged in to the main port, I have done this over and over as you spoke of and still “Unrecognized device”
any suggestions would be greatly appreciated
Does your board have flashing led?
When you’re in bootloader mode the blue led that use to blink should not blink at all and on some board should be off.
In case your board is blinking, you’re definitely not in bootloader mode.
It may be a wrong connection between the two pads.
Try to bridge them with a non tamed wire. And gently push on it with something like a pen or a small screwdriver.
+1 to Bol2riz’s comment. You need to have the pads only bridged when powering the board. But as said, the LED is the best indicator if you are in Bootloader mode or not.
It is solid green….there were a few times when the blue light blinked, but its solid and still not being recognized by the demonstrator. I am using the demonstrator with the UART checked, Port Name is COM6, proper baud rate ect…In my research I saw something about a virtual com port or something, not sure if this is needed.
Thanks again for your help
Port Name was COM6 on my PC, it could be another one on yours. You should check it in the Device Manager. You can find the Virtual COM Port driver here.
Just for information. Did you manage to connect and use openpilot? Because some cc3d clone may come without any bootloader and you have to push it.
Here is the link to do so :
You only need the OpenPilot bootloader if you want to use both OpenPilot and Cleanflight firmware. But this is only possible with Cleanflight 1.11 or older versions. Since Cleanflight 1.12 you cant use the OpenPilot bootloader, so flashing using the STM Demonstrator is the way to do it.
BTW I don’t know if a board without proper initial bootloader won’t give such problem in shorting the pins and be recognized.
Even if I doubt that it’s the case 😉
My flash demonstrator only shows options for stm8xxxxxxxx for the target. Am I missing something?
There is no stm32 anything in the drop down list.
Hey Dan, can you confirm that you see a STM32 label on the FC chip?
Using my Arduino Nano as an FTDI required me to leave the Vcc pin unconnected and supply the CC3D with 5v USB (from the same PC). Only then could I get STM flash to work.
And yes, I had to jumper out RST and GND on the Arduino Nano to lock it in FTDI only mode.
Cheers and thanks!
Thanks Gabe. Yes, you need to jumper RST and GND for the Nano to be in FTDI-mode only. Cheers, Sergey
i bought a cc3d atom but i dont know whick are the bootloader pins. in the back theres two with +/- and other two with OK
Hey John, can you upload a picture of both sides. I dont have CC3D Atom, so cant say for sure. Best, Sergey
I cant access the second one, can you check the permissions.
Changed permission, sorry I missed that
John, am I afraid that this board is not really an Atom FC. The are no Bootloader pins. These are SWD pins: SWDiO, SWDiK, GND and 3.3V. You will need additional hardware to flash it from my understanding, but I cant help you further.
Thank you very much for this procedure. I am new to CC3D and the use of 3.3V FTDI, so grateful for the helping hand. Excellent clarity.
My pleasure 🙂
At the very beginning when you have to pick your port it says “no response from the Target, the bootloader cannot be started. Please, verify the boot mode configuration flash protection status, reset your device then try again…” but after resetting it still won’t work
Can you provide some more information, how have you connected the board?
Hello, I ran the procedure but now the board stays in bootloader mode. I flashed it properly and everything seems to be fine. But no after removing the soldered jumper, the LED is still green and wont recognize by usb cable. Did I miss anything?
I did this procedure twice with two cc3d board from Hobbyking 280 Drone. Same issues. Thanks for help.
Hello Philipp, which firmware and version did you flash on the board? Cheers, Sergey
Hello all i’m having trouble updating FIRMWERE on CC3D I’ve done everything else CC3D DO NOT CONNECT IN MY NOT VC WILL BE WITH ARDUINO I CAN’T BOOTLOADER.
Hello Emerson, did you bridge the SBL and 3.3V pads while powering the CC3D?