Custom Quadcopter X525/CC3D Build

December 22, 2014

After having dabbled in R/C for awhile now, I figured I'd take a stab at a quadcopter build. The Phoenix R/C 5 flight simulator I use has one in it that I've played around with and it's super easy to fly so I figured it would be a fun project. They practically fly themselves, and that's where I find the firmware in these things fascinating. Not too long ago, this would have been a video game screen.

Without further adieu, here's the very first flight - a lot of progress and more to go.

I didn't follow any existing kit or existing parts list. I found a frame that seemed to be fairly popular on forums and built up around that. I was inches from just building one myself, but I would have spent more on just parts than the X525 cost. Total cost ended up being far less that I was expecting for this size quadcopter.

Parts List

Mounting to Frame

With the X525 frame at the core of the physical build, I went the extra mile and ran motor wires inside of the arms instead of zip-tying the ESCs on the arms. I wanted to be able to safely and easily grab the arms without worrying about ripping off an ESC. The ESCs are mounted on the 4 edges of the center, with a zip-tie and some foam underneath. The controller board is mounted with the anti-vibration mount and some spacers. The power is distributed from the battery to the ESCs with a simple breadboard mounted right under the controller in the middle of the ESCs. Basically, the only need for this is cleaner wire management and it works like a charm.


The final build, without battery, comes in at just over 30 ounces. Right now I'm leaning towards this thing being a bit on the heavy side. It hovers at around 40% throttle, but this thing has a lot of momentum in the air.

About the CC3D Controller

The controller is the OpenPilot CopterControl CC3D. When looking into what controller to use, it certainly didn't stand out as a clear front-runner at the time, but it was in line with a list of others. The controller board itself is smaller than I imagined. Little did I know, the OpenPilot software package available with this controller is absolutely fantastic. The setup of the controller is wizard guided and you could tell some real thought went into it. I went from initial power on to first good flight in the same afternoon. That's a win considering my quadcopter was somewhat custom. Here's an excellent video on walking through the OpenPilot GCS tutorial setup. The provided OpenPilot Debian package installed on Ubuntu 14.04.1 without issue.

I have a Hitec Optic radio on-hand that I use for various other RC planes and it works just fine for the quadcopter. I used it in airplane/glider mode instead of helicopter mode. I have not decided if one is really better than the other. Also, I have not figured out a good use for channels 5 and 6.

I wired everything up pretty standard following the CC3D documentation shown here:


As a precaution I did remove the power/ground from all of the ESC connections to the flight controller with the exception of one as recommended. I just pulled the pins out of the sleeve and covered them with shrink wrap. I'm not sure if it would cause an issue, but there's really no need for them as it is.

Here is where my initial, flyable, CC3D settings are. It will take some work to get these closer to optimal settings.


Configuring the ESCs

I programmed the ESC's using 2 different methods. The first method consisted of temporarily rewiring the ESCs directly to the receiver and programming them one at a time like you would with fixed wing aircraft. Turns out, this is a brutal waste of time. There's a much better second option that I'll quote right from the OpenPilot wiki on doing this:
Remove all the props first and disconnect your battery from the ESCs, then power your board through the USB.
Go to the output config panel in the configuration gadget, check the "test outputs" function, and confirm that you want to continue.
Move the slider on all ESC output channels to the max value you like (for example 1900 microseconds). (You can link the outputs so you can calibrate all ESCs at the same time by 'checking' the Link box.)
Now apply power from your battery without disconnecting the USB. Your ESCs will boot and beep accordingly, indicating that they have received a high throttle set point.
Move all the sliders back to 1000 microseconds. The ESCs will beep several times to confirm the low position and all will be calibrated properly.
A nice tip by Z-axis
To move the slider instantly, just hit the "home" key on the keyboard. It is instantaneous and much faster than trying to slide it.
So after you have moved the slider to your maximum value and applied power you can hit the "home" key on the keyboard once the ESCs are booted and beeped.

Along with calibrating throttle range, for the HobbyKing ESCs, I configured them as factory default and then set:
  • Battery Type: NiCad/NiMH
  • Cut Off Voltage: Low
  • Acceleration: Hard

Notice in the first flight video one of the motors dropped out right at the end. I was able to repeat this happening and I suspect it was due to low battery. That has been fixed with the above ESC configuration (which I had not completed in the video).

First Flight Test Attempts

After CC3D setup, my first attempts to get this thing off the ground exposed an immediate problem. I tried taking off and also tried holding it in hand and in both cases experienced what would turn into a violent wobble. One of the first attempts to hover resulted in it coming about a foot off the ground and proceeding to flip right over on the ground very swiftly. It seemed to be fighting itself and its response to that was more throttle. At this point I reflected on fly-by-wire systems. After a bit of troubleshooting, I isolated it down to the Rate Stabilization roll and pitch settings. The default settings for this quadcopter are way to high (probably due to weight and the ESCs I used). I cut the proportional and integral settings right in half and that fixed the problem. The wobble is completely gone.

I can hover in place for just over 10 minutes. After a 10 minute hover the ESCs, battery, and pretty much room temp so I don't think I have anything to worry about on that front.


In the middle of putting this together, I also 3D printed the Omnimac MultiWii Pro Mount v1.0. The print actually turned out very well, but the mount is not made for a CC3D off the shelf so I printed another plate to adapt it.


I moved to 10x4.5 propellers. Even though I balanced them, I still notice a bit more vibration (I think a couple of the motors themselves are the source). I have not flown them long enough to note an impact on flight time, but it seems to have a little better control force.

I also added on some higher landing gear both for future possible video equipment and better landing protection in the meantime.

Related Posts


Comment September 13, 2016 by anonymous
For my X525, I have super stable hoover and fast forward flight with PIDs at:P- .0030 I-.0020 for both pitch and roll; P-.0055 I-.0062 for yaw. I did have to increase the derivative to dampen for vibration and flying in high winds. .000082 for roll, .000077 for pitch, .000100 for yaw. 2212-1000kv Gforce motors 30 amp SimonK ESCs CC3D flight controller DSM2 receiver
Comment October 16, 2016 by anonymous
Update to above post for PIDs P- .00300 I .00100 for Roll P- .00300 I .00220 for Pitch P- .00480 I .00620 for Yaw Derivative .000087 .000072 .000098 for Roll, Pitch, Yaw -Skytalon74
Comment November 8, 2016 by Skytalon74
Update 11/8/16 When flying with 11.1V 4400mah lipo battery the props will spin faster due to the extra weight. I learned that the vibration frequency for stable hovering has changed to I had to lower my PIDs. New PIDS are: P- .00240 I .00040 for Roll P- .00240 I .00170 for Pitch Yaw is the same. -Skytlon74
Comment November 13, 2016 by Skytalon74
Update to above post for lowered PIDs P- .00240 I .00050 for Roll P- .00240 I .00170 for Pitch P- .00500 I .00680 for Yaw Also lowered Derivative .000080 .000070 .000098 for Roll, Pitch, Yaw -Skytalon74