Flash CC3D With CleanFlight

About: I'm a retired IT consultant. Besides answering questions on StackOverflow I play around wth Atmels in various home projects. Recently I played a lot of Minecraft but since the hardcore mode does no longer th...

Recently I purchased a Nighthawk 250 Quadcopter. Really neat, but unfortunately it came with a CC3D that was flashed with OpenPilot. And OpenPilot is dead :-(

I had another Quad with a F3 board that was flashed with CleanFlight (which is unfortunately lost in a meadow nearby). Lots of googling found me that I would need OpenPilot to initially re-flash CC3D. I got some version of that SW but it just crashed. I almost started to torture myself by trying the Windoze-version with that driver-hell, but soon got sick of that. More googling and I found that the CC3D could be re-flashed by using an FTDI chip.

Well, I don't have one at hand. Hmm. It's cheap and I could just order one. Weeeelll - sleeping a night over this brought the right idea: I DO have a couple of Arduino boards which do have an FTDI chip. This blog showed me how to use the FTDI to get the job done. So here we go.

Step 1: Prepare Arduino

First you need to prepare the Arduino by programming it with this little sketch:

void setup() { pinMode(0, INPUT); pinMode(1, INPUT); }

void loop() {}

And that's all here. Once you have uploaded this tiny sketch you need to bridge the Reset pin of the Arduino while you use it later. Remove the bridge once you're done so you can program it for other projects, but right now: leave this bridge.

Step 2: Wire Up

This part is a bit tricky. You need to plug in your Arduino to your computer so it has power and is recognized as device. The cabling you need to do is between the 4 port JST of the CC3D main plug and the Arduino:

  • Black to Gnd
  • Red to +5V (leave this connector open for now!)
  • Yellow to pin 1 (Tx)
  • Green to pin 0 (Rx)

Not sure if the color is the same for all boards (I'd guess so) but red/black should be in the right place. Yellow and green are just the next two cables.

Now that tricky part. Grab a tiny piece of aluminum foil (see picture) . Hold the CC3D so the thumb covers the boot pins (see picture; they are the 2 solder pins near the ESC outputs). Place the aluminum foil so the thumb will press it down while you hold the board and shorts the boot pins. Try to hold the foil in a way that it just covers the edge of the board and will not touch anything else on the board.

  • Once you're holding everything, plug in the 5V to the 5V of the breadboard.

If you did it right, the green led on the CC3D will be lit constantly and flashing is prepared (hopefully).

Step 3: Flash Firmware

Open your CleanFlight configurator and select the flash tab. Grab the latest FW for the CC3D and be sure the Arduino port is select. Ready, steady, flash!

No response? Hm. The steady green light might as well appear on a board with bricked FW. Repeat the last bullet point (power on sequence) from the last step by unplugging and re-powering with boot bridge.

Step 4: Ready to Rumble

Disconnect your Arduino and plug in the USB directly to the CC3D. It should now be recognized as USB device (Windoze users: you will likely have to go into the (driver) underworld to find Euridice). You should be ready to configure your CC3D with CleanFlight now.

Step 5: Finally

I found that CleanFlight has some issues with the CC3D and I could not get it to work properly. So I went over to Betaflight - and there it worked.

Also, neither firmware was able to support a PWM input correctly. There was always one motor on my quadcopter which did not move. I had to connect my Satellite.

After everything was done, I found that there's a replacement for OpenPilot which is called LibrePilot. It might have been working with that, but once I had flashed CleanFlight/BetaFlight I could not get that to reload a LibrePilot firmware back. Well, ....



    • Trash to Treasure

      Trash to Treasure
    • Pie Contest

      Pie Contest
    • Pocket Sized Contest

      Pocket Sized Contest