The Ugly Bird             

Learning dronology and building a quadcopter            

After many years of complete absence from the model aircraft hobby, in early 2020 I attended an air show given by the Chilean model aircraft federation, and this piqued my interest in getting back into this hobby, in one way or another. But in this stage of life I'm too lazy to drive far away to an airfield to fly a model airplane, and on my property, despite its generous size, I cannot start and land an airplane, because it's densely wooded. So I decided to get back into model aircraft by building a quadcopter.

Over the course of a few weeks of reading up and thinking, the idea matured. It would have to be a low cost quadcopter, because if anything bad happens and the thing goes out of control, it will almost certainly be lost, given my wild terrain. I don't want to fly anything that would hurt my pocket too badly if lost. 

The goals of building my quadcopter would be basically four:

- Do some non-professional aerial photography and filming;
- Install lines in trees, to hoist antennas;
- Learn about drone technology;
- Have fun.

While reading up about drones in general and quadcopters in particular, I found that there is a huge fashion movement going on towards very small and simple "racing" drones. Much of the current drone parts market in 2020 is devoted to these flea-size quads, but they are not suitable for my purposes, because their ability to carry a stabilized camera is very limited, and they definitely cannot carry a long line into a tall tree. So I decided to follow a suggestion given to me during that airshow, and build a drone in the line of what was a de-facto standard a few years ago: A drone having a diagonal motor separation (called "wheelbase" in drone jargon) of around 40 to 50cm and weighing about 1kg.

It's very easy to make the "best drone in the world", by reading reviews and comparisons online and buying the items that get the top reviews. But these are also usually the most expensive items available, and one could easily end up spending several thousand dollars on the parts for a quadcopter! It might be really good, but far too expensive. So I decided to see what I could achieve by using parts that have the best performance to price ratio, rather than the best absolute performance at unlimited price.


Getting the parts

Living in Chile, with ever more limited local availability of technical and hobby stuff, I went straight to the usual online sites where one can shop in China. Almost everything related to drones is made in China anyway, so it makes no sense to shop in other countries, where mainly the same Chinese parts are sold at higher prices.

I didn't find a really attractive, ready-made frame. The choice was basically between various clones of the DJI F450 frame, which are cheap but rather heavy and not very stiff, or some very expensive carbon fiber frames, which are cobbled together from carbon fiber pipes, flat sheets, and plastic blocks, and thus fail to make good use of the true advantage of carbon fiber, which is the ability to make the whole frame from one piece, with complex, flowing shapes that allow maximum stiffness at very low weight. So I reluctantly bought an F450 clone frame, complete with landing gear, to build my first quad on it, and later switch to something better, possibly homemade. This frame cost just $17.39, landing gear and shipping included.

The situation with motors is much better. There are several choices of good motors, at reasonable prices. Comparing specs and looks, and reading all reviews I could find, I opted for a set of four Readytosky 2212 motors, having a velocity constant of  920. These cost $23.85 total, including shipping.

The propellers are a bit of a problem. There are several kinds available, with conflicting information about their performance. I needed the 1045 size (10" diameter, 4.5" pitch). I ended up buying two different types: 3 sets of Gemfan glass-filled nylon props (according to the seller) for $13.11 total, and a single set of HJ carbon fiber props, for $12.55. The idea was to use the nylon props for learning, and test whether the carbon fiber props really work so much better as to make good for their higher price.

ESCs (electronic speed controllers) are available in many brands, ratings, qualities, with various capabilities, and run various firmwares. After doing my homework, I decided to buy Favourite LittleBee Spring 2-6S 30A ones, which are small, lightweight, efficient, have BLHeli_S firmware and support the DShot protocol. These have a lot of headroom in my application. I also considered the smaller 20A version, to save some weight, but not knowing how much peak current my motors would draw, I finally opted for the 30A ones. I also thought that the few additional grams of weight could be offset by the lower conduction losses in the bigger ESCs. They set me back $24.47 total, including shipping. 
 
Now it starts getting interesting. The flight controller, and the software running on it, plays a huge role in defining the capabilities and performance of a quadcopter. I had to read and learn a lot before deciding, and it wasn't an easy decision. But I finally decided to use a Pixhawk clone, and run Arducopter software on it. This seemed to be the combination best suited to my task and intentions.

I learned that the original Pixhawk was made by a company called 3D Robotics, the last version being 2.4.6, then they discontinued it and moved to a new series of Pixhawk, which is much more expensive, while several companies in China make clones of the Pixhawk 2.4.6, calling them version 2.4.8. These are not all equal! Some use better sensors than others, and it seems that some use the complex supply power selection and switching of the original Pixhawk, while others simply combine the various power sources through diodes. It's quite involved to sort out all the many options, most of which are poorly described on the sale pages, and this is made worse by the fact that Pixhawk clones are often sold in kits, including various essential and non-essential peripherals. It takes some time to sort through all this.  
  
I finally bought a kit containing a clone Pixhawk 2.4.8, anti-vibration mount, APM power module, SD card,  pushbutton, buzzer,  uBlox M8N GPS/magnetometer module, GPS mount, PPM encoder, USB extension with RGB LED, and I2C splitter, with each module housed in a plastic box. I made sure that my Pixhawk had an MS5611 barometer instead of the less accurate MS5607 used in some other clones. The whole Pixhawk kit cost $61, including shipping.  

Larger Pixhawk kits would include telemetry radios, which link the drone to a computer running groundstation software, but I opted out of this because I didn't want to drive up the complexity of my quadcopter to that level. Every radio link one adds increases weight, power consumption, and above all the likelihood of interference! For those who want telemetry radios, they are available for various frequency bands, and with various power levels, resulting in vastly different ranges.

The kit I ordered includes some modules I don't need. Most kits include them, and kits that leave them out aren't much cheaper. So I didn't worry about getting these useless parts, and the plus is that they come with various additional interconnection cables, which can be repurposed for other uses when adding payloads to the drone. The surplus modules in my kit are the PPM encoder, which is only useful when using an antique radio control receiver that only has independent channel outputs; Also the I2C splitter, which is only needed when adding additional I2C sensors; Then the external LED and USB extension. which I didn't use because I mounted the Pixhawk in such a position that its built-in USB connector remains accessible; and a second buzzer. One is enough, I would say, but the kit comes with two buzzers, a large and a small one.

The Pixhawk kit came with a fake SD card! It is labelled "16GB", and its controller indeed identifies as a 16GB card, but the actual amount of memory it has is 256MB, of which 232.8MB actually can be used for files. I discovered this when the Pixhawk's log files started to come out blank. This fake SD card writes the first 232.8MB just fine, and whatever follows is written into thin air, not into memory, going straight to data nirvana. So it's best to destroy it and throw it away, to prevent loss of log data, and put a decent SD card into the Pixhawk.

Every web page I saw about the Pixhawk says that the pushbutton is an essential part of the system, so I did install it on my drone. Later I learned that it's not essential, and is actually quite unnecessary! I configured the software so that I don't need the pushbutton, and I will leave it out of my next build, to save some weight.
   
The next big decision is the radio control set.  I still had my old Futaba Conquest "digital proportional" 4-channel radio from the early 1990s, running on the 72MHz band, but radio control technology has advanced so much over these many years that I decided to buy a new set. Doing my homework I found that the Taranis models from the brand FrSky are highly recommended, but relatively expensive, while some other radios from the competing brand FlySky are considered to be the best value for money. The price difference is really big, and by comparing specs I didn't see a significant advantage for the more expensive radios, in my application. So it was clear that I needed a FlySky radio. The web pages most warmly recommended  the i6X model, but the reasons were things like backward compatibility with existing older receivers, and the presence of trim levers, which are not needed for quadcopter flying. Since I didn't have any such older FlySky receivers, I opted for the i6S transmitter, which is newer and has a totally different look, a very smooth, aesthetically pleasing one. I have to confess that the aesthetics of this transmitter played a role in my buying decision, but technically it's a very good radio, and perfectly suited to my application. It provides 10 channels, is fully configurable through a touch screen, runs on 4 AA cells with very low power consumption, and there are several compatible receivers. These can output individual channels or a serial data stream, and they support the S.BUS standard, which is also supported by the Pixhawk and Arducopter.

When buying the transmitter one has the choice of which receiver to order along with it. I opted for the iA6B receiver, which offers 6 individual channel outputs, plus serial output, and diversity reception with high sensitivity and thus a long range. I really don't need the individual channel outputs, and there are several smaller, much lighter receivers that don't have them, but those have much worse sensitivity! I didn't see a receiver offering good sensitivity and diversity reception without having the bulk and weight of the iA6B, so I bought that one.

The complete set containing the FlySky i6S transmitter and iA6B receiver cost $58.43, shipping included. That's really inexpensive compared to the FrSky alternative!

A big problem is ordering batteries. Since they can start a fire if mechanically damaged, shipping them by airmail is forbidden. I didn't find any seller in China who could ship them to Chile at a reasonable shipping charge, and with online tracking. It was either courier shipping at extremely high cost, or shipping by "seller's method" without tracking, and experience has shown that items sent by "sellers method" never arrive.  

Someone gave me a hint about a guy in Chile who sells LiPO batteries, so I contacted him, and it worked fine. I got two Turnigy 3S 5Ah batteries, of a relatively low discharge rate, but plenty enough for my drone, for roughly $85 total. The batteries are the only parts I didn't order directly from China.

As a LiPO charger I selected the HTRC C150. It cost $46.02 including shipping.

I also added an order for a selection of XT60 connectors: Flying male, flying female, and chassis-mounted males, 5 each. The kind that has a cover on the rear side. These were $11.54 total with shipping, and I have found them very practical also for other low voltage, high current applications in ham radio.

This is everything needed to build the basic drone, and get it flying.

But I also bought "optional extras" to load up the drone with payloads. First of this was a set of servos. I really only need one servo, to build a grabber device intended to install lines in trees. But servos are so cheap these days that I bought a set of four, to be able to add more stuff as needed. I selected MG90S micro servos, the four of which cost me  $10.49 including shipping. I chose these metal gear servos because a friend told me that the plastic gear ones fail easily. In hindsight I think it was a bad choice, because my gripper really puts a very low load on the servo, and no risk of overloads, so it would have been better to save a few grams and some dollars and buy plastic gear micro servos.

The Pixhawk doesn't provide power to servos, so it is necessary to add a 5V switching voltage regulator to power the servo rail. These things are called BECs in modern model aircraft lingo, standing for "battery eliminator circuit", because non-electronicians would see no other option to power the servo rail than either a separate battery (!), or this thing! I got a 3A BEC, which cost $2.45, but the shipping charge was much more than the BEC's cost, bringing the total to $6.83.

The video system added a lot of cost to the Ugly Bird. But since it's the main payload, I had to shell out those dollars...

