On January 2nd this year I took a flight over my neighbors house using a store bought drone (Phantom FC40) and a GoPro camera that arrived as a Christmas present. I was very happy with the quadcopter and the footage I took. Then, about a week later, I sunk the whole kit into a lake never to be seen again.
At the time I was pretty upset with myself – I made a rookie mistake and paid for it badly. But I also reasoned that since I had enjoyed modifying the FC40 I should try my hand at building drones instead of buying them.
One year later and I’ve come a long way learning everything from soldering to PID tuning (don’t ask).
I eventually built two different copters, a quadcopter and then a hexacopter, although it feels much more than that because each of those has been built, rebuilt and upgraded numerous times. Here’s a quick comparison:
DJI Phantom FC40
F450 Quadcopter
F550 Hexacopter
Transmitter Range
800m
2,000m
Flight Modes
GPS Hold
Altitude Hold
RTL
GPS Hold (slow and fast)
Altitude hold
RTL
Automatic (programmed)
Land
Guided (click on moving map)
Manual
Acrobatic
Follow me
Circle
Mapping
Speed
22mph
~35mph
~55mph
Size
330mm
450mm
550mm
Real Time Telemetry
No
Yes
Yes
Moving map
No
Yes
Yes
Gimbal
2D
2D
3D
Camera Control
Manual
Manual or Fully Automated Point Of Interest Lock
Flight Time
9 Minutes
18 Minutes
15 Minutes
But probably the best way to show the difference is to compare two videos taken one year apart. The video on the bottom was from a year ago with the Phantom. It took two separate 9 minutes flights and was then edited to keep only the best parts. The video on the top was taken in one shot, no editing and took less than 3 minutes to complete from take off to the fully automatic landing.
In fact this year’s video even made it into the local news, and you can find the full version here.
I’ve learned a huge amount that past year, gained some great friends and had a blast doing this, particularly as my #1 son and daughter were very involved in the build of both machines.
Where do we go from here?
The drone market is in a phase now where digital cameras were 10 years ago. Their capabilities are increasing exponentially while prices are plummeting. Even with how far I have come even the cheapest DJI Phantom 3 would outperform my hex in almost every way and these can now be had starting at under $700. Just a year ago something with that capability would have cost nearly three times that amount!
For me to build the equivalent of a Phantom 3 Standard would cost around $450 in parts alone, and that is if I use cheap parts sourced from China that would need a lot of time to set up properly.
Will I still build? I think the days of building from scratch are over, it just doesn’t make economic sense anymore. But I will continue to improve the ones I have as a way to learn and experiment. There’s also talk of teaching kids how to build them as part of a maker space project and that is something I would really enjoy doing.
In the meantime, if you are thinking of getting someone a drone for Christmas, or have one and need questions answered…fire away!
I added a gimbal, larger battery, FPV TX and LED lights to Gerry (my daughter’s name for the quad). But what happens when you add too many farkles to your quadcopter build?
When flying around on a perfectly calm day it was OK, but still lost altitude on runs and would occasionally stall and twitch. But anything more than a breeze and Gerry was all over the place and a constant assault of wind would actually cause it lose so much altitude that it would crash.
Why is this so?
This picture from the log tells an interesting story – at least it is interesting to me.
Red line is Throttle In (what I’m doing). Green line is Throttle Out (what the flight controller sends to the motors).
Blue line is altitude (graphed on the right). Time (min) can be seen across the top.
The flight controller has a value (THR_MID) that adjusts the throttle so that the middle on the controller provides enough power to hover. For example if the quad is heavy then it might take 60% of throttle to actually maintain a hover and this allows the user to still position the throttle in the mid point. These can be graphed showing the Throttle In (from the transmitter) and Throttle Out (how much power the flight controller is sending to the motors).
The problem is that if the THR_MID is way off then switching between modes that automatically adjust (Loiter, Pos. Hold, Alt. Hold) and ones that don’t (Stabilize) can cause a sudden change in the throttle being applied.
At the 1 minute mark on the graph we can see the throttle is between 40-60% in Pos Hold mode and the quad should be holding altitude. But on this day it was windy and we can see as the altitude goes up and down and the throttle is bouncing off the 100% mark. Clearly it is struggling to keep the quad at the right altitude.
Just before the 3 minute mark I switched to stabilize, the Throttle Out drops to the same value as Throttle In and the quad starts to fall…FAST!
I immediately give it full throttle but it’s not enough to stop it hitting the deck in what can best be described as a ‘hard landing’.
I tried again and the quad was really struggling to maintain altitude – you can see Throttle Out bouncing off 100% repeatedly. Despite the APM putting out near 100% the 5 min mark it continues to lose altitude and my desperate application of full throttle does nothing. It hits the deck again and I decide it’s time to go home.
If you were to place a ruler on the green throttle out line and draw a straight line that best fit the data; you will see that it has an upward slope. The reason for this is that the battery voltage is dropping as the battery runs down. Since motor speed is a function of voltage fewer volts = less lift. Basically the quad is under powered for the weight it is carrying.
I tried using a smaller battery to cut weight but it still lost altitude, was still twitchy (where it would periodically stop to correct itself) and near the end of battery life it started going up and down in a very odd fashion.
Frankly it felt possessed and I started to wonder about exorcism as a real option! I later figured out this was because it was starting to start the auto land because the battery was low, but then as it dropped the voltage would climb and back up it would go.
At home more googling and chatting with friends on Quadcopters (yes, I now consider many of these folks friends) and a possible solution emerged.
The PILOT_ACCEL_Z value is used to tell the APM how fast it can climb. By bringing this down from 250 cm/s to 50 cm/s it should mean that the APM flight controller won’t ask for more than the quad can give and that should stop it getting confused. I also properly calibrated the battery so that the auto land didn’t kick in too early, as it was consistently under reading the actual voltage by about 1v.
I took Gerry out for a fly and…what a difference! Smooooooth flying. None of the crazy jerkiness that it had before and almost no altitude loss. It did eventually start to lose altitude but it was now controllable and could be recognized for what is was – a battery that was getting low. Sure enough each time the altitude loss started to occur the low battery beeper would go off. I ran through three batteries and walked away with a smile on my face.
So, there we have it. I now have a quad that flies beautifully and is no longer possessed. With the smaller batteries flight times are short but the future plan is to upgrade the battery to a 4S (which can output up to 16.8v) which should mean the quad has enough power that I can start to increase the PILOT_ACCEL_Z rating to give it a little more zip.
*** Pro Tip ***
If you want to know what value THR_MID should be set to, fly in stability mode for a couple of minutes, land and then check the value being displayed in TRIM_THROTTLE. If it is over 700 you have a seriously underpowered copter. Under 300 and you are massively overpowered.
Adjusting your THR_MID value to the same as TRIM_THROTTLE will make transitions between manual and automatic (atl. hold, pos. hold etc.) modes much less troublesome.
Multirotors are amazing tools for capturing stunning video and photos from angels and locations that would previously have been impossible. But spend any time watching aerial video and you will quickly realize that image stabilization is a must if you want keep your audience from feeling seasick.
Some of this can be done with software but, while this helps, it does so at the expense of quality. If you are really serious about it you are going to need a stabilized gimbal.
For those not in the know a gimbal is a piece of equipment that will keep your camera stable regardless of what the platform it is on is doing. I’m sure there’s a good explanation involving sensors and things but I prefer to think of it as magic.
Here’s what one looks like in action.
And here’s what it looks like in the natural world
Gimbals are so important that the first drone film festival, held in New York on March 7th, wouldn’t accept submissions that were not shot using a gimbal.
Mobius
For the camera I opted for the Mobius Actioncam.This little sturdy camera has proven itself to have comparable quality to a GoPro but at about 1/3rd the cost and weight. Having already lost one GoPro while filming I didn’t want to risk that kind of money again.
Of course the GoPro is practically a standard and so there are many more gimbal options to choose from if you go in that direction. For the Mobius there was only one gimbal that fit and reviews of that were mixed, but I decided to go for it anyway.
What did I get myself in to?
The HobbyKing video said that the gimbal could be assembled in 10 minutes.
As soon as I opened the pack and saw all the little pieces I knew that wasn’t going to happen, but it really wasn’t that hard to do and with some patient following of the instructions I had it all together in a little over an hour. One thing that helped was downloading the PDF version of the instructions so that I could zoom in and save my poor old eyes from unnecessary strain.
To power it I made a special lead which could go in between the power lead and the battery with pigtails coming off and used JT connectors so that I can disconnect the gimbal easily.
Now it was time to flash the firmware which was achieved by following the instructions in this video.
By far the longest part of this was that I had to downgrade my kids laptop from Windows 8 to Windows 7, since the software provided only runs on Windows 7 or XP. Why the gimbal isn’t provided pre-flashed is beyond me.
APM Configuration
I wanted to be able to control the tilt of the camera by remote and just two wires are needed to set this up. I was a bit confused initially because all the pictures I saw showed the 9 pins with the wire going to the top.
Only when looking at the gimbal under a magnifying glass did I discover it was upside down and I really needed to be hooking up the bottom pin. I configured the APM to use pin 11 on the for control (off of channel 6 from the controller) and as soon as I did that everything magically worked.
That left the last task of finding a good place for it on the quad. I wanted it to be placed forwards so that there would be less chance of legs showing in the pictures. That meant moving the battery (previously slung underneath) to a new location inside but positioned towards the back of the quad and moving the receiver from the top of the platform to the bottom. Nothing too difficult and the use of a few well placed zip ties and we were good to go.
With the weather finally starting to warm up I’m looking forward to getting back out there and capturing some nice shots of the area.
Only thing left to do on the quad now is add FPV!
Note: An alternative that I considered was a kit that transforms the Mobius into a GoPro form factor – affectionately known as a “Gobius” – which allows for a much wider range of gimbals.
With plenty of flight modes now available it was time to address the wobble I noticed on the first flight.
Some Googling pointed to the most likely candidate for wobble and the copter sounding “angry” was that the P-gain was too high. I don’t know what that means but I figured that this would be easy to take care of. Take off in Altitude Hold, run Auto Tune and, voilà! Problem solved.
Unfortunately it turned out to be more difficult than that.
With my new-found knowledge of how to set up the controller I was able to configure one of the options to be Altitude Hold, and set up a switch to start Auto Tune and I set off to get it done.
It was a somewhat windy day so I chose a local school (it was Saturday) that had a nice square protected on three side by buildings thinking this would give me some protection.
I took off in stabilize, stopped at about 15′ and switched to altitude hold. Immediately the quad shot up about another 20′. It was now high enough that it was no longer protected by the low buildings and it started to drift fast! I immediately pressed down on the throttle and it came down, but much slower than I hoped. I switched back to stabilize as it got near the ground and it dropped very fast, bounced once and landed up side down. Bummer!
A quick check and things seemed OK, or so I thought.
I sent her back up again and exactly the same thing happened. This time I had left myself more room and tried to leave it in alt. hold, but now it was really acting oddly. Pressing the lever to make it go forwards caused it to climb more each time and, with the wind, it was now high up and drifting over the top of the school buildings. I was convinced it was going to end up on the roof and, in a last desperate act, pushed forwards all the way. Finally it responded and shot away from the school. Bringing it down again was, once again, very slow and with the lever all the way down I switched back to stabilize. Unfortunately the throttle all the way down in stabilize basically means turn the props off and the quad drop out from the sky like a brick.
Time for some self-analysis and to find the culprit of the problems with altitude hold.
More Googling revealed that altitude hold issues are often caused by vibration. Fortunately the APM captures logs every time you fly and I was able to download those into Mission Planner and (after some experimentation) view the vibration logs. This proved to me that this wasn’t the problem.
It also showed me that this little APM flight controller is super cool. If you have time it is well worth looking into the logs and what they can tell you. You can even upload these into Goole Earth and get a 3D picture of your flights complete with color coding to show you which flight mode you were in. Nice!!
Since Auto Tune was off the cards until I could figure out what was wrong with the altitude hold it was time to start asking for help. Someone on the Quadcopters group provided me with the settings they had that worked and, in comparing those, I noticed that a TRIM_THROTTLE value of 33% seemed much too low compared with his settings. This is APM’s estimate of the throttle required to maintain a level hover calculated automatically from the pilot’s throttle input while in stabilize mode. Mine was way too low and actually outside of the 40-60% that is the mid point for altitude hold.
On a hunch that I hadn’t flown in stabilize mode enough for it to get a good reading I went into the back yard and ran through two fully charged batteries doing nothing but trying to keep it in place in stabilize. Then it was off to a large open area and, voilà! Alt hold was now working without any crazy behavior! I was losing altitude on long runs, but for the most part it was well-behaved. Checkinglater I found the TRIM_THROTTLE value of was now a much more sensible 43%.
While working on identifying the Alt hold issue I had also found out that I could assign a knob on the controller to Ch 6, and set that up such that I could adjust the P-Gains while in flight. I did that, used the knob to back off the Rate Roll and Rate Pitch P gains until it calmed down. When I got home I found out I had dropped from .15 to .13 so I locked those values in and saved the configuration file to my hard drive as a baseline.
Oh, and for the record, let me just say that testing altitude hold while tying the quad down to a table gives the barometer false readings and doesn’t work, so don’t try this 🙂
But what about Auto Tune? Now that I had a copter that could stay in the air I went out the next day with a fully charged battery and ran it. It is very odd watching your quad do it’s dance with no input from you, but it finished without incident. The results? Terrible! It was back to being funky again and very difficult to control. The good news – remember above when I said I saved my working results as a baseline? Well, I just restored those. My old developer habits still keep me honest.
I still have a problem with the craft losing altitude when flying forwards. I think I might have improved that by stuffing the APM with cotton wool, since I had lost the little piece of foam. Sadly that was three weeks ago and I have not had a chance to fly since then when it wasn’t raining, snowing or blowing 35mph winds. I’ll keep you posted on how that goes.
After the first flight there were a couple of obvious items that needed to be addressed. More flight modes and getting rid of the wobble.
First the flight modes.
I had only figured out how to set up the controller to allow for two different flight modes (stabilze and altitude hold). With so many modes available on the APM this seemed like a shame. It took a while but by carefully following the instructions on this page I was finally able to get myself up to six flight modes by using a combination of 2-way and 3-way switches.
Along the way I had an epiphany that the controller sends out frequencies (or something that can be counted) and that the APM looks for values from the different input channels being in ranges (because it isn’t exact). So a value between 1,231 and 1,360 (for example) can be assigned to a particular flight mode.
Great! A mystery solved. Now all those calibration movements make sense.
Not only did I manage to assign the six flight modes, but on the extended tuning I was able to assign Channel 7 to a switch on my controller that would automatically tell the quad to land. This has been a real life saver because even when it starts going crazy, switching to land will calm it down and bring it down to Earth better than I can do.
After our successful first flight it quickly became obvious that having a machine that can fly is just the beginning. In the weeks that followed there were a number of change, crashes, and not an insignificant number of problems some of which are still not yet solved.
All of this occasionally has me wondering why I decided to build a quad copter instead of just plunking down money and to answer that we need to go back about 10 years to when I took my first tentative steps into the world of websites. Back then I started a web small business with a friend and the venture lasted about two years before closing it’s doors.
Was I sad that the company closed? No! In those two years I had learned far more by doing than I could have learned in the same time at school, and the same applies here.
Each problem is a puzzle to be solved, an opportunity to learn and, as I have discovered, a great way to make new friends. As I learn I like to give back to the community that helped me when I can and, as such, I plan to memorialize much of my learning here in small posts dealing with very specific subjects. Much will not be of interest to people, but my hope is that one day someone will benefit from the time it took to put this together.
The first time I ordered something from China it was supposed to arrive in 2 to 4 weeks. It took 7!
When I decided to build a quadcopter I found a kit on eBay that seemed just the ticket. The price was good and the seller had great reviews but, unfortunately, they were in China. Expecting the same delays I found myself nosing around various website the following weekend and came across a ready to fly H100 very similar to the one I was planning to build.
The controller wasn’t as fancy as our build (no GPS) but it down from the regular price of almost $500 to just $200.
My mind got to reasoning this way.
The parts aren’t going to arrive for a quite a while, so if I buy this I’ll have something to fly until the other one is ready.
Having a pre-built one nearby will help with figuring out where things go.
I’ll be able to upgrade the controller and add a GPS later and can then either have two fully features quads or could sell one (perhaps even at a profit).
I had a little extra income which would more than cover the cost of this.
That price was so good…I’d be throwing money away if I didn’t buy one!
After putting it into and out of the shopping cart a few times, I finally pulled the trigger. Since it was only coming from California it would arrive on Friday…the parts for the build arrived the Wednesday before!
Not only that but the weather turned nasty bringing wind, ice and snow with the result that the maiden flight of this machine ended up occurring about 5 minutes before the maiden flight of the our build.
We finally had a break in the weather long enough to get outside and get up in the air!
Before leaving there was some question about which two flight modes I should start with. Key candidates were Stabilize, Altitude hold and Loiter. I finally opted for the first two. Stabilize because it doesn’t rely on anything fancy, and then Alt. hold to make flying a little easier.
The result? In a word – awesome! It’s been a while since I was able to fly and it was great to finally get back into the air. See for yourself.
The F450 has some wobble to it. Nothing terrible and it should be something we can fix using the Autotune feature of the APM.
S. loved it and wanted to try it out, but was too nervous. That’s actually good as I would really like things 100% sorted before she does that. But in the car on the way home she told me she wants a little quadcopter that is all her own 🙂
What a wonderful journey!
I’ve shared my parts list including links to where I bought things in case anyone is interested. You can see those details here.
Having seen one too many videos where the quad flips over on takeoff I was understandably nervous about trying our new baby out. It seemed that at every turn there were little details that needed to be checked and re-checked.
For example, we checked the rotation of the motors and S. then fitted the props according to their direction.
Later I noticed that we had the exact opposite of what was shown on the APM website. Our props should have looked like this but were not. So, when S. wasn’t looking, I switched them.
Fortunately I had woken up that morning with an idea that would allow the quad to fly a little, but not enough to flip over if things go wrong. It didn’t take long before I had it lashed to our table tennis table and we were ready to try her out!
With S. videoing the first test was a spectacular non-event. I powered up and slowly increased the throttle until full throttle was reached. We had plenty of noise but absolutely no lift at all! Then I realized. S. had been right all along and I had switched the props which were now pushing it DOWN!
A quick switch of the props and we were back in business. This is when I thanked my lucky stars that I didn’t trust myself to try it without a safety net. Every time it lifted up it would go wild and try to flip over. Fortunately the string kept it in place, but it was all over the place and none of the controls made any sense! See for yourself!
I checked things over again and realized my mistake. I had plugged the motors into the APM board with output 1 going to motor 1, output 2 going to motor 2 etc. in a clockwise pattern. However, as you can see from the diagram above, the ONLY motor I got right was number 1!
Switching the connections on the flight controller had us finally up and running. It now behaved, didn’t try to flip anymore, and I could lift it up and move it backwards, forwards, left and right. Forward and backwards was reversed because for some reason the APM sets it up to expect the ELE control to be backwards. No problem, it just took 30 seconds to change that on the transmitter.
While it seemed to be working it was very twitchy and super sensitive to the controls – nothing like my Phantom which was very docile.
I posted the video on the quadcopters FB page and our good Samaritan made a comment about how twitchy it seemed. I then found out that the latest version of the Mission Planner software has a sliding scale from 1 to 100 where the higher the number the faster it responds. Guess where mine was set…yup…100! I backed that off to 80 which seems to have calmed things down nicely without taking all the fun out of it.
One last thing. Remember I said that my motors were the exact opposite of the picture on the APM website? I was under the assumption that it didn’t matter as long as they the same rotation was on the opposite corners. Turns out that is incorrect and that not having it the right way around is going to cause problems with yaw (spinning on its axis), and possibly more. So, after some gentle teasing by my friends about not knowing how to fit props, I switched the bullet connectors so that they now all spin the right way.
After all those changes I put it back on the “test rig” and what a difference! It was beautifully smooth and easy to control. See for yourself.
So, that it is. There are still many tweaks to do, such as setting up the battery failsafe and adding LED lights, but really the next big step is to wait for a clear day and take her out. I can’t wait!!
Finally the weekend arrived and, with the new flight controller in hand, we could get to work. S. was at a sleepover again so on Friday I performed the ESC calibration and confirmed that in all motors were finally working!
Unfortunately when I tried to run a normal flight test (minus the props) the double flashing red LED told me the pre-arm checks were failing.
I pondered the problem for a while and then realized the FC was in loiter mode which requires a GPS signal to work. There’s not much GPS signal reaching my basement! Switching it to “stabilize” mode had it firing up and we were finally ready to put everything together.
I waited for S. to arrive and we set to work. She installed the anti-vibration plate, flight controller and radio receiver. I put the GPS post together and she added the GPS to that. The post had a little hinge on it and I couldn’t understand why, so when S. asked me which way it should go I told her it didn’t matter. I figured out later that it allows for lowering the mast for transport. By pure luck it turned out we had installed it correctly.
We had a hard time figuring out where to put the power module and it ended up awkwardly squeezed alongside the battery. That might need to be moved if we decide to go for a larger battery in the future.
S. checked the motor rotation, installed the props and then, all too soon, it was ready to fly! It wasn’t pretty but we were both over the moon with it.
S. had insisted that we set up my phone to record a time-lapse video, which I had to admit was fun to watch. See below.
Not much to do now but give it a test flight, or so I thought. With the conditions outside being 13f and 20-30mph winds it looked as though we would have to hold off for now.
To be honest I was nervous about this first flight. I’ve seen a lot of videos where something small or silly caused the quad to flip and when it happens, it happens FAST!
I went to bed worrying about that and, as is often the way, woke up with an idea on how to make that first flight almost foolproof!
Next post: The first flight (why second guessing your daughter is a bad idea).