Flash Cleanflight on CC3D using Arduino

CC3D.Flash.Arduino

Here you will find how to flash the Cleanflight 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 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.

CC3D_To_CleanFlight1CC3D_To_CleanFlight2CC3D_To_CleanFlight3

CC3D_To_CleanFlight4CC3D_To_CleanFlight5CC3D_To_CleanFlight6

After you finish the erase process, click “Back” and select the downloaded CC3D firmware for flashing.

CC3D_To_CleanFlight7CC3D_To_CleanFlight8

That’s all. If you have any questions, don’t hesitate to leave me a comment.

Leave a Reply

34 Comments

  1. Bol2riz

    Hi mate!

    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 🙂

    Cheers.
    Olivier

    • Sergey

      Hi Olivier, yes it should be placed. I will add it to the tutorial. Thanks for thе note 😉

      • Bol2riz

        Thanks to you.

        Another question. Does the nano have to be flashed as arduinoISP?

        Cheers.

        • Sergey

          No. By bridging the GND and RST pins it actually work only as a FTDI adapter.

          Cheers

          • Bol2riz

            That simple ^^

            Perfect !

          • Bol2riz

            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.

          • Sergey

            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/

          • Bol2riz

            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 !

          • Sergey

            Thanks 🙂

  2. Steve

    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?

    Thanks,
    Steve

    • Sergey

      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

      • Steve

        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

        • Bol2riz

          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.

          • Sergey

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

          • Steve

            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

          • Sergey

            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.

  3. Bol2riz

    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.

    • Sergey

      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.

      • Bol2riz

        Yes indeed!

        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 😉

  4. Dan

    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.

    • Sergey

      Hey Dan, can you confirm that you see a STM32 label on the FC chip?

  5. Gabe Seppala

    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!

    • Sergey

      Thanks Gabe. Yes, you need to jumper RST and GND for the Nano to be in FTDI-mode only. Cheers, Sergey

  6. john

    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

  7. MJ Hillmer

    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.

  8. Brandon

    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

    • Sergey

      Can you provide some more information, how have you connected the board?