I spent a lot of time comparing specs of cameras. I wanted to have full-HD video recording, and also a realtime video downlink (known as FPV in drone lingo, which stands for "first-person view". This can be done with two separate, specialized cameras, or with one camera that does both jobs. Many people will mount a GoPro or similar action camera on their drones, or even a serious professional camera, and use a separate cheap FPV camera that only produces analog video. But that's a costly and heavy approach. Also most cameras come with fisheye lenses, that produce enormous image distortion. I absolutely hate the fisheye view, and so I had to get a camera that either had a distortion-free lens, or for which I could buy one. Here the problem of lack of specifications comes in! Unfortunately most Chinese items have very incomplete specs published. It's often impossible to find out what lens mount a camera has, what exact size its sensor is, and this makes it hard to find out which lens might fit which camera.

After much reading, comparing demo videos on Youtube, and thinking, I finally purchased a Runcam Split 3 micro, for $68.58, shipping included. This camera has a 2MP CMOS sensor, records 1080p video at a claimed 60 fps rate, at the same time produces analog video output for FPV in NTSC or PAL format, and it is really very small and lightweight. It's a split camera, meaning that the camera head and processing electronics are separate. I had the intention to install just the head on a gimbal, and the electronics further away, but the very short special cable joining the parts prevented this. Clearly this camera is fully intended for small racing drones.

Since the Runcam comes with a fisheye lens, but at least in its specs it's said that it has a standard 12mm lens mount, I purchased a Yumiki 2.4mm f/2.0 M12 distortion-free wide angle lens, for another  $8.05. As it later turned out, this lens indeed fits, indeed is distortion-free, but has causes strong vignetting in the corners when used with the Runcam. So it's not a perfect match for the camera, but usable. That comes from not knowing the Runcam's sensor size nor the Yumiki lens's image field.

To transmit the FPV video to the ground, I bought an Eachine TX805 video transmitter, for $13.73 (shipping included, as with all the prices I'm giving here). This is a 5.8GHz transmitter that nominally puts out 800mW maximum power, for which a lot of user reviews are available online.

The transmitter comes only with a very basic sleeve dipole antenna, so I added a Foxeer Pagoda antenna with the fitting connector, for $9.31. It would be rather easy to build one for far less cost, but I'm getting lazy...

Between the camera and the transmitter I inserted an OSD module (on-screen display), to superimpose telemetry information on the downlinked video signal. I ordered a MinimOSD for this, the version in a plastic box, which cost $10.

A quadcopter needs to tilt at various angles all the time, to control its position and speed. So to get stable video it's essential to use a gimbal. But I couldn't find any ready-made gimbal small enough to use with the Runcam 3 Split. Using a standard gimbal intended for action cameras is of course possible, but is much heavier than necessary, and weight is the enemy of everything that needs to fly. So I decided to build my gimbal from parts. Shopping for gimbal controllers, I found that the Alexmos controllers are the most popular, and that the world is divided basically in two big camps: The modern, high performance, high $$$ camp, using the 32 bit Alexmos controller for 3-axis gimbals, and the low cost camp, using various clones of the older 8-bit Alexmos controller, which by default controls 2 axes only, but can be upgraded to 3-axis operation. The price difference is large, so I bought an 8-bit Alexmos controller with sensor for  $10.23, and considering that I don't need to yaw the camera, I did not add the 3rd axis module. And I also bought two very nice gimbal motors, the Yuneec 2715, for $14.97 total. These motors are smaller and much lighter than most gimbal motors, and work and look really great! I haven't seen better made motors anywhere so far.

To receive the FPV video on the ground, the most recommended approach was to use "virtual reality" goggles with a suitable diversity receiver. Again the world is split between a high performance, high $$$ camp mostly promoting FatShark products, and the cheapskate camp using products that cost only a small fraction of a FatShark item. Although the goggles are not at risk if my drone flies away or crashes, I didn't want to pay more money for the goggles than for the entire drone plus everything else on the ground, and this had me looking closely at the cheapskate camp's offers.

For a primer, I wear glasses. I have strong astigmatism, very different in both eyes, so I don't see a  thing without my glasses, and for this reason any goggles that cannot be worn over my glasses are out. Some goggles accept prescription lenses, stupidly called "diopters" (really a measurement unit for lens strength) by many people, but these are usually expensive and hard to get. So I looked only at FPV goggles that were advertised as being compatible with normal spectacles.

Of these, the Eachine EV-800D were most highly recommended on various websites, so I bought those, for $100.43, the most expensive part of my whole setup! These goggles are of the box type, have a resolution of 800×480 pixels, support NTSC and PAL, in 4:3 or in 16:9 aspect ratio, have a built-in diversity receiver for 5.8GHz, come with two antennas that are said to be good, they can record the received video on an SD card, can play back video, can accept external video, and come with a built-in battery and a charger. The ads stress that they fit easily over the user's spectacles. And that's the lie of the century, my dear readers! They do not! Absolutely not! No way!!! More about that later. Much more, in fact!

Anyway, that completes my purchases, not counting some general items such as screws, double-sided adhesive tape, cable ties, which I also ordered at this time, but which are not exclusive for my drone project.

All the above sums slightly over $600. Not cheap, but way cheaper than buying a comparable drone setup ready-made! And much more fun, highly modifiable, and very versatile.

I placed the orders in early February 2020, in the midst of the COVID-19 lockdowns in China. This delayed the shipping of several items, since the sellers were in lockdown, or the factories couldn't deliver due to logistic problems. And when the items started coming in, COVID-19 had reached Chile. The city where I have my P.O.Box went into lockdown, and all this meant that I got the last parts only by October!
 
This photo shows what had arrived by mid March, the last time I could go to the post office before the lockdown. Most parts actually had arrived by that time! There is the frame, the goggles, the Pixhawk kit, the ESCs, motors, batteries, XT60 connectors, the gimbal controller, gimbal motors, MinimOSD, video TX, antenna, the camera, and the propellers. But a few essential items, such as the remote control set, didn't arrive before the lockdown.

So I went to play with the new toys, doing what I could, enjoying the trip, because the goal of First Flight was still far away.


 
I didn't like the frame at all! It proved much heavier than the ads said. The ads claimed a total weight of 280g, but it turned out that the weight is 312g without the landing gear, and an additional 226g for the landing gear! This has such a serious impact on the total weight budget, that something had to be done.

The landing gear is extremely large, far too tall for this drone. It would be easy for the drone to flip over and crash the props into the ground when landing with even a small horizontal speed. It also doesn't fit the frame very well. So I decided quite soon to not use the landing gear at all.

The frame isn't very stiff. Particularly the torsional stiffness of the arms is poor. This becomes important if there is any dynamic imbalance in the propellers - and there always is some!

Also the frame isn't very well suited for attaching all the stuff I need to mount. There is really no good place for the battery. Some people mount the battery inside and the controller on top, but my battery doesn't fit inside, in a proper way. It would end up jammed between the arms, without any cushioning, putting it at great risk. Placing the battery under the drone puts the center of gravity too low, drastically limiting the maneuvering capabilities of the drone. Putting it on top is still the best option, but that means mounting the controller inside the frame, where it is hard to access, and close to the motor power wiring, causing strong interference to its internal magnetometer. And since the GPS mount needs to go on the top too, there is some conflict between it and the battery.

The arms are massively made from relatively soft plastic. They are heavy, too flexible, at the same time more break-resistant than necessary, given that they mount with tiny 2.5mm screws, which concentrate the forces. In a crash, breakage will probably occur around the screw locations, and the heavy weight in plastic along the arms is a waste.

Everything taken together, I strongly dislike this frame. For several weeks I wondered whether I should use it at all, or put it aside and build a wooden frame. Finally I decided to use it, without the landing gear, to assemble an Ugly Bird and learn the basics about quadcopters, find out which parts work and which need to be replaced, and later build my own frame for a version #2 of my quadcopter, using an optimized set of parts.

So I started building. The lower center plate of the F450 frame is a printed circuit board used for power distribution. Here you can see the power wires of the four ESCs soldered to that board, and also the power unit, installed between the board and a chassis-mount XT60 connector which I installed on a small aluminium plate mounted with double-sided foam tape to the rear right arm.

What on earth motivates the fashion of making so many things black? Many parts of my drone are black. The two boards of the F450 frame, all plastic boxes of the Pixhawk kit, and several other parts. Black makes it hard to see properly what one is doing, and also makes it hard to shoot decent photos! I often find myself shining my most powerful desk lamp directly into some corner of black stuff with black background in this drone, and still having trouble seeing!

At first I installed the Pixhawk and the RC receiver on the top of the frame, in a very temporary way,  just to check their basic functionality. The receiver is connected to the Pixhawk by a 3-conductor cable: Ground, power and data. The individual channel outputs aren't used. The data format in use is S.Bus.

The receiver is configured from the transmitter, through its touch-screen. It is even possible to update the receiver's firmware through the transmitter. All these things were a total novelty to me, after having been away from the model aircraft world for a quarter of a century! When I stopped flying model aircraft, the RC systems didn't use any firmware, and the airplanes had no flight controller...

As much as I like this radio control set, it does have one big fault: There is no way to see the received signal strength! The receiver doesn't send an RSSI (received signal strength indicator) signal on the serial data stream, and despite the communication between the RC transmitter and receiver being bidirectional (both are in fact transceivers!), RSSI isn't transmitted down to the transmitter! So while flying one never knows how good or how bad the RC signal is getting to the drone.

After initial checkout, I assembled the basic drone in a way better suited for flying: The Pixhawk inside the frame, the receiver on the side opposite to where the power module is, and the battery on top, in a specially made battery holder.

Making stuff from PVC pipe is easy! I took a piece of PVC sanitary pipe, slitted it, softened it with a hot air gun, flattened it between two flat plywood pieces, then used the PVC sheet to make the battery holder, by cutting out a suitable shape and bending it with the hot air gun. This battery holder was stuck to a surface of double-sided adhesive foam which I put on the top of the frame. A velcro strap secures both the battery and the holder to the frame, while the adhesive foam keeps the holder from shifting around. And to balance the drone, the battery holder can easily be lifted off, and put back down in the proper location.

A question was how to install and orient the two RC receiver antennas. They should always have a free line of sight to the transmitter, so they obviously should go on the bottom side of the drone. To make good use of receiver diversity, they should be oriented at 90° to each other, and have some physical separation. And of course they should be as far away as possible from parts and wiring that radiate interference! This precluded tying the antennas to the frame arms, a mistake many drone builders do. The arms also carry the ESCs and their wiring, which generates a lot of radio noise. The further away the antennas are placed, the better. So I took a piece of orange PVC electrical conduit pipe, slitted and flattened it, and crafted it into the fancy antenna holder you can see in this photo!

Seen at this angle, both the battery holder and the RC antenna holder can be seen a little better. You can also see the GPS+magnetometer module mounted on its very high pedestal. This is really higher than necessary for the GPS, but the tall pedestal is useful to put the magnetometer well away from motor wiring interference, and that's an important point.
 
For storage and transport the GPS mast can be flipped over, and then rests at the side of one arm.

Here is a close-up of the rear side, showing the power connector on its kapton-covered aluminium plate. At the left you can see the pushbutton and the buzzer. You can also see the Pixhawk's rear end, where the connections for the radio, the ESCs and any auxiliary outputs are.

I didn't use the anti-vibration mount that came with the Pixhawk. I found it too heavy and much too stiff. Instead I mounted the Pixhawk using four little closed-cell PVC foam blocks, which I cut from 3M Exterior Foam Tape Weather Strip. This seems to work better and is much lighter.

While installing the wires to the Pixhawk I made sure to use wide enough loops, so that the wires transmit as little vibration as possible.

The right side of my drone's center area is for power distribution. In this photo there is just the power module, but later I added the BEC for the servo rail there, and the connections for the video system's power supply.

The USB connector of the Pixhawk is on this side too, which requires leaving a clear area large enough to plug in the USB connector for parameter setup.

This is how the basic quadcopter looked from the bottom side at this stage. Not much there yet! Later I installed all the gripper and the gimbal, using up that space.

My thanks go to Euridiiice the giraffe for holding up the copter for this photo. Her name is spelled with those three letters "i", to do justice to her long neck, which I had to cut off to make the photo fit on this page.

In this condition the drone was ready to fly. I first did the whole setup of the flight controller, very carefully. Arducopter is a complex, quite advanced software that has a lot of features, many configuration parameters, and it really needs to be set up correctly to work. So it's not for the kind of people who like to take something out of a box and fly it. It's not for those who abhor reading and following instructions. There is very good documentation online, and one really has to read it, digest it, understand it, read it again - and follow it! At least most of the time...

I went through it step by step, trying to test as many things as I could with the drone inside my workshop, properly tied down whenever the propellers were installed. Despite being pretty confident that I had done everything right, I did the first flight with a 10m long leash tied to the drone, its other end tied to a brick! I had a very bad experience previously with a toy drone, a Syma X25-Pro, which had a huge predilection for flying away. It would suddenly just shoot up and away, not reacting to any control input, only to be caught by a helpful tree!  And I had read that this also happens with Arducopter-controlled drones, when they are incorrectly set up, or if they suffer from excessive vibration. So, better safe than sorry! I made sure that my brick was heavy enough so that the drone absolutely couldn't fly away with it!

But my caution proved unnecessary. The Ugly Bird flew quite nicely on the first try, very stably, without any tendency to do unexpected tricks. So for the next flights I released it from the leash, and stored my brick for future uses.

Multicopter control software contains several servo loops, which use adjustable PID (proportional+integral+derivative) gain. The Arducopter software comes with default parameters that usually result in a stable and safe, although somewhat sluggish response. My Ugly Bird flew just as intended by the software developers: Very stably, although having the reactions of an old man rather than those of the young kid it is. To correct this, the parameters can be tuned manually or automatically. The latter option is highly attractive, because it's easier to do and will result in optimized parameters that make the drone follow control input in a snappy and precise way. So I tried autotuning, but it failed. There can be many reasons for failure. Since my drone was flying well enough for first tries with the default parameters, I decided to leave the parameters alone for the moment, and start adding payload to the drone. PID tuning could be optimized later, to improve the response.

Camera installation

At first I installed the camera without a gimbal, in a soft foam mount at the front of the drone, suspended from two plastic tubes protruding forward. I forgot to shoot photos of this setup, so I can't show you any! Sorry about that. This provisional installation served to find out that the absolutely softest mount works best. It has to be so soft that it barely holds the camera in the rough direction intended. Otherwise vibration from the propellers will cause a really terrible "jello effect", the name droners give to the shaking-jelly-like deformation of the video image caused by the rolling shutter of a CMOS image sensor that's vibrating. I ended up mounting the camera with blocks of very soft foam.
 
The testing also showed that the transmitter and the OSD work fine, and that the camera's image quality is nothing to write home about...

And also it made clear that a gimbal is really necessary, to avoid getting seasick while watching the video. So I won't dwell any longer on this provisional installation, and move right on to the gimbal-based installation that I'm using at the time of writing this page.

The first problem to be handled is that the Runcam Split 3 is, well, a split camera. The camera head is very small, and it's connected to a somewhat larger printed circuit board through multiple, flexible, very thin wires, with their connectors glued to the board. The cable is much too short to bring it out of the gimbal, forcing me to install the board in the gimbal along with the camera head.

To do this, I found some scrap of 1mm thick aluminium sheet, and crafted the bracket shown here. It's designed to take up the complete Runcam Split 3 Micro, protecting it somewhat, while allowing easy access to its SD card slot and to its buttons.

On the rear side the bracket attaches directly to the tilt motor. That's why the screws holding the camera board's standoffs need to be flat headed.

To assemble this, first the standoffs are installed, then the bracket is attached to the motor, then the camera board is installed in the bracket, and finally the camera head. It's all very compact, because compactness leads to stiffness and lower weight.

The center line of the motor runs exactly through the mass center of the bracket with the camera installed, the SD card inserted, and the gimbal sensor attached to the bottom. This has to me measured before drilling the holes for the motor! The motor ends up a little bit shifted from the physical center of the bracket.

These motors use very small screws!  They are M1.6, that is, their nominal outer diameter is a little less than 1.6mm. They are 4mm long.
 
The standoffs are M2, the screw holding the camera head too. Most other screws on the drone are M2.5. Since I normally worked with screws sized M3 and larger, and local stores also offer only M3 and larger, I had to buy kits of M1.6, M2 and M2.5 screws from China, and a kit of M2 standoffs.

Note that all areas where the board edge or any wire can touch, are insulated with kapton tape or heatshrink tube. A piece of damping foam goes between the camera head and the bracket, to attenuate any resonances.

Since it's so nice, here is a view of the bracket from the motor side. These Yuneec motors are really beautiful!

In the background is the camera, waiting to be installed.

By the way, Yuneec seems to measure motors differently from most manufacturers. While my flight motors are size 2212, meaning that their stator (inside the rotor) has a diameter of 22mm and a height of 12mm, these Yuneec 2715 motors are measured externally. Their total external diameter is 27mm, and their total length between the two mounting surfaces is 15mm. So the Yuneec 2715 motors are significantly smaller than the Readytosky 2212 motors. Their diameter is only slightly smaller, but they are much shorter and thus lighter than the flight motors.

Also it's important to know that gimbal motors have a very low KV rating. This "KV" has absolutely nothing to do with "kilovolt"! It means a constant  of theoretical revolutions per minute per volt, when free-running. So my flight motors, rated at KV=920, when free-running (without propellers) at full throttle with a 12V battery, should rotate at 11040 RPM. Loaded with propellers it's significantly less.

The Yuneec gimbal motors have KV=180. For a given stator lamination stack and rotor, the KV value is determined by the amount of wire turns wound on the stator. More turns produces a lower KV rating, also requires thinner wire, making a motor that runs slower at a given voltage but needs less current to develop a given torque. This lower current requirement is why low KV motors are used in gimbals. A gimbal motor needs to rotate only as fast as the maximum rolling or tilting rate of the drone, and that's very slow compared to the speed propellers run at.

To make such aluminium sheet pieces without having to do too much precision measuring and marking, I design the pieces in AutoCAD, print them on paper, stick the paper to my piece of aluminium sheet using double-sided adhesive tape, and then I mark, cut and drill through the paper and the aluminium. Then I make the bends, and after that I remove the paper, countersink any holes that need it, and deburr the piece.

This photo brings news! The camera has been temporarily installed, and the second bracket is in place, along with the roll motor.
 
The second bracket is very simple, but I got the mass center measurement wrong, and the roll motor ended up a few millimeters shifted relative to its correct position. So I had to drill new holes for it. You can see one of the surplus holes here...  No big deal.

When building a gimbal its important to keep everything well balanced, because any imbalance will transform linear vibration into torsional one. While linear vibration doesn't cause any blurring or jello effect with distant objects, torsional vibration does. While the gimbal controller will tend to cancel torsional vibration, it cannot do this perfectly, so it's always best to start with a precise mass balance.

I installed the gimbal controller's inertial motion sensor under the camera bracket, using double sided foam tape. This exposes the sensor to possible contact with conducting objects, which I don't like, but I have been getting used to the fact that the electronics of drones built on open frames live dangerous lives!

The sensor board can be mounted in any position, as long as it is exactly perpendicular to the motor axes. Later, during setup of the gimbal software, the sensor orientation is declared.

I tried to install the gimbal on the drone using the aluminium bracket system shown here, with foam blocks to attenuate vibration. This supports the gimbal very much behind its mass center, causing a lot of linear-to-torsional vibration transformation. I hoped to get away with this thanks to the very soft foam mounting, but it didn't work! The first flight test with the gimbal installed in this way produced a disastrous video quality!  It had the worst jello effect I have ever seen. So, despite my beautifully crafted, computer-designed scrap aluminium mounting brackets, each of which attaches to 4 screws of the drone frame, giving a very solid mount and two well aligned, vertical, parallel mounting surfaces, I had to discard this approach and find one that mounts the gimbal in its mass center, at least for the yaw axis. The roll and tilt axes are less critical in this regard, because the gimbal can compensate for vibrations in those axes to some degree. A three axis gimbal would be better in this regard, but also heavier.

So, back to cutting and bending aluminium sheet... 

It would have been best to mount the gimbal at two spots, such that the average mounting force is exactly at its mass center in all three axes. Since I can't put a mount on the front, because the camera needs to look in that direction, and neither can I put a mount under the gimbal, because the camera needs to look straight down too, the most obvious option would be to place one mount on each side of the gimbal. But that would have made my gimbal too wide, putting too much of it directly under the front propellers, which would have reduced propeller efficiency and put lots of turbulence on the gimbal. So I decided to hang the gimbal from the top, with a mount that at least is in the mass center for the yaw axis, although not for roll and tilt.

This bracket attaches to the roll motor, and has a top "roof" mounting plate that is centered above the gimbal's mass center. It allows hanging the gimbal from the top, while also providing some shielding of the gimbal's movable parts from the propeller turbulence. 

A future incarnation of my drone will have a wider separation between the front propellers, and a body that fully shields the gimbal from turbulence. That would allow supporting the gimbal from both sides, so that the average support force ends up in the mass center for all three axes.

Since aluminium sheet mounting brackets long enough to attach to the new gimbal rear bracket would have been too large, putting too much surface in the propeller's airstreams, I opted for a quick and dirty solution: I took some 6mm thick soft aluminium tubing, and bent it into the shapes needed to allow attaching it to the frame by means of cable ties and double sided foam tape, while providing support for the gimbal at the proper location.

The two aluminium pipes are asymmetrical, in order to locate the gimbal assembly somewhat left from the drone's center line. This serves two purposes: It places the camera head closer to the center line, so that there is less tendency for one propeller to intrude into the image during high tilt maneuvers; and it places the gimbal's weight a little left, allowing me to move the battery holder a little to the right to counterbalance the gimbal. This was desirable because the battery mount was in direct contact with the GPS pedestal fixing sleeve, difficulting its use.

I had to move the battery holder pretty far back to counterbalance the gimbal. The right rear propeller passes just a few mm from the battery corner. Thanks to the battery holder being firmly held in place by the sticky foam tape, there is no risk of collision.

And the battery cable of course is plugged into its socket during flight, eliminating any risk of propeller contact. The gimbal and camera cables are safely below the propellers. They aren't long enough to get into harm's way.

I mounted the gimbal's top plate to the aluminium tubing using soft foam blocks. They are simply perforated and pushed over the tubing, then stuck to the aluminium sheet using double-sided tape.

Unfortunately my tape doesn't stick very firmly to this foam. If subjected to a pulling force, it will slowly come off! So if I place the drone upside down for too long, suddenly the gimbal will fall off... but in the drone's normal position, bottom down, the tape holds the gimbal in place well enough! And it can't come completely off the drone, of course, because several wires tie them together.

I might improve this by drilling holes into the corners of the roof sheet, and using larger foam blocks with slits in them, pulled through these holes.

As you can see, the clearances between all parts are pretty tight. I did this to minimize weight and levering. The price is that the roll compensation range is only about ±25°, but this is enough for normal flying. The gimbal hits the end stops only during unusually brisk maneuvers. The tilt axis has a range from about 15° up from horizontal to 40° behind straight down. It's not useful to have more than 15° upward tilt with the camera mounted in this place, because that would serve just to film the propellers... With the camera in horizontal orientation, the right propeller does intrude a little into the image during a strong forward tilt plus right roll maneuver, but that can be avoided in most flying conditions by being gentle on the control stick. When tilting the camera a little down, so as to place the horizon line in the upper third of the image, the propellers never intrude.

Most older multicopters have their cameras installed under them, rather than in front. I guess that this is done mainly to allow carrying heavy cameras, that can't be balanced when installed in front. But with a lightweight camera, like this Runcam, a frontal location seems better to me. It allows looking forward and down, and doesn't require adding a large landing gear, which is somewhat heavy and tends to make the drone unstable on the ground. Also placing the camera under the drone, plus adding that landing gear, shifts the mass center far below the thrust center, forcing a battery placement well above the propeller plane to keep balance. Many drone builders don't do the latter, maybe don't even understand the problem of vertical mass balance! A drone that has its mass center much below its thrust center will be fine while hovering with no wind, but will have very little ability to fly fast or to compensate for strong wind, because any tilting or rolling of such a drone requires two motors to work much harder than the other two, easily running out of power reserve. So it's always better to keep a drone well balanced, even in the vertical plane. Fixed-wing airplanes get more stable and safer when the mass center is lower and forward relative to the lift center. Multicopters don't.

The Ugly Bird anyway couldn't carry a camera under it, because that area is reserved for the gripper!

The Yuneec motors come with very thin wires terminated in small connectors. To avoid the risk of ripping these wires out of the motors, and since I couldn't use those connectors anyway, I cut the connectors off and soldered the wires to little pieces of printed circuit board stuck to the brackets. There I attached somewhat more robust ultra flexible silicone-insulated wires.

The gimbal controller was installed under the front of the frame's bottom plate, using double-sided foam tape. In this photo the controller is still exposed to the elements, such as wet grass, but later I applied kapton tape insulation over it, like this photo already shows in place for the sensor board. I also covered the frame's base plate with kapton tape before installing the board, so that I can repeatedly unsolder and resolder the wires without any risk of causing a short to the board. Kapton is heat-resistant and acts as a good solder barrier.

The gimbal controller connects to the gimbal motors, the sensor board, the drone's battery, and there is also a single control signal coming from an auxiliary channel of the Pixhawk. This brings in a feed-through signal from one channel of my radio, which I use to tilt the camera to any orientation between horizontal and vertically down. I use a spring-centered auxiliary potentiometer of my transmitter to control the tilt angle through the gimbal controller's velocity mode. This allows smooth vertical panning. The yaw control stick allows equally smooth horizontal panning, of course.

I configured the radio to use channel 9 for the left thumbwheel, and set up Arducopter so that the Pixhawk will pass the radio channel 9 through to the output. Since there are 8 primary (motor) outputs on the Pixhawk, radio channel 9 appears at auxiliary output 1 of the Pixhawk. This is a case of RC opportunism! :-)  Assigning radio channels and transmitter control elements to various functions, using the options given by Arducopter software running on a Pixhawk, is a bit like a strategic game, making use of the various possibilities and flexibility each part of the system has, and working around any limitations.
  
Arducopter can also be set up to control the gimbal more actively, but so far I haven't found this necessary. It's one of the things left to play with, after finishing this web page - if I ever finish it! It seems to be getting long...

The camera ends up hanging pretty low, which forced me to raise the front of the drone by installing styrofoam blocks to extend its front feet. The blocks may not be elegant, but they are cheap, lightweight, easy to install (double-sided tape and a cable tie), and their bright white color improves orientation visibility of the drone in the air.

With longer front feet than rear feet, the drone sits tilted on a flat surface. But this doesn't matter at all, because the accelerometers are calibrated only in the workshop, not before taking off. The gyroscopes are calibrated after power-on, which requires keeping the drone motion-free during that moment, but its attitude doesn't matter. So the drone can take off from inclined surfaces without any problem. That's an important point in my hilly, densely overgrown wilderness flying location.

If a drone needs to be turned on and flown from a moving vehicle, the gyro calibration at turn-on should be disabled in the software.

The OSD unit is installed in front of the Pixhawk, low enough to leave free access to the Pixhawk's SD card slot. The SD card is the "black box" of the drone, storing detailed data of every flight. It can also store terrain information downloaded from the internet, for flight modes that require terrain following, but I don't use that feature.

The MinimOSD, mislabeled "Mini OSD" on the box, is an Arduino in disguise, connected to an OSD chip. It can be configured by unplugging the data connector on the right, and connecting that port to a computer via an USB to serial converter. So the OSD unit has to be placed such that there is access to this port!

Some people run into trouble with powering the MinimOSD, because this matter is poorly documented, and there is some wrong or misleading information online. The MinimOSD has two "sides". One is the Arduino in it, the other is the OSD chip proper. Each needs a 5V power supply. In order to try avoiding interference to the video from the digital-side power supply, the original designer provided a method to power both sides separately, when using a second battery to power the whole video system independently from the rest of the drone. To do so, the MinimOSD includes an internal 5V regulator, which gets its unregulated input from a pin on the video side of the module, intended to be connected to the video battery. This regulator powers the OSD side, while the Arduino side gets powered from the flight controller, through a 5V input pin on the data side.

But most modern drones don't use a separate battery for the video system! They power everything from a single battery, and so it doesn't make much sense to separate the power supplies in the MinimOSD. To be used in this situation, the MinimOSD board includes jumpers, cuttable traces or solder bridge locations that allow joining or separating the 5V lines of both sides as required. If joined, the entire MinimOSD can be powered either from its 5V input or from its 12V input - but not both at the same time!

Most MinimOSD boards are delivered with these bridges already in place, and without correct, clear documentation telling people to use either one or the other power input, but not both. The result is that some people end up connecting both power inputs, which makes the internal small 5V regulator work in parallel with the drone's power module's regulator. How much of the flight controller's supply current will then be delivered by the MinimOSD's little internal regulator depends solely on their exact relative voltage outputs and the wiring resistances in the setup, and the result is often that the MinimOSD's regulator works far too hard with this heavy unintended load, and burns out, or overheats the OSD chip which is located very close to it!

There are some web pages written by people who didn't really understand this, and thought that the OSD chip proper is at fault.

In the Ugly Bird the MinimOSD has the internal 5V interconnections in place, and I'm powering it only through the 5V input, from the Pixhawk. The 12V input remains disconnected, and thus the internal 5V regulator isn't used at all. It works fine, and I don't get any interference.

The video signal flows from the camera to the OSD unit, and from there continues to the video transmitter. This little unit gets so extremely hot that I mounted it on the top of the front right arm, directly under the propeller, creating some more drag and turbulence but getting very good cooling.

When flying in high humidity the propeller can cause condensation of tiny water droplets, and throw some of these on the video transmitter. It reacts by causing many brief video dropouts! So it's not a very good idea to fly my drone in such weather. I didn't dare put any protection on top of this board, because it gets so terribly hot! It needs all the cooling it can get.

This transmitter is rated at 800mW. I use the high power setting only when I will fly at some distance, and then I take off as soon as possible after connecting the battery. I fear that if I leave the transmitter running at full power without the propeller cooling it, it might melt the plastic of the frame's arm! Whenever I'm not flying at distance, I keep the transmitter set to 25mW output power. At that level it just gets hot, but not extremely hot...  And this power level works well enough when flying at modest distances.
 
Power setting, and also channel selection, are done by a single tiny pushbutton, which looks sheepishly at the motor in this picture, beside the antenna connector.

The Foxeer antenna was mounted on the right front foot, pointing downwards. This puts it in direct view of the ground, in any direction, and places it as far away as possible from the RC receiver antennas, to minimize the risk of any interference. The two systems operate on totally different bands, but these small cheap radio units are typically not very well filtered and might have strong spurious responses.

Like the camera, the transmitter can run directly from the flight battery's voltage, but the manual warns that this should be filtered. So I made a power line filter and installed it under the  arm, between the transmitter and the power distribution point. Such filters can also be bought from China, at a very low price.
 


The Ugly Bird's second payload is a gripper. This is a simple device involving a servo that operates a sort of padlock. A load can be safely engaged here, and released by making the servo open the lock.

I used a piece of profiled wood, carved to shape, and a piece of steel wire, to fashion this padlock. I mounted it - how else - by using double sided tape and cable ties...

The load ends up hanging precisely under the drone's center of lift, and is released when the servo pulls the wire back.

The servo rests on the top side of the frame's bottom plate, at rear, its arm extending through a cutout that happened to be very conveniently placed, despite being intended for some totally different use.

The servo is mounted - you guessed it - with double-sided tape. Implementing a variation of this theme, I used no cable tie this time! :-)

