I have wanted to get into multicopter building and flying for a few years now but this year I finally took the dive and got into it pretty quickly.
I did a lot of reading and shopping for which flight controller to purchase and while I would like to experiment with the open source software and hardware variants out there I really wanted to start with a very stable and well reviewed flight controller(FC) system first to get familiar with the hardware end of things. I decided to go with the DJI Wookong M (WK-M) flight controller and I think I made a good choice.
When I bought the WK-M it was on a special deal which included the DJI F450 quadcopter frame. I built my first quad on the F450 with a shed load of Turnigy/Hobbyking motors and electronic speed controllers(ESCs) for the power system. The photo below is of the DJI F450 FireWheel frame with the GoPro Hero 2 camera mounted to it.
The FireWheel quad used 4 Turnigy 2215J brushless motors (250 watts, 3s) with 4 Turnigy Super Brain ESCs and 2 2200mAh 3s battery packs. The Super Brain controllers have built in flight data recording for power used, voltages, current, etc throughout the flight and they were pretty slow as far as throttle response according to some data on another site. One website quoted them at 200ms response time between when you made a throttle change to when the ESC actually ramped the output to that throttle setting. I had to set the gains on the DJI WK-M very low to get stable flight, but it flew okay indoors with no wind. I later switched to Turnigy Plush 30A controllers with no flight data logging which have a 120ms response time and overall the F450 flew much better. Below is a video of the F450 FireWheel frame with the Super Brain controllers at the Ulster County Community Center indoor flying event which happens once a month.
I also had an unfortunate crash with my quadcopter where the Super Brain ESC cut out and caused the multicopter to flip and crash into the ground. Fortunately the F450 FireWheel frame is SUPER tough and was not damaged. I ended up replacing the bad ESC and 1 brushless motor and things were back to being good.
My real goal was to build an FPV multicopter aerial video platform so I can see what I’m recording from the multicopter’s view while recording on my Sony HD or GoPro Hero2 camera. Some would call this a drone, but I don’t intend of flying out of my own line of site with this aircraft like you can with a drone. I needed more weight lifting capacity and I also needed to keep the multicopter booms out of view of the camera so I moved designed a new multicopter frame from scratch.
I decided to go with a Y6 design which is a hexacopter, it just has 2 motors per boom as opposed to having 6 motors on six booms. The advantage to this is that there is less weight from the booms themselves, and less arms to get in the way of shooting video and it looks cleaner. The disadvantage to this is loss off efficiency from 15-20% due to the coaxial arrangement of the propellers. I spent some time looking at various hexacopter Y-6 designs I liked, and there’s a lot of variety out there. I saw a lot of cool features I liked and wanted to implement somehow, and some things I liked, but that I didn’t want to copy because they were too unique. I am still working on ways to incorporate the functionality of those features into my multicopter design without copying other people’s designs.
I’ve just upgraded my DIY CNC Router from an air cooled DeWalt DW618 router to one of those popular 2.2kW water cooled Chinese spindles which means I cannow cut fiberglass and not coat the house in tiny little glass fibers of infnite itchiness. The new spindle is show in the photo below.
The Chinese spindle is great so far and I had no problem machining the G-10 / FR4 fiberglass composite. I went with 1.5mm thick material because with the amount of frame plate stacking that I was going to do I felt it would be strong enough. I also made the landing gear out of the 1.5mm black FR4 composite, though 2mm probably would have been better for those since they flex a little bit, but I’ve not had any breakage problems and maybe the flexing absorbs some vibrations while on the ground.
I used Solid Edge 2D, the free edition, to design the parts I needed for the Y-6 multicopter and it worked out very well. All of these drafting and CAD programs have their own little ‘weird’ things you have to be aware of, the biggest problem I had was getting lines to join accurately in the software, but after a bit of work I got used to that and basically just ended up manually connecting line ends.
Once I had the parts drawn up I ran them through CamBam to generate the machining paths and output the g-code for my CNC machine. This is a pretty straight forward process but again you need to spend a little time learning the software and machining terminology. Once you have some experience you can bang out G-code like a nut.
Machining the parts was fun. In order to cut the frame parts I ran the machine at around 400-500mm/min (pretty slow, but the cut depth was almost as wide as the end mill width, and I’ve already broken on 1/16th inch endmill)
The edges turned out very smooth and everything lined up well. It took about 30 minutes to machine these parts with the 4-500mm/min feed-rate and I was really happy with the results.
Once the parts were cut and cleaned off of the holding tape I assembled them into the stacks.
I used 3/4-inch square thin-walled extruded aluminum tubing for the booms, so I knew in advance to order 19mm standoffs to space the plates. I used M3 screws to secure everything together. The middle screw in the battery plate is a counter-sunk screw so it won’t rub against the battery and the middle screw on the upper plate is also counter sunk so I can mount the IMU (inertial measurement unit) to the top of the Y-6 multicopter. Also the standoffs for the legs are 19mm so they’ll fit the 3/4-inch square aluminum booms.
The booms needed to be drilled and mounted which is a bit of fiddly work. It’s important to get the mounting holes in the boom accurate, if they are off center you won’t get them to mount symmetrically into the frame which means slotting and enlarging the holes a bit so you can position them properly.. In the picture below the legs are just taped on, but they’re drilled and mounted now!
After that I drilled holes in the boom to mount the motors top and bottom. I wanted to drill and tap holes on the top and bottom of the boom but the material was just too thin. I was only able to get 2-3 threads worth of threading in and was afraid the motor screws would strip out. I decided to bolt completely through the upper and lower motors with a long bolt and I think this is much more secure as I was able to crank down the bolts nice and tight.
Attaching the Electronics
I attached the electronic components and modules next. Each boom has 2 Turnigy Air 2215j motors and two Turnigy Plush 30A ESCs to control the motor’s speed. There were a LOT of wires that I needed to extend up and down the 3 booms. I added 6″ extensions to the brushless outputs of the ESCs, a total of 18 wires to cut, strip, tin, solder and shrink wrap. All of the power leads for the ESCs also had to be extended 6 inches into the center of the main frame. If you love soldering, you’ll love multicopters! The power leads from all of the ESCs are soldered onto the front and back of a double sided circuit board which has a REAL Deans connector soldered to the top and bottom sides those cheap imitations are an invite to failure and crashes. A power distribution board like this is a very easy way to get power to a lot of things at once.
Updated Photo’s 4/10/2012:
I’ve added some photo’s of my power distribution board. I had to redo the connections when I changed to the larger brushless motors and the positions of the ESCs so it was a good opportunity to do that. The picture below shows the new motor installation and the position of the ESCs on the boom. The ESCs are now in the prop wash since these motors come much closer to the max current rating of the 30 Amp Turnigy Plush ESCs.
Next, all the wires that need to be connected for power distribution to the ESCs. The FC (flight controller) is connected inline with the batteries with it’s own BEC / Voltage regulator so it doesn’t need to be connected to this board.
I soldered the Deans connector onto the small piece of double sided circuit board and then soldered on all of the positive wires.
And then flipped it over and attached the negative leads as well. Each group of leads has it’s own heat shrink which slides up as close to the printed circuit board material as possible. This is to help reduce any chance that friction from vibration or rubbing could cause a positive lead to rub through a negative lead which could lead to a catastrophic short of 2 large Li-Poly batteries and lead to a spectacular lithium polymer explosion or fireball mid flight.
Once I had the leads attached and shrunk the red and black heat-shrink I put a couple of layers of clear heat shrink over the whole board and in the end it looks like this. It looks huge in the pictures but it’s actually pretty small and not very heavy at all.
End of Updated Photos 4/10/2012
Once I had power to the ESCs I went through each one with the programming card and set the battery type to Ni-XX rather than LiPo. The Ni-XX setting changes the voltage cutoff level to a lower point than you could achieve if you set it for Li-Poly. I also calibrated the throttle range for the speed controllers to my radio, one at a time. A 6 way splitter would allow you to program all 6 at once for the throttle range. Once that was done I removed the red power lead from each ESC connector to disable the BEC(Battery Elimination Circuitry). The DJI WK-M comes with it’s own BEC and if you leave the ones from the ESCs connected it can cause the ESCs to get hot and fight each other. Here’s a picture of how I disabled the ESC’s built in BEC. After doing this you do need to power the ESC through the main leads, and the BEC through the aux power input to change the programming, so program first to make life easier!
After installing the flight controller (FC) everything was finally assembled as seen in the picture below. There’s quite a few parts involved in a setup like this, which is why I recommend going with something already built to learn the ins and outs of multicopters before you spin your own design but it’s certainly not a requirement.
The overall build went pretty well though this is a bit heavy (Note: Apparently it’s not so bad for the size, most of the weight is in the power system). I thought the arms were heavy, being aluminum so I am going to make another set and use the CNC router to remove a lot of material from them to lighten them up. I will probably also switch to higher power motors in the 300-350 watt range. I put together a video of the work that went into making this so here it is. Detailed specifications are below the video.
And here’s a video of the first real test flight of my custom Y-6 multicopter design.
Motors: Turnigy Air 2215j (Rated 900kV (revs per volt) and 200 watts)
Propellers: Gemfan 10×4.5 inch 3 CC, 3 CCW
ESC: Turnigy Plush 30A
Battery: Turnigy Nanontech 4500mAh 25-50C 3S
Thrust per Motor: 820g / 1.8lb
Total (theoretical) thrust: 4920 grams / 10.8lb
Weight Per Motor: 69 grams / 0.15lb
Weight All Motors: 414grams / .912lb
Turnigy Plush ESC Multicopter Config:
Brake – Off
Batt – Ni-xx
Cut Off Type – Soft-Cut
Cut Off Voltage – Low
Start Mode – Normal
Timing Mode – Low
Governor Mode – Off
Frame and Electronics
Flight Controller (FC): DJI WK-M
Frame/Landing Gear: Custom FR4/G10 1.5mm / Garolite (McMaster-Carr)
Booms: 3/4″ Aluminum Extruded Square Tube
Flight Time: 7 Minutes hover time with 1 pack, planning to upgrade to 2 packs
Frame Weight + Electronics: 1990 grams / 3.39lb
Battery Weight: 361 grams / 0.8lb
All Up Weight (AUW): 2351 grams / 5.18lb
I looked into lightening the booms. Each bare boom by itself weighs 130g / 0.29lb without the landing gear. I made a new boom and drilled it full of holes to lighten it and it only reduced the weight by 30 grams. I can reduce the weight by about 90g / 0.20lb doing this. While it is a worthwhile improvement it’s not a huge improvement. I will eventually do this but I want to focus on adding more power first. Which is the next section. The booms are not a major weight component of this Y-6 most of the weight is in the power system.
Running Turnigy Air 2215J Motors on 4s
The Turnigy Air 2215J motors are rated 200 watts at 3s and to produce about 820g / 1.8lb of thrust each. I built a test stand shown below, using the lightened boom I made, and tested the Turnigy 2215J motor with a 10×4.5″ Gemfan propeller. On a fully charged 3s LiPoly pack (12.6)I was able to produce 960g / 2.12lb of peak thrust (the 820 number quoted is probably more accurate once you get out of the peak voltage range of the pack). On a fully charged 4s LiPoly pack (16.8v) I was able to get about 1300g / 2.8lb of peak thrust . While that would be a great boost in performance the motor can got scorching hot. I did not try any smaller propellers as I’m not really interested in running smaller props, but I will run a couple of tests tomorrow just out of curiosity to see if the 2215J can run a smaller prop on 4s without melting down. I did not take any current or power readings, my eagle tree data logger is currently installed in an FPV plane.
The test stand is a simple setup. It’s 9″ from motor center on the right to the middle pivot and 9 inches to the pin on the left pin which pushes against the top of the scale. The weight of the battery causes the lever to rest on the scale and the scale is reset to 0. Power is applied to the motor and the weight on the scale is read as the thrust reading.
I was having a hard time with orientation of the Y-6 so on one of the flights the other day I wrapped some yellow rope around one of the landing gear. This helped a lot but I’ve since added a strip of super bright LEDs to the left and right side of the rear boom. This should help for now. I’ve ordered some more advanced lighting strips that I have plans for that should make this a pretty cool looking craft in the evenings!
Update 4/4/2012 – New Motors, New Booms and Some Fun with LED Strips
I’ve received the new motors for the Y-6. The original motors, the Turnigy Air 2215J 900kV (rpm per volt) were rated 200W maximum but they realistically pulled about 160 watts with the 10×4.5 propellers and I was in a marginal zone with the available power. I upgraded the motors to the RC Timer BC3635-11 750kV motors which are rated at 350 watts, and with a 12×4.5 prop I should be getting close to that.
I also switched to new booms. The booms I was using are 0.75″ / 19mm square but a wall thickness of about 0.05″ and weighed about 130g. I believe there was a little flex so I switch to a new material, it’s still 0.75″ / 19mm square aluminum tubing but the walls are much thicker at 0.1″ measured. The new booms weighed quite a bit more coming in at 230 grams so I programmed a few CNC sequences to lighten them, they now weigh 130g, but the edge walls are much thicker and I think they will have good rigidity mixed with lightness.
Here’s a photo of the new booms. The wall thickness of this new aluminum piece is enough that I can tap and thread the M3 screws straight into the boom. I’m also supports the motors on the opposing sides with 19mm hex standoffs. In the photo some are missing, I’m just waiting for my order from McMaster-Carr for the rest of them.
On top of the motor and boom upgrades I’ve also been wanting to do some cool lighting. If you’ve seen my other posts, I’ve been wanting to do something cool with addressable LED strips. I covered some of them in my old post on lighting up an R/C helicopter for night flying I ordered 5 meters of RGB strip from China, one set of strips have a ground and 3 inputs, one for red, one for green and one for blue. They work great for general lighting, but not awesome. I ordered a second strip which incorporates RGB LEDs and the LPD6803 controller chips. These were cooler, but you could only control only 3 LEDs at a time. Where I only have space for 10 LEDs on each boom at this spacing, it wasn’t good enough.
Finally after getting tired of waiting 2 weeks for China shipments I ordered a 1 meter strip of LPD8806 LED strip from Adafruit. THIS is what I was looking for. The LEDs are individually controllable with code and there’s a bit of sample code available out there to work with. I’m not a strong coder so it’s going to take a bit of work to get these things going, hopefully the Adafruit community can help, but if not I’ll just have to force myself to spend 2 weeks of time figuring out their code, which I haven’t assigned for this project, to figure out how to do what I want.
Here’s a video of the LPD8806 strip running the advancedLEDbeltkit sample code. I must admit that while messing with these I had a strong desire to set them up for my Atmolight setup on my monitors, but I need to stick with one project at a time to get them complete!
Here’s a video of the LPD8806 strip running on the advancedLEDbeltkit sample code with an Arduino Duemilanove as the micro-controller.
More updates to come as I get more stuff complete.
Update 4/8/2012 – Initial Test Flights w/New Motors
I just did the first test flights with the new motors and the LED strips. I’m a bit disappointed with the flight time (about 8.5 minutes until the 2 * 4s 4Ah packs reach 3.5v/cell). Never-the-less the thing did look awesome, and it flew very well. I’m going to post more detailed photos tomorrow but for now here’s a video of the Y-6 with the RCTimer BC3636-11 motors on 12×4.5 * 6 propellers! The lights are LPD8806 LED light strips I bought from Adafruit Industries and the controller is an Arduino Duemilanove running some stock code for the LPD8806 LED strip. I was going to originally use the Arduino Mega 2560 but that’d be quite a waste for this simple project, you could build a whole flight controller with that thing!
Update 4/10/20112 – Accelerometer + Arduino Based LED Strip Lights
I’ve installed an Analog Devices ADXL335 in Adafruit form onto the Arduino to measure acceleration and deceleration in all 3-axis. Right now though I’m only worried about the Z to measure increase and decrease in altitude and how fast.
The measurements are most accurate when the Y-6 is just going straight up and down, and will be less accurate if it’s tilted to the side. I’m still trying to find out if it’s possible to neutralize the pitch and roll out of the Z-axis using the data from the pitch and roll axis’ of the accelerometer, which are the X and Y axis’.
The sensor is rated +/-3g on each axis but actual reads out to 3.6g. It outputs a voltage from min to max(0-3.3v), with a 0g reading being right in the middle. With the Arduino’s analog to digital converters this results in a value from 0-1023 with each step being 0.007g. That exact detail doesn’t matter too much for my use, but good to know.
I used the built-in voltage regulator on the accelerometer board I bought from Adafruit Industries as the external reference for the Arduino A2D converters. It’s important if you do this that you set the analogReference to EXTERNAL in your code before your do an analogRead(pin) from the arduino or you could short the power supplies. In your setup code just use analogReference(EXTERNAL); and the in the future when you do an analogRead(pin); it will work fine.
I figured I should have some averaging/filtering of the Z-axis input from the accelerometer. While the accelerometer board for Adafruit has some filtering built in it didn’t seem to be enough.
I found some really complex examples but they were a bit much for what I needed and kind of mashed in with other code. I just wanted simple smoothing to keep vibrations from the rig from causing screwy LED effects.
Looking around for ideas I found a line posted by AWOL on the Arduino forums that provides a rolling average over 64 samples. It smooth the accelerometer samples out quite a bit.
The source code is still the advancedLEDbeltkit demo code, I’ve just heavily modified it and removed the effects and fade modes that I wasn’t using it and inserted the A2D code and some other minor tweaks. My biggest issue is that the changed between scan speeds are not smooth but I hope to find a way to resolve that out soon and be making some more nifty light art using the timed shutter on my camera.