Here is a new view of the power distribution side of the drone's center area. The BEC that powers the servo rail has been added, directly behind the power module. This BEC not only powers the gripper servo, but it also acts as redundant 5V source for the Pixhawk.

Deep inside you can see two of the light gray colored foam pads that support the Pixhawk. And if you look very carefully into this murky black mess, you can even see the Pixhawk's micro USB connector. That's where I have to plug in the computer every time I need to change any of the Pixhawk's configuration parameters, and that's why some people prefer to use the USB extension unit that comes with the Pixhawk kit, and mount it in some easily accessible place, despite its additional weight.

Here is a photo showing how the GPS support mast folds down for storage. It's also convenient when placing the drone upside-down to work on its bottom side. It will then rest on the propeller nuts.


Interconnections

A newcomer to drones will surely wonder how all these parts and modules interconnect. The best way to show it is with a block diagram. Click it to get a legible version!

As you can see, it's not really complex. The battery, Pixhawk, ESCs, flight motors, and either the power module or the BEC are absolutely essential. Everything else is optional to some extent! A drone can fly without a GPS and using the Pixhawk's internal magnetometer. If it has a GPS, it can fly without an RC receiver, performing pre-programmed autonomous missions. The beeper and pushbutton are there just for convenience, and while I find the beeper useful, I definitely don't need the pushbutton, and would remove it if that wouldn't require tearing down half of the drone. Everything else is payload: Gripper servo, camera, video transmitter, OSD, the filter powering them, and the gimbal.
 
While the Ugly Bird is a simple animal, there is no limit to how much complexity could be added. A copter can have 6 or 8 or even more flight motors and ESCs. It could use two or more batteries, additional power modules, additional inertial motion sensors, an ultrasonic altimeter, collision avoidance cameras, a ground-lock camera for precise position control, a recovery parachute, retractable landing gear, more sophisticated gimbal control, the camera and video transmitter could be controlled from the Pixhawk, there could be a backup RC receiver, of course one could add a telemetry radio that links the drone to the groundstation software during flight, and the possibilities for fancy payloads are unlimited.

I have no idea yet what I will be adding to the drone over time. But due to the high risk of complete loss involved in flying over my densely wooded area, I don't want to put very expensive stuff on the drone, nor do I want to make the drone proper much larger - and carrying much more stuff does require a larger drone!

Some people have asked me why I used a 3S (3 cells in series) battery. Apparently they tend to think that more is always better. I did this for two main reasons. One is that the accessories, like the gimbal, camera and video transmitter, can work fine from a 3S battery, while 4S might already be too much, requiring transient limiters or even an additional voltage regulator. So a 3S system is simpler and more efficient. And the other reason is that a 3S battery produces just the right amount of peak thrust for a drone of this size, when using widely available 2212 KV920 motors and 1045 propellers. Using a 4S battery would require motors rated at lower KV, which are less common, or smaller propellers, which are less efficient, or it would result in a drone that can consume such high peak current in an extreme maneuver that it might overtax the the battery or the motors.

Bigger isn't always better. Sometimes a specific size is just right. 


Propeller grief

The intense jello effect I got at first was a clear indication that my drone suffered from extreme vibration. I used my homemade accelerometer to measure the vibrations, and found that each individual propeller caused vastly different amounts of it. This set me on a course of trying to balance my propellers, and also my motors.

Motor balancing was easy: Using a method described on the web, I empirically did a decent dynamic balancing of each motor by sticking little pieces of tape to one or two spots of each runner. This brought the motor-induced vibrations down to almost zero, but they were never very big to start with.

Propeller imbalance is a much more serious problem. Unfortunately many websites describe methods for static propeller balancing only, and stores sell propeller balancing devices that also are good only to do static balancing. But propellers are three-dimensional parts, and absolutely need to be in good dynamic balance to run without causing too much vibration! The idea promoted by some people, that propellers are flat enough to only need static balancing, is totally incorrect. Even if a propeller was perfectly flat and straight and was in perfect static balance, all it takes to cause strong dynamic imbalance is a very small tilt of the propeller relative to the motor axis!  Such tilt can be caused by an imprecisely formed hub contact surface, a slightly crooked hole, a grain of dust between the prop and the motor, by the propeller bending slightly after being made. Most quadcopter propellers are injection-molded, and it's hard to make parts by this process that come out really straight, and stay straight.

Despite this need for dynamic balance, there don't seem to be tools for true dynamic balancing of drone propellers. Homebuilt balancing setups are described on some web pages, but shockingly they don't perform dynamic balance! The authors seem to think that two-dimensional balancing in a spinning setup is the same as dynamic balancing!

Maybe someday I will build a true small-scale dynamic balancer. For now, all I can do is accurate static balancing, and empirical dynamic balancing, based on guessing the locations where to add mass and then measuring the total vibration that results, as a scalar value. 

Being the proud owner of a lathe, I made several simple tools to check the static balance and straightness of my propellers. Top left is a traditional roll balancer, which also can be bought ready-made in various types. Then come three hang balancers, two made from technyl and one from aluminium, having various sensitivities. And the printed paper with the technyl hub glued on is a straightness checker tool.

This is a way to use the roll balancer. It needs to be placed on two very smooth, completely flat and leveled, hard surfaces. I used two drinking glasses for this photo, but two very straight, polished round bars are better. It is critically important that the rolling supports are perfectly leveled, or the balancer will always tend to roll to one side. My glasses placed on a carpet definitely don't meet that requirement!

The nice thing about such a roll balancer is that it always has neutral stability, so it will be very sensitive to even slight static imbalance. The propeller should always stop at any random position, after having been disturbed. In this case, the propeller doesn't do that, but tends to level itself almost horizontally every time, always on the same side, which means that its static blade balance is reasonably good, but the blades aren't at 180° to each other! In simple words, the propeller is crooked.  Some people call this a "bad hub balance", but what's bad here is not the hub! It's the propeller's straightness.

The hang balancer has the big advantage that it doesn't require a straight and leveled surface to work. It's simply hung from its string.

The critical points when making such a hang balancer are that the string should be thin and flexible, and the center hole must be very small, just barely larger than the string, and very well centered. On the top side the hole has a conical enlargement, and this cone goes as deep into the hole as you want the balancer to be sensitive! If the tip of the conical opening ends in the exact mass center of the propeller plus balancer, then there will be neutral stability, and the balancer will be extremely sensitive. If the cone ends a little higher up, the sensitivity will be reduced, and the propeller will hang at various degrees of inclination depending on the amount of static imbalance it has. And if the cone ends too deep in the balancer, it will be unstable, and will always tip over to any side even if the static balance is good, making such a balancer hard to use.

This is a close-up of the balancer's top, with the conical enlargement of the hole visible.

It's obvious that a propeller hanging at this angle is seriously crooked, being much lighter on the side where I drew the black dot!
 
Counterweights can be added as needed to bring a propeller into static balance, and this will help reduce the vibration it causes. But as long as the dynamic balance isn't good too, a propeller will always vibrate.

To check the straightness of a propeller I use this tool. The drawing was made in AutoCAD, printed on paper, and the precisely made plastic technyl hub is glued to the paper exactly at the center of the drawing. Then simple straight-down looking can be used to coarsely assess propeller straightness. If a propeller is very strongly crooked, this can be seen at once, and those propellers thrown away or used for decoration. 

For more precise measurement of the survivors I place the whole affair on a flat glass plate, use a precisely made cube to align one propeller tip with a mark on the paper, and then use the cube to see where the other tip lands on the drawing. The measurement is repeated after rotating the propeller a half turn, and the two results averaged, to cancel out any imprecision of the technyl hub and the print.
  
And I'm sorry about having to tell my dear readers that of the 12 highly recommended Gemfan propellers I bought, only one is straight within the limits of my measurement capability! The other 11 ones are crooked, the worst ones by nearly 2°! And the much more expensive HJ carbon fiber propellers were only somewhat better in average. None of them was perfectly straight.

I took the worst of the Gemfan propellers and attempted to bend it straight, by softening it with a hot-air gun, warming it up very slowly and gently and trying to find a temperature setting at which it would soften enough, without completely melting. It was a failure. The material of these propellers doesn't soften. It resists quite a high temperature while staying hard, and beyond that temperature it discolors and blisters at the surface, without softening.  According to the seller these are nylon propellers, but that doesn't seem to be correct. It's a good material in terms of strength, hardness and heat resistance, but it doesn't seem to be a thermoplastic - and obviously it's not good at holding straight shape!
 
And of course it doesn't make sense to even try heat-bending the carbon fiber epoxy propellers!

So I'm stuck with crooked propellers. Since then I bought some more propellers from other brands, but still have to check whether any of them are better.

The precision-machined hub, placed on a very flat surface (not on the old workbench shown here!) is also used to measure the height of each tip over the surface. To rule out any imprecision of my hub, this is also done by measuring twice, rotating the propeller a half turn between measurements. Most propellers are crooked in this sense too, but fortunately that's easy to correct by carefully sanding down the propeller's seating surface, until both tips end up at identical heights.
   
For this to work, it's necessary that the upper area of the propeller's hub hole has some clearance around the motor shaft, so that its bottom seating surface determines its alignment. The lower part of the hole instead must be a snug fit to the motor shaft, for precise centering. For this purpose propellers usually come with a kit of slightly conical adapter rings, made from soft plastic. Some propellers don't have these, and sit loosely on the shaft, with some play. These should not be used! The HJ carbon fiber props are like that. Of my 4 units, one fit reasonably snugly, two are loose, and one fits so tightly that it's hard to install and even harder to get off!

Getting both propeller tips to pass at exactly the same height is absolutely essential to have any hope of decent dynamic balance! Tip height should always be final-checked after the propeller  is mounted on its motor. And if it's removed and reinstalled, it has to be checked again. And after each serious ground contact or other traumatic experience it may suffer, it also needs to be checked again!

After picking the straightest propellers, and sanding down their mounting surfaces to level the tips, I used my balancers to do at least static balancing. To cancel the mass imbalance caused by the crooking, a lot of weight needs to be added to one side of the propeller hub. I used thick solder splashes (tin/lead alloy, quite dense and soft), cut empirically to the required size, installing them with hot glue. These weights need to be attached near the top of the hub, because the hub of these props is lower in average than the blades, so that attaching weights at mid height of the hub or lower will improve static balance only, while worsening the dynamic balance!

Then I fine-tuned the transverse balance by adding some more hot glue where needed. If there was any significant longitudinal imbalance, I sprayed fast-drying lacquer onto the underside of the lighter blade tip, let it dry, then measured again.

After balancing each prop, I mounted it on its motor, checked the tip heights, then test-ran the motor, measuring vibrations over the whole speed range. If still high, I rotated the prop a little, and repeated this, until getting the lowest possible vibrations.

Since the prop nuts have very loosely fitting threads, they end up in a different position each time I install them. So sometimes all it takes to improve or destroy the balance is to loosen and re-tighten the nut!

It would be best to dynamically balance the complete assembled motor+propeller+nut combination, and then never touch it again. But I haven't come up yet with a method to do this comfortably. If you have a suggestion, let me know. At this time the only thing I can do is adding two little weights (tape) at different places of the motor runners, one at top and one at the bottom, and measuring the vibration each time, trying to optimize the size and the angular location of each weight, step by step. That's a slow procedure. If there is a significant dynamic imbalance in the prop, it takes a relative large amount of weight at both places of the motor runner to compensate this.

And even perfect dynamic balance would leave some aerodynamic imbalance caused by the crooked propellers! I don't know how much effect that has. Clearly it would be best to have really straight, precise propellers. One can dream, right?

In any case, after all this effort the Ugly Bird experienced a great improvement in its Parkinson disease. There was far less jello effect, almost none when using the soft foam camera mounting, and the PID autotuning also worked flawlessly! It hadn't worked before simply because of excessive vibration, even while the vibration reported by the Arducopter software was well within the range considered acceptable. I suspect that the vibration reported by the software in the log files is only the components falling below the digital filter's cutoff frequency. The vibration at propeller rotation frequencies is well above that cutoff, but apparently still has a large impact on proper operation of the autotuning procedure.

After correct autotuning to optimal PID parameters, the Ugly Bird became a snappy responder, and very obedient to any orders from its elders, just like it fits properly brought-up young people and drones!
 

On the ground    

The copter is only part of the story. The part that flies. The other part stays on the ground, but is important too.

First, we have the RC transmitter.  It has 10 channels, touch screen, is fully programmable, and has a simplistic, aesthetically pleasing look which appeals to me much more than the more usual RC transmitters that look like taken out of an old arcade game or sci-fi movie. But of course it's black... and gets almost glowing hot in the sun for that reason!

It has the usual two gimbal sticks, which are fully self-centering, although the throttle function can be changed to non-centering if so desired. I have noticed that in the Arducopter community many people prefer a non-centering throttle stick. But my flying style, and I suppose that most other multicopter flier's too, involves almost permanent use of fully stabilized, highly automatic flight modes, in which this stick does not control any throttle nor power, but instead controls vertical displacement, just as the right stick controls horizontal displacement. So it makes a lot of sense to me to have the self-centering function, and so I left it like it came.

The sticks don't have front-panel trim adjustments. Drones do not use such trimming, since the drone proper is trimmed rather than the transmitter. But if anybody wants to use this radio for other applications, trim can be set both via the touch screen and via rear-side buttons.

The two power buttons need to be pressed together. This prevents accidental activation. Also the transmitter refuses to be be switched off while the drone is still on. So it's not possible to accidentally switch off the transmitter while flying. If any special weird situation requires switching off the transmitter while the receiver still is on, this can be done by popping open the battery door and briefly disconnecting one of the batteries.

Of the four switches on top, two have 2 positions each, while the other two have 3 positions each.

Not visible in this photo are two thumbwheel potentiometers, located on each side. These are also self-centering.

Any switch or potentiometer can be assigned to any channel. Channels can be inverted, exponential curves can be programmed for individual channels, it's possible to link and mix channels, and so on.

My current setup, as I write this, is the following: The two sticks of course control the basic four functions of a quadcopter: Up/down, front/rear displacement, left/right displacement, left/right yawing. The right 3 position switch controls the flight modes: "Loiter" in the default position, "altitude hold" in the middle one, and "stabilized" in the last position. The first and last of these names are highly misleading, but are the lingo used in the Arducopter world. "Stabilized" is actually the least stabilized of all modes the software provides! It means that the autopilot does just basic inertial stabilization, while everything else is left to the human pilot. It's the mode least dependent on proper functioning of all sensors aboard the drone, and most dependent on the operator. For this reason it's considered an emergency fallback mode for when things go wrong, and it was strongly suggested to me to always have this mode available. But in normal flying practice I don't use it. Only for very basic testing. I think one would need to have masochist inclinations to fly a long time in stabilized mode...

In altitude hold mode the autopilot controls the motor power, so the operator only needs to control the vertical displacement and the 3D attitude. In this mode the drone still only uses inertial navigation plus the barometer (altimeter), while GPS vertical information is optional. So this is a fallback mode for situations in which the GPS is acting up - but that hasn't yet happened to me. The M8N GPS receiver works very well, using not just GPS satellites but also those of other constellations. I do use this mode for testing, though, because it's good to be able to switch off automatic position correction and let the Ugly Bird float freely while doing certain tests.

In loiter mode all systems are active and engaged, the autopilot controls all motions, holds altitude and position, and the operator just inputs orders of where to go and where to point. Loiter mode elevates the operator from the position of a helmsman to that of a captain.

I set up the right side 2-position switch for automatic return to base. If anything bad happens, like me losing orientation, the FPV link failing, a bird dropping something in my eyes, or the sun suddenly being turned off, I can simply throw that switch, and the Ugly Bird will return home on its own. I had to do this one time already, when I lost the video link while flying behind a thick stand of trees. This return-to-base function is fully configurable too, of course. I set up mine with enough altitude to get over any obstacles in my area, to autonomously land the drone, to allow me to fine-correct the automatic approach, and to allow me to interrupt automatic return and re-take control whenever I want.
      
You may be starting to get an idea of how configurable the Ardupilot software is!
 
Back to the radio: I set up the left 2-position switch to control the grabber, and the left 3-position switch is my wildcard at this time: I use it as emergency stop when I'm doing any dangerous testing, as autotune invocation control when I need to autotune the PIDs after any significant change to the drone, and else I simply use it to activate the beeper, so I can tell the Ugly Bird to scream for help in case it gets lost in the forest, giving me a greater chance of finding and recovering it.

The left thumbwheel control is used to tilt the camera down and up, and the right thumbwheel is only used like a pushbutton to switch between various OSD overlay formats, including a blank one that allows enjoying the FPV landscape without any data cluttering except warning messages.

I don't use any channel to control the camera nor the video transmitter. As soon as the drone is powered up, the transmitter starts transmitting, and if there is an SD card in the camera, it starts recording. The configuration of both units is done on the ground, via their pushbuttons. When the drone battery is disconnected, the camera closes the video file.
 
During flight the display shows transmitter and receiver battery status, and there are two timers which can be used as needed. I often use one as flight timer, to make sure I land before running out of juice, in case the FPV stops working and thus I lose the telemetry. Unfortunately the back link from the RC receiver isn't used to send down signal strength information, nor anything else relevant. It's only used to send the receiver supply voltage data, and that always stays constant in my setup, being a regulated voltage. This lack of RSSI is my main complaint about this radio.
  
The whole thing is very practical and ergonomic. I like it a lot. It's an excellent radio, specially for the price! My only little complaint regarding ergonomics is that the carrying strap is attached in the middle of the front panel, and that makes the radio dangle around rather uncomfortably in a roughly horizontal orientation when hanging from this strap, and also the strap tends to get in the way of the display. I would prefer a strap attachment at the top, intended just to carry the radio around. During flight I hold the radio in my hands anyway. The controls are all well placed, and the transmitter is easy and comfortable to use.
 
I should add that so far I haven't had any RC link dropouts, or at least none that I would have noticed, despite flying at significant distances and hidden behind dense rain forest.

Another plus point is that the 4 AA batteries last very long. I use rechargeables, and since I got the radio I had to charge them just two times. With only about 6 hours of actual flight time, but many hours of use in the workshop during setup and testing.

The goggles instead are a completely different story. As much as I like the FlySky radio, I dislike these Eachine goggles! The ugly PVC conduit support-and-balancing structure I had to build already illustrates one of their big problems: Horrible ergonomics, totally unbalanced, a real torture to use as they come! Almost all of the weight of these goggles is in the very front, and they come with a strap that supports them from the rear and from the top near the rear. So the strap has to be tightened very much in order to keep the goggles from dropping off your face, and then they exert a heavy force on your face and nose. In addition the stressed strap tends to slide up over the back of the head, and again the goggles fall off your face. If you ask me, that's totally unusable and unacceptable, except if you enjoy wearing the goggles while angling your neck forward and pointing your face straight down at the ground. In that position, with the goggles hanging freely from their strap under your face, they don't hurt and don't fall off. But that's an uncomfortable position.

So I crafted this funny/ugly frame, counterweighted by the battery and two pieces of steel rebar coated in shrink wrap tubing. With this contraption it's actually possible to wear the goggles without torturing my face and nose, but, well, it's still not really comfortable to wear, nor very practical to carry around.

And I guess I had better not going to any beauty contest while wearing this thing. But since I won't win any beauty contest even while not wearing this thing, it doesn't matter! ;-)

Now let me tell you the sad story of these goggles, step by step, from the beginning:

I decided to buy this model because it was recommended on several websites as the best low-budget FPV goggles, and compatible with spectacle users. Its video recording feature is attractive, it has diversity reception, it comes with decent antennas, it has a built-in battery - all these features set it apart against much more expensive units.

When the goggles arrived, my first nasty surprise was that there was absolutely no way to wear them over my glasses! My glasses are 140mm wide, and 41mm tall. Not big, really, but way to big to fit in the 108×35mm opening of these goggles!

I checked the websites of spectacle frame manufacturers. Even frames for children are bigger than what fits through the opening of these goggles!

Then came the second nasty surprise: Looking into the goggles while pressing my glasses as much against the cushioning as I could, I couldn't focus on the image. I'm at that glorious (???) age when people need three separate spectacles for far vision, reading, and in between. None of them allowed me to focus on the screen of these goggles.

The rear part of these goggles easily detaches from the front. The rear contains nothing else than a single Fresnel lens, while the front contains all the electronics, the battery and the display. The front part can be used alone as a small monitor, and that worked well, I could see it fine while wearing my reading glasses. Of course, with my reading glasses I can't see a drone in the sky... And with multifocal glasses I can see neither. Such are the glories of old age. My recommendation to all kids out there: Stay young!

It quickly became clear that I needed to have special glasses made, to be mounted inside the goggles. These had to be child-size, and precisely positioned to give me enough field of view to cover the screen. But what prescription do I need? Fortunately I own a test lens set, so I could try out what short-distance addition I need, on top of my normal prescription, to be able to focus on the goggles' screen. The shocking result: 6.5 diopters!!!!  The optical system of these goggles (consisting of that single Fresnel lens) is so blatantly misdesigned that the virtual image is placed just 15cm away from the wearer's eyes! Children can usually focus that close without any trouble. Young adults often still can, with some effort. But people like me, already packing their suitcases to travel into Oldie Land, definitely cannot!

But that's not all. The single Fresnel lens results in requiring an unnatural convergence of the eyes. This is tiring too. I calculated how much prism correction my special glasses would need to correct for this, and it was so much that the optical company couldn't make it. The lenses would have ended up too thick. So I finally made my prescription for highly special oldie reading glasses with my normal distance prescription plus a 6.5 diopter addition, plus the highest possible prism correction, and having a strategically calculated, very narrow distance between optical centers (aka pupil distance), which would add the missing convergence. I had these very special glasses made in China, in a kid-size frame. The workers at the optical company in China must have wondered very hard what these strange glasses are for, but they did deliver exactly what I wanted!    

I removed the spectacle's legs and nose pads, installed what was left inside my Eachine goggles in the exact right position, using some hot glue, and voilá, now I could see the screen clearly and comfortably!

But anybody who doesn't have enough knowledge about optics will have a hard time trying to see sharply while using these goggles. Unless he is young and still has a very wide accommodation range.

Here you can see my normal spectacles placed in front of the goggles' opening, and you can compare sizes.

Note that even the child size spectacles wouldn't fit through the opening! I had to remove their legs and diagonally coax them through the opening. Once inside, they had enough clearance to move around a little, before I glued them in place.
  
If you think that very bad ergonomics and totally wrong optical design was bad enough, then please hold your breath, because the electronics in these goggles also have trouble! The worst of these is battery management. These goggles continue drawing a small but significant current when switched off. So the internal battery will discharge when they are stored for more than about a month or so without being charged. Lithium ion batteries normally come with a protection circuit, that will disconnect the battery if overly discharged or overcharged, to avoid battery damage. In the event that this disconnection fails to work, the battery protection circuit has a last resort: A fuse that can be blown on purpose. The battery protection circuit will blow the fuse, as a last ditch effort to avoid the risk of the battery bursting into fire. The battery becomes dead and unusable when it does that.

And that's exactly what happens in these goggles! The battery protection circuit is misdesigned. When the battery is discharged too deeply, the circuit opens the charging switch, not the discharging switch! So the slow discharging continues, until the circuit blows the fuse. At that point the battery is dead, to any normal user.

After I did all the initial tests with my goggles, and ordered the correction glasses, I had to wait for three months for the glasses to arrive from China. COVID-19 slowed down everything, there and specially here. And when the glasses arrived, the battery of my goggles was as dead as a doornail. It would not charge. At that point I took apart the front of the goggles, and discovered the mess.
 
I'm not alone in this. There are many reports on the web from people who saw the battery in their Eachine goggles die very soon, and some other people actually got the goggles with an already dead battery in them!

I removed the battery, hacked it open, removed the protection circuit with the blown fuse in it, carefully charged the battery in my programmable charger, tested it. It measured 1100mAh. The rating printed on it is 1400mAh. Good enough, I guess... I installed an XT60 connector on it for standardization, plus a balancing connector, and I'm using the battery outside the goggles, tied to the rear of my fancy conduit frame. But 1100mAh is just too little. The runtime is barely enough for three flights or so. While the goggles have an input for 12V, and come with a cable to connect this to a 3S battery, I think that a better solution is installing a 2S battery of about 4000mAh capacity, connected to the internal battery connection point. This would preserve the functionality of the battery level indicator, which is useless if a 3S battery is used on the 12V input.
 
Not that the battery level indicator isn't very good! It shows just three bars. All three bars on means a fully charged battery, but the first bar goes out as soon as you start using the battery. The last one goes out when the battery is still at roughly half charge. For the entire second half of its discharge cycle, there is no indication. So you can use these goggles for a considerable time after the battery indicator tells you the battery is empty, but you don't know how much charge is left. That's not good.

The receivers work quite well, and the antennas too. But I do get video dropouts when the drone is straight overhead. This must be a hole in the 3D directional pattern of the Foxeer antenna on the drone, because it's quite independent of the receiving antennas' orientation.

The video recorder function works well as long as the received signal is perfect. But as soon as there is any dropout, it stops recording, and won't resume on its own! This is very bad. My main use of the recording function is for safety. If the drone ever crashes in my jungle, it will be very hard to find. It would be extremely useful to record the FPV video, complete with GPS-derived location of the drone, until the last moment! But if the video recorder shuts itself down every time there is a brief dropout, the chances are high that in the event of such a crash I won't have the needed location data on the SD card!

This is aggravated by the fact that the 5.8GHz doesn't get through foliage very well. Even a relatively thin stand of trees will block the signal - and I have thick forest! That's not a fault of the goggles, of course, being a characteristic of those microwave frequencies, but it's one more reason to look for a different FPV system, one that works on a much lower frequency.
 
In the last two days before writing this, my goggles started developing additional problems: Sometimes they become unresponsive to the buttons. ALL buttons, even the power button. Reception continues, but I can't start the video recording, nor can I switch the goggles off. Reset by unplugging the battery is the only workaround.

And then, during a nice flight yesterday, suddenly the goggles turned itself off. I tried to turn them back on. No reaction. So off my face they went. On went my long-distance glasses. The drone was in sight, so I landed it visually, without needing to use the automatic return feature. After landing, and checking the goggles, they turned on and worked normally. Are they overheating, perhaps? They do get quite hot. The battery was still 70% charged, so it can hardly have been the cause of the turn-off.
 
To say that I'm dissatisfied with these goggles would be the understatement of the year. They were the most expensive part of my whole setup - and they turned out to be the worst!


Firmware updating, and configuration

The Ugly Bird has 12 microcontrollers onboard, unless I'm missing a few. The radio, goggles, and the battery charger have their own. All of them run some firmware, and most of it is upgradeable and configurable by the user. This is an enormous playground, and has kept me busy and entertained throughout the COVID-19 lockdowns!
  
The biggest, most important thing here is the Pixhawk flight controller, which runs Arducopter firmware, one branch of Ardupilot. The Pixhawk can also be used with other firmware, and Arducopter can run on many different controllers, but the combination of Arducopter on the Pixhawk seems to be the most common and best supported one.

My Pixhawk clone came with Arducopter pre-installed. The version that came in it was 3.6.8. By the time I got it, version 3.6.11 or so was the current one, and before long the hardcore users had all upgraded to the freshly released 4.0.0 version, and then the following bugfix releases. At the time I write this, 4.0.5 is current.

When I asked for help on the Arducopter forum about some issues and doubts, several people urged me to upgrade. I really had intended to try the pre-installed version first. Specially when I saw that some drones were crashing due to bugs introduced in the new versions. Being new to drones, I prefer using an older, well tested version, rather than acting as beta tester of new releases. Anyway I tried to follow the suggestions and upgrade, but I couldn't. The problem is that Ardupilot upgrading and configuration is done from a PC program called Mission Planner, this program works in Windows 7 or higher, but I still use Windows XP (yes, in 2020! Call me old fashioned. Compatibility requirements with old software and external hardware prevent me from upgrading). So I run MissionPlanner in a virtual machine that has Windows 7 Ultimate in it, and it runs, although slowly... Good enough to set up the parameters, but not good enough to update the firmware. I tried several times, and it always failed. So I'm stuck to Arducopter 3.6.8, at least for now, and I'm not unhappy about that, because this version is working well for me, and has all the features I need.

Mission Planner has many functions, ranging from firmware loading and configuration of the flight controller, all the way to what its name suggests, planning fully automated missions.

Here is one of the windows that I use a lot, and which is also one of its most basic ones. It gives access to all parameters of the flight software,  in alphabetical order, allowing the user to change them, send them to the Pixhawk, read out parameters, compare them to older or newer ones, and so on. Here it's showing just the first few of a very long list.

Many of these parameters can also be changed through higher level windows, but this very basic window gives direct access to all of them, which I often find to be the quickest way to make a configuration change.

This screenshot shows another very powerful and useful feature of Mission Planner: Its flight log browser. It accesses the drone's "black box", and allows to see and plot any parameters recorded there.

In this example I made it show the desired pitch angle, in green, along with the actual pitch angle, in red. One can immediately seen that the flight software's attitude control module was basically putting the drone in whatever pitch angle was requested, but with quite a lot of spikes and noise, and one large deviation near the end of this time frame. This means that the drone was shaking with a magnitude of roughly half a degree, probably caused by turbulence, and when one sees such behavior one can try improving the PID gain settings to try getting the drone to more precisely correct the angle, and then check the flight data from a new test flight and see if the actual angle now more closely follows the desired one.

Many parameters can be plotted like this, and the firmware is configurable to select which parameters are recorded.

And of course, should the drone go out of control and crash, analysis of the flight data is extremely useful to see what went wrong, and fix it!  

I could write a web page at least as long as this one about all the many configuration details of Arducopter. Each drone is special. Probably no two drones use the same configuration. Maybe some day I will write a page about it. But Arducopter is really well documented, so if you are interested, better go straight to the Arducopter documentation and read up there!


The ESCs can be configured through a program called BLHeli Suite. The version I have is 16.7.14.9.0.2, and it works fine on Windows XP. The ESCs are connected to the PC through an USB to serial adapter, one at a time. I used the software o check their setup, but it was fine for copter use. I didn't have to change anything. Nor did I need to upgrade the firmware.

ESCs can usually also be configured through the flight controller, which is more convenient, but I didn't see any reason to try getting that to work, because I don't foresee having to make frequent changes to the ESCs' setup.


My MinimOSD came preloaded with a very old version of the firmware, that has rather limited functionality. I connected it to the PC using the same adapter I used for the ESCs, using the MinimOSD-Extra Config Tool, which runs fine on Windows XP, and I loaded the newest character set and the newest firmware that comes with this program.

Then I configured the OSD to show exactly what I want, where I want it. This screenshot shows the main screen I set up. I also set up a far more complete "engineering" screen, and a blank screen (except for emergency warnings). In flight they can be selected by means of the right thumbwheel on my RC transmitter.

By the way, that landscape and those coordinates aren't mine! They come with the program...

I slimmed down this layout as much as possible, removing function designators and other stuff that I don't need, and which would clutter up the screen too much.

In both top corners I had to leave some empty space, because the goggles and the camera put some information of their own in those areas!

So finally I get the goggles' channel info and the flight mode in the top left corner, the camera's recording status, ground distance and direction, and altitude above takeoff in the right top corner, horizontal speed and climb rate below that, used battery capacity, battery current and battery voltage in the lower right corner, GPS GDOP, number of sats, latitude and longitude in the lower left corner, and flight time, heading and any warning messages in the middle of the sky.
   

The gimbal controller connects to the PC by USB, and the program interfacing with it is this. It must be exactly this version, no older and no newer one. The firmware loaded in the gimbal controller must match the PC program version.

The firmware of the gimbal controller must not be upgraded! These inexpensive controllers sold in China are approximate clones of the original one, with differences, and they use a specially modified firmware version. There are reports on the web about people trying to load a newer firmware version, finding that the board doesn't work with it, and then having serious trouble while trying to reinstall the correct version.
   
The gimbal needs manual PID tuning to work well. This screenshot shows the values I used after brief experimentation, which work pretty well, but I must warn my dear readers from blindly copying my PID values, which would certainly be wrong for their gimbals, given that the gimbal I built is a one-of-a-kind item, much smaller and lighter than most, and using motors few people seem to use.

At the time of writing this I have only done pretty basic setup of the gimbal. For example I don't yet feed the flight controller's attitude data to the gimbal, which could easily be done and might improve stabilization. It's pretty good without that, though, so I'm taking things one step at a time!

Enough documentation comes with the software to explain how to set up and tune the gimbal. There are also videos on Youtube about this matter.

By the way, BGC means "brushless gimbal controller". Old gimbals used brushed motors, but modern ones all use brushless ones.

 
The Runcam camera's firmware can be upgraded by putting the update file on an SD card, and the camera will do the rest. I already upgraded it to the latest version, but there are still some features missing. Specially I miss the very basic feature of manual white balancing. The camera comes without that, white balancing is always automatic, and results in severe colors shifts according to what the camera is looking at. Basic color response is also somewhat poor, for example bright red flowers are rendered in an indistinct muddy brownish/reddish tone.

I havn't had any need to upgrade the GPS receiver's firmware. I understand that this can be done too! The RC system can also be upgraded, both the receiver and the transmitter, but this hasn't been necessary.


So, how does it work?

The Ugly Bird flies pretty well! Until writing this I have done about 6 flight hours, with no crashes, no fly-aways, no scares, no strange things happening. It can climb like a rocket, sink like a rock, race like an albatross, battle the wind like a petrel, and it remains stable through all this. So I'm quite happy with the performance of the basic platform's technical equipment, that is, flight controller, remote control, ESCs, motors, GPS, battery. The frame is too heavy and too wobbly, so I hope to eventually rebuild the drone on a better frame. In fact I intend to shave away as much weight as I can, not just by building an optimized, very lightweight frame, but also by eliminating all those individual plastic boxes, eliminating any unnecessary stuff like the pushbutton, and maybe even going to extremes such as using very thin enameled wire, eliminating connectors, replacing cable ties by yarn wrappings...  In its current incarnation the Ugly Birds weighs 1345g, complete ready to fly, which is considered still in the normal range for a quadcopter of this size and power, but rather on the high side. It consumes approximately 16A while flying, which results in a theoretical absolute maximum flight time of slightly less than 19 minutes, but to stay safe and don't torture the battery too much I normally keep my flight time to 10 minutes, occasionally 12 minutes, at most about 14 minutes. It should be possible to lean down the Ugly Bird by at least 300g, applying the measures mentioned above. Since a lower load increases the efficiency of the propellers, and a lower discharge current allows getting closer to the battery's discharge limit without damaging it, the gain in flight time should be significantly greater than just a proportional amount. I would expect a maximum theoretical flight time of at least 28 minutes after that weight reduction, with a maximum safe and good flight time in the range of 15 to 20 minutes.

Also I intend to test more propeller types, in the hope of finding one that is more efficient, and perhaps even better balanced than the ones I have. I don't really dare to hope for propellers that are actually straight... Larger propellers should always be more efficient, but require enlarging the frame, increasing the weight, and they require motors capable of higher torque, which are heavier too. It's likely that I should keep to 10" propellers and optimize the system within that limitation.

A long endurance quadcopter is basically a big battery with the lightest possible frame, motors, and electronics strapped to it, using the largest possible propellers. But large propellers are less good for flying fast, which includes compensating for strong wind. So there are always compromises to be made. At the current state of battery technology it's probably best to not aim at much more than 20 minutes flight time. A flying object that needs to stay up longer shouldn't be a quadcopter but a fixed-wing aircraft, and with an internal combustion engine it can fly much longer than with battery power.

Anyway my goals are some aerial filming and photography, raising antenna lines into trees, learning and having fun, and these goals are fully satisfied with the flight time I'm getting. Any further improvement would be just for the fun of doing it.
 
The grabber works fine, and I don't see any reason to further improve it. I used it to install all the antennas I need for now, and it's just waiting for more use. But I might install it in an easily removable way, to save its weight when I don't need it, which is most of the time.

The whole video system instead is another matter. I'm not happy with it. Maybe I'm just expecting too much. This image shows the FPV video with OSD recorded by the Eachine goggles. I blacked out the latitude and longitude for privacy. Also note that this frame comes from video shot during a tuning flight, which makes it special!

What the goggles show on screen looks exactly the same, except that the black border isn't visible, and that there is some additional OSD in the top left corner generated by the goggles, and a red dot appearing in the upper right corner when the camera is recording video aboard the drone.

I set the FPV video to PAL, because it's supposed to have a higher resolution than NTSC, 576 lines. But to my eyes, the actual resolution of this image is far lower than that, probably half the claimed rate! Note that the OSD information is pretty sharp, but the video isn't. So this is a limitation of the Runcam FPV video output, not of the video transmitter nor the goggles.

In this image, lit by a low sun not long before sunset, the colors look quite nice, but still fall far short of reality. Specially the red is very poor! Those small trees in the mid low area are densely covered with intensely, fiery red flowers, which stand out so much that they really scream at the anyone watching them. But the Runcam sees them in a very dull tone, making them look more like withered foliage than like bright red flowers. Clearly the color gamut of this camera is very limited.
   
The video quality is good enough to see where I'm flying, to stay oriented and to fly back home, and if I fly low enough I can even tell a dog from a cow, but that's it. FPV isn't enjoyable to me at this low video quality! Flying close to obstacles by FPV isn't safe, because it would be easy to collide with a thin branch before having any chance of seeing it. And wearing the goggles for too long produces great eye fatigue, because the eyes are constantly trying to focus on this image, which looks very large in the goggles, but is totally blurry.

I would accept a significantly longer latency if in exchange I would get much better image quality. Digital FPV systems do that, but there are few, and they are more expensive than my entire drone project!

The 1080p video recorded onboard the drone by the Runcam is of course much better. Downsized to the resolution of the thumbnail at right, it actually looks sharp! But it isn't, at 1080p. Click the image to get the full-size image, and watch it at full size (1920×1080 pixels). You will see that it falls far short of actually resolving the individual pixels.
 
This camera has a 2 megapixel sensor. A 1920×1080 image has a tad more than 2 megapixels. That would be about right, maybe the sensor actually has the 2,073,600 pixels needed. But the catch is that sensor pixels are single-color pixels, while a true 1920×1080 image has 2,073,600 three color pixels! So there is always a lot of interpolation going on in this camera. Also digital cameras usually use optical lowpass filters (blurrers, very simply said), to avoid Moiré effect when looking at regular patterns such as fabrics, and these filters further reduce the resolution. So for a digital camera to be able to produce true full-HD images, fully resolving the 2,073,600 pixels, it would need a sensor having roughly 8 to 12 megapixels, along with a lens that can resolve them. A 2MP sensor can never produce a high quality full-HD image.

Keep in mind that I'm using a Yumiki distortion-free lens on my Runcam. That's why the horizon looks straight! When using the original Runcam lens the resolution might be a tad better, barely noticeable, but there is severe fisheye distortion, which makes the original lens unacceptable to me. The Yumiki lens instead causes some vignetting in the corners. It's not very obvious in this particular brightly-lit image, but when the general light level is lower the corners tend to black out first. The original lens instead has no visible vignetting.

Related to this, the Runcam really loves to have a lot of light. In full sunshine it produces the quality shown above. When it's darker, the resolution gets much worse! Look at the picture at left, click on it for full resolution, and compare. It's from the same flight, but tilting the camera down to look at a shaded area. Either the camera's software is softening the image to reduce sensor noise, or it's binning pixels for the same purpose!

Note that the fiery red flower-covered trees look as subdued and dull in the HD images as they look in the analog video link, showing that this is a problem of the sensor or processing, rather than of conversion to low resolution analog video.

I would love to show you some actual video of a flight. But these videos are enormous! A 10 minute flight will produce a 3GB file, and that's at a lower frame rate than the 60 fps the camera can nominally produce!  I have tried various video compressors, but the results I get are poor. The compressors tend to reduce the image quality much more than the file size! I don't understand what's going on, but these drone videos have a very much worse ratio between image quality and file size than all other videos I have ever seen!

Speaking about frame rate: This Runcam is rated to generate 60 fps video. And yes, indeed it does record 60 frames per second, when set so. But these aren't 60 new frames per second! Even with fast-moving video, it repeats frames, so that the actual frame rate, counting only newly generated ones, is lower. This is probably due to internal video compression, done in part by dropping frames. Even during fast pans often many frames are dropped. Still the video looks smooth enough, so this is no problem, but this frame dropping raises questions whether it makes any sense to look for cameras that are claimed to work at high frame rates.

Also the frame rate selected should relate properly to the analog video format selected for FPV. Since PAL runs at 25 fps, I selected 50 fps for my HD video, rather than 60. It seems to work better.
   
The Runcam uses automatic white balancing, constantly changing the colors according to what the camera is looking at. The automatic white balancing cannot be turned off! When taking individual photos the colors can be corrected later, but for video this is a very serious shortcoming, because the colors constantly change!  And it would be so easy to let the user turn off automatic white balancing, and let him select sunny daylight, cloudy, and a few other such presets. I actually wrote to Runcam about this issue, but apparently they didn't even understand what I mean, asking me to provide videos to show the "fault" of the camera. It was clear that they were thinking that I was complaining about a manufacturing defect, and they didn't understand that I was simply suggesting to allow the selection of manual white balance in the menu... Since I cannot send a huge video through my remote wireless internet connection, and got the feeling that the people at Runcam weren't understanding me at all, I let the issue rest.
     
One time the camera turned itself off in mid flight. I don't know if this was due to a bug in its software, a power supply spike, or what. All power connections to the camera are soldered, except for the XT60 battery connector which is very safe, so there is no chance for lose connections. And it can hardly have been due to overheating, because in the Ugly Bird the camera is exposed to a lot of turbulent propeller wind!

In any case it's noteworthy what this tiny, lightweight, under-70-dollar camera can do, but on the other hand the camera built into my cheap clamshell dumbphone from 15 years ago produced images that were no worse. Coming from the world of high quality photography, using real cameras with very much larger sensors and high quality lenses, I feel rather limited with the Ugly Bird's video setup. It's definitely not good enough to shoot real full-HD video for publication, nor to shoot any fine art photos. I will probably be looking for a much better camera and digital FPV when I hopefully some day re-incarnate the Ugly Bird as a Phoenix, in a new carbon fiber body.



Back to the homo ludens aeromodellisticus page.