Introduction: Ultra Budget Mini Quad
Runner Up in the
Drones Contest 2016
In spring of 2014 when mini quads first started getting popular I decided to see if I could build a 250 class line of sight acro quad on a very tight budget that would still perform as well as some of the high end quads that were out of my price range. I actually had a friend who was designing a 230mm (Quads are measured in mm diagonally from motor to motor.) carbon fiber frame that he was going to send me to test - but the real expense on most quads isn't the frame it's the components.
Another friend had a 230mm warpquad with the then popular 2203 2300kv sunnysky motors which he let me fly for two months when he was out of town - I loved the form factor and the power with 6045 props (that would be 4.5" pitch and 6" tip to tip distance) was phenomenal. But my budget wouldn't cover the cost of his frame let alone those 2204 motors. So I tried to get as close a I could be using light weight low cost materials for my frame.
I ended up using 1806 motors to save money and weight, and building my own flight controller with a few cheap breakout boards off ebay and an arduino pro mini running multiwii. It flew great! On the downside it did tend to break easily in crashes - but I could make about 6 arms out of a $2 dowel so it was cheap to repair if not time consuming.
Then my friend sent me a G10 prototype of his frame, and eventually a full carbon fiber version. The wooden budget quad gave up it's components to populate that frame and is still collecting dust on a shelf. But a few months ago I got an itch to see how dihedral on a quad feels and decided to revive the UBMQ project as a test bed. I also had collected some better hardware so the budget got a little bigger this time around.
If you aren't interested in the process behind this quad and just want to build one for yourself - then you can either grab my latest files from github, or prepared files from thingiverse and skip ahead to Step 8 where I give details on the construction.
I've entered this into the Instructables Drone Contest 2016and would love your support if you find this interesting or helpful. Winning one of those goPro's would sure help me document my various projects and create more instructables in the future!
Step 1: The First UBMQ
The first quad I built in 2013 I called the Ultra Budget Quad. I was trying to build the most capable quadcopter I could on a budget of just $100. I use an arduino mega I had on hand, tore apart a wii motion plus and nunchuck to get an gyro and accelerometer, bought 4 of the cheapest motors and ESC's I could and managed to get a 350 class quad up and flying - and even doing flips and rolls. It was based on another 1/2" wood dowel design by Chad Kapper from FliteTest and I documented that build on their forums and in an article.
I learned a LOT from building and modifying that quad and have enough broken arms for a small campfire to prove it! So when I had parts for a mini quad build starting to collect but a wait on a frame I went back to the same idea of building one for cheap from parts I could find at the local hardware store.
Again I documented the build on the flite test forums and it was a quite successful build. I ended up splurging and got an afromini 32bit flight controller to replace my homebrewed 8bit arduino setup. But that was pretty much the lowest cost flight controller available at the time so wasn't a big dent in the budget. And despite building my own RX I splurged again and got a spektrum sat RX - total cost as $25 for the flight controller and rx together - not bad.
The 1806 motors however turned out to be quite a disappointment. They made a funny squeaking/squealing sound right out of the box and one of them had metallic debris on the magnets locking it up. They did perform decently as the videos I've attached will show - but I was never very happy with them because the sounds they made got on my nerves.
This design only flew for about a month until my friend finished designing his G10/CF frame and I moved all the parts to there. I won't rehash it in detail here but if you're interested there's a LOT of detail in the build thread I linked above.
Step 2: Inspiration Strikes Again
Fast forward almost two years. I've build and flown quite a few multirotors, a mini hexcopter, a large tricopter, several quadcopters both LOS (line of sight - i.e. you look at it) and FPV (First Person View - i.e. with live video you fly through instead.) and I start to get bored. I want something different again. A few months back I had seen some people experimenting with dihedral on mini quads. Dihedral is usually used on wings for planes where the wingtips are raised up a few degrees from the root - this gives the wing a bit of a self-leveling effect and is vital on 3 channel "Rudder/Elevator/Throttle" planes that don't have ailerons. Gliders often go even further with polyhedral putting multiple angles in the wings. On a quad the idea was to tilt the motors inward toward the center of gravity.
Quite a few people were experimenting with forward tilted motors to attempt to get more speed due to the flight dynamics of a quadcopter and the way it has to lean forward to fly forward. But most found they preferred to tilt their flight camera instead of tilting their motors. The few people I'd seen experiment with inward tilted motors raved about it, but few others tried it. I was curious but not curious enough to actually build yet.
What finally pushed me over the edge was dRonin. I had become a big fan of TauLabs which is a firmware for 32bit flight controllers, but development on TauLabs had stalled and newer developers trying to get involved were getting frustrated. In November of 2015 they forked the project and created dRonin to allow themselves to move at a faster pace. One of my favorite features of TauLabs and dRonin is the autotune they've implemented. The autotune causes the multirotor to bounce around for a minute which allows it to take measurements that make it possible to build an approximate model of the system and calculate optimized gains for the PID controller. It also provides a handy way of measuring performace since one of the key values it calculates is Tau which is basically the time between when the flight controller commands a change and when the gyro detects the results of that change. The smaller the tau the more responsive the multirotor.
I spoke with some of the dRonin developers and they felt confident that autotune would still work with tilted motors - and if not then a few small adjustments to the mixer should solve any issues. I decided to give it a go!
Step 3: 3D Printing and Rapid Prototyping to the Rescue
I had wanted a 3D printer for close to a decade but the print quality just didn't justify the price to me for a long time. Then in late 2015 I learned about the Folger Tech 2020 i3 and derivative of the Prusa i3 available in kit form for <$300. I talked to a few people who had them and was sold, I got my kit in early January and in just over 24 hours had it assembled and miraculously my first test print came out nearly perfect! Over the next few months I learned a lot as I burned through filament and experimented with various materials as well as learned how to get the most accurate results from my machine.
I also fell in love with openSCAD.
So I sat down one evening and started designing
OpenSCAD for those who aren't familiar with it is basically CAD for programmers. It reminds me a lot of POV ray which I used to play with back in the late 80's early 90's as it's a similar CSG (Constructive Solid Geometry) system except things I designed in POVray resulted in photorealistic images while things I design in openSCAD I can actually turn into physical reality. Too cool!
I had an idea for the center of the quad that seemed quick and simple. But wasn't so sure about how to attach the motors. On the first version of the UBMQ I had laminated 1/8" ply with hotel room keys and used that as a strap under the wood boom to attach the motors with two long screws. This was less than ideal since it only used half the motor mounting points and tended to slide on the arms in crashes. That did protect the motors from the full brunt of crashes - but meant the quads performance would change through a flying session as the motors to moved around.
so Instead I found a 3D printed motor mount on thingiverse and gave it a try. It left a lot to be desired. I modified it a bit but eventually decided to just do my own from scratch. This gave me an opportunity to play with hulls in openSCAD and try making the design parametric so it could be easily resized and modified to work with different motors. I eventually got a design I was happy with and posted it on thingiverse: http://www.thingiverse.com/thing:1490002
These motor mounts have proven quite durable. I've printed them in both PLA and PETG and despite some good hard crashes into pavement I've yet to break one. They are a bit bulky and heavy - but I had some 2204 motors I was putting on this build so I wasn't as worried about trying to shave every gram like I was on the first UMBQ.
My initial mockup of the center frame came out well - but was printed in PLA which I didn't expect to hold up. Sure enough it only lasted one flight.
Step 4: The Frame Comes Together - First Flights
Shortly before I took it apart the original UBMQ had a failed upgrade to an acrylic frame. The original plywood was functional and light - but ugly and made it hard to work on anything inside. I figured acrylic or lexan might be a nice upgrade. Turns out both were heavier than the ply and acrylic was too brittle, lexan would probably have been ok but was more expensive and heavier still. The big problem was both acrylic and lexan flexed more than the ply and the arms wouldn't stay in the same plane resulting in some erratic flight performance. Every hard landing the frame would shift and change.
But for the new UBMQ I planned on using a 3D printed center section which I hoped would give most of the strength. I knew it would be weak in the center where I had to leave room for the electronics. But I hoped that plates across the top and bottom would give it the final strength it needed. I also hoped the center section would let me get away with using acrylic again.
For the very first flight I did an autotune with dRonin. I had a sparky2 flight controller a friend had given me which is very similar to the popular OpenPilot Revo board (Now commonly known as the CC3D Revo due to the demise of OpenPilot but continued popularity of their original CC3D board.) One of the nice features of the Sparky2 is that it has a built in 443mhz radio that can be used for telemetry or control. Since I also have an OpenLRS module for my transmitter I'm able to use that built in radio for control - on this built that was a lifesaver as space is very much at a premium between the two plates. With a power distribution board and the flight controller fitting in a separate RX would be tricky.
The first flight was mostly successful, but as I feared the combination of PLA and Acrylic proved to be too brittle. On the first mild crash the center section and plates shattered. Oh well, time to iterate and improve!
Step 5: We Can Rebuild It - Stronger at Least, If Not Any Faster
The initial parts were never expected to be more than mockups. My plan from the start was to use PETG for the printed parts hoping that it's extra flexibility would help it survive crashes. I also planned on using Lexan instead of acrylic for the plates - but I was planning on using a MPCNC I was building to cut those and the MPCNC wasn't yet far enough along to use. So back to the original design and plywood!
I fired up my bandsaw and cut out a few plywood plates. Then gave them a quick coat of hot pink spray paint. I like the hot pink because it makes the quads more visible, and makes most people less likely to steal them!
This version held up much better. I did end up cracking the plywood in a pretty hard crash, but considering it was only 1/16" ply I thought it held up quite well. The PETG had no issues.
But progress on my MPCNC machine continued and the first thing I tried to cut with it was some acrylic and lexan - so let's upgrade from the ply next!
Step 6: Time for Some CNC Cut Bling
My first attempts at cutting acrylic and lexan with the MPCNC weren't great. My 15 year old Dremel was dying and the dremel endmill I had was not good for cutting plastic.
A quick order from drillman1 on ebay got me a nice single flute (or o-flute as they're sometimes called) endmill designed for cutting plastic solved that problem. It's not a great bit for engraving, but I still added a bit of decoration to make the top look a little nicer.
I also took the time to gut some paracord and sleeve the power wires for the ESC's to dress things up since at this point the quad was pretty well proven as flyable and tough enough to survive most crashes. I was happy with it, but wasn't huge on the angled arms. I don't dislike them, but I'm not sold on them yet either. The 3D printed parts are also rather heavy, I'm using some old emax "simon series" ESC's that don't perform very well, and some cheap YKS motors I got for almost nothing to test. It's fun, but it's definitely not a high performance machine.
It is however a great test bed that I don't mind experimenting with. So when I was given a DTFc flight controller to experiment with and test dRonin on the built in PDB seemed like a great way to clean things up on this build.
Step 7: More Experiments
So while I was building this quad I heard about a new flight controller in development that really piqued my interest. The person developing it is also a contributor to the dRonin project and asked if anyone else in that project would like to test one. Since almost every multicopter I've built has been a test bed of some sort I gladly threw my hat into the ring and was was honored to receive one for testing! I didn't get the fancy metal case the production units come in...but I did get some nice stickers along with pin headers and mounting hardware which I wasn't expecting. I'd have been happy with just a bare board so that was a nice bonus.
The DTFc ships with betaflight firmware on it which makes installing dRonin just a little tricky the first time. With most fully supported flight controllers you can use the dRonin GCS to flash the dRonin flight code. But since betaflight doesn't use a compatible bootloader you have to do this board the hard way. Thankfully the designer was kind enough to include a boot button instead of jumper so to get it DFU mode for flashing you just have to hold that down while powering it up. Easy peasy. Then once it's in DFU mode you can use cleanflight or betaflight configurator to flash a new .hex file from the dRonin package. When I first got my board DTFc hadn't been added as an official target yet so I had to compile the firmware and GCS myself, but as of the latest "Samsara" release of dRonin DTFc is fully supported and the files are now included in the default packages.
Unfortunately I was unable to get mine to flash through [beta/clean]flights config programs. It didn't give me any errors...but never actually flashed either. Just instantly finished as if it had worked. I'm blaming windows 10 for this as I had just upgraded my computer. There are alternative drivers for the STM DFU mode available in the zadig program which solve the issue for most people, but didn't for me. Instead I ended up having to convert the .hex file into a .dfu file and use STM's own "Flash Loader Demo" program to flash. Other people have since reported success with the zadig drivers and the *flight config tools so definitely try that first as it should be much easier. My ancient computer was probably just still protesting at being upgraded from Vista to Windows 10...heck it's STILL protesting!
So, I've got my favorite firmware loaded...time to install this board!
First test fit looked very promising, TONS more space! Woo Hoo!
Then I took a closer look. Lots more space...but...the positioning of the USB port and power connections is...well...less than optimal for my frame design.
So out came the hobby knife :D A few quick slices later and there's room for everything! It's a little ugly and hacked up looking...but it all fits. Ok. let's clean that up a bit then.
I pulled up openSCAD and made a few modifications to the frame. While I was at it I added some very small 1mm tall standoffs right in the frame for the FC to give room for a battery strap under the circuit board. I also mounted the board with some small o-rings under it to help dampen vibrations and help the battery strap fit.
Soldering the DTFc was a bit tricky for my old iron - there's a lot of copper in those traces to handle the high power race quads can suck down and this board is designed to survive being fed with a 6s battery (that's over 25v fully charged!) I know the designer was planning on doing some testing to determine the maximum current rating - but I haven't heard of the practical limit being determined yet despite some torture tests. This thing is build for power.
I ended up having to replace all of the ESC wires to optimize the routing, and didn't bother with paracord sleeving this time due to space constraints.
The DTFc doesn't have a built in RF module like the Sparky2 I was replacing. So I had to come up with an RX. My only other RF system is FlySky which doesn't have many good RX choices - the only commercially available RX's until very recently were PWM output only and didn't have a usable failsafe which is criticial on multirotors. The past year or two I've been making my own RX's with an A7105 RF module and arduino pro mini using code written by midelic on RCGroups, these work, but aren't super compact. They could be made smaller by eliminating the arduino and just using a bare AVR chip but a few months ago banggood started selling the "dasmikro" which is a VERY small FlySky RX with programable failsafe and PPM output - perfect! I grabbed a few to play with and stuck on one here to try out.
So far this setup has worked very well. I ran it through an autotune and got fairly good results. The Tau of 41ms isn't great - good race copters can see tunes in the 10ms range and I've had some of my other quads achieve 15ms tunes. But it's better than some commercial ARF (Almost Ready to Fly) "race quads" and I could easily get better performance with newer ESC's that can do active breaking. (I even have a set on hand which I may install eventually.) The props I was testing on that tune were also not the greatest and I can probably achieve a better tune with more efficient props.
Next step for this quad though will be to build a FPV pod to go on top so I can see how the angled arms feel when flying FPV. It's hard to really judge them flying LOS so I'm looking forward to that, but have no idea when I'll have time to actually CAD up a pod I'm happy with - that's going to be a tricky project for me to tackle with openSCAD!
So...want to build one for yourself? Next step please....
Step 8: Let's Build One Already!
Ok, so you don't care that it's heavy and not ultra high performance. You want to try this angle armed thing for yourself and have a way to 3D print the parts. Cool, I'd love to see someone else build one and share their results!
3D Printing Files
I tracked my development of the frame on github here: https://github.com/jhitesma/jth_angle_quad
That's always going to be the best place to get the latest files. The modified version of the center piece that works with the DTFc is in a separate branch called "dtfc_mods" so if you're looking to use a DTFc I'd suggest pulling that branch and using those files.
The "generated_files" directory has STL and DXF files for the project, but I'd strongly encourage any who wants to build one of these to download openSCAD and load up the source to see if they want to make any customizations. There are a few options in the SCAD files that are disabled by default and a good portion of the design has been parameterized so you can just tweak a few variables at the top to make most changes.
Alternatively I've uploaded the generated STL and DXF files on Thingiverse here: http://www.thingiverse.com/thing:1492827 But I'm less likely to keep updating those files as I make any changes unless I ever get around to fully parameterizing the design and can set it up as a customizer.
To attach Motors
16 - m3 x 22mm bolts for motors (Can be adjusted by modifying the motor mount openscad definition)
For attaching Arms
8 - m3 x 30mm bolts for arm mounting. May revise design to use only 4 bolts or maybe 4 m4 bolts.
16 - m3 washers for arm mounting bolts. (or 8 if only using 1 bolt per arm)
8 - m3 nyloc nuts for arm mounting bolts (or 4 if only using 1 bolt per arm)
For Flight Controller Mounting
4 - 3mm tall m3 M/F nylon (or printed) standoffs.
4 - m3 O-rings (optional for some setups - helps minimize vibrations to flight controller)
4 - m3 nylon (or printed) nuts
4 - m3 x 12mm nylon (or printed) screws
Top Bottom Plates
2 - 4" x 4" pieces of 3mm polycarbonate or Carbon Fiber
I've included DXF files exported from the openSCAD for the top and bottom plates. These can either be printed and used as a cutting template to cut plates manually, or used to generate cutting paths in CAM software if you have access to a laser cutter or CNC machine.
The arms are simply 1/2" square pine dowels from my local hardware store. Look for the straightest ones you can find, but the arms are so short a little bit of warping won't be a huge deal. I've yet to break an arm on this design despite some hard crashes - but even one dowel will give plenty for a few replacements if you do manage to break one.
For the electronics I would gladly suggest either a Sparky2 or "CC3D Revo" board if you have a ham license and openLRS gear since the built in radio is a great space saver. Both boards can be found on aliexpress at good prices. I used an old afroPDB I had on hand but there are newer PDB designs with built in power monitoring and filters that would be even better choices if you were buying new hardare. The Matek boards have a good reputation and can be found fairly cheap from Chinese vendors. The DTFc is also a great choice but you'll have to figure out how to fit in a separate RX which may prove harder than fitting in a PDB! You could also use any number of other 36mmx36mm flight controllers and there is a wide variety now available along with a wide variety of firmwares for most of them.
For the motors and ESC's I'll give some guidelines but I'm not going to make any hard suggestions here because there are tons of options that will work and this is really an experimenting platform rather than a fixed design.
I used some old 12a emax "Simon Series" ESC's because I had them on hand. I would not recommend them. They don't actually run simonk firmware despite their name, it's actually a modified version of blheli that's quite out of date. They could be reflashed with a newer version of blheli but the FET's on them are slow so damped light (active braking) won't work so there isn't a lot of benefit from flashing. It would allow using oneshot125 for the signaling but without damped light that won't give much performance increase. There are tons of choices for ESC's out there and the options change quickly. Pretty much anything will work but if you're looking for the best performance KISS 18a ESC's are very nice, there are lots of options for blheli, and the new blheli_s is looking promising but at this time is having some teething pains for some users.
The motors on mine are some KYS 2204 2300kv motors I was given very cheap to review. For the price (right now about $16 with amazon prime shipping) they're not a bad deal. They aren't quite as nice as Cobra or emax or sunnysky or t-motor or the other popular race motors - but they're half the price of some of those options and considerably cheaper than the rest. When you have to buy four of them a small per-motor price difference can add up quick. They're available in both CCW and CW rotations - which really just means the threads on the CCW ones are reversed so they tend to self-tighten when used on the reverse rotation arms. Personally I'd suggest just getting all CW motors and buying some M5 nyloc nuts to replace the stock spinners with, spinners tend to be poorly balanced and easily lost while nylocs will stay in place far more reliably even on reverse rotation motors.
Prop choice will depend on your motors. 2204 2300kv motors on 3s can swing 6045 two blade props quite well in my experience though a lot of people consider that over propped. I've yet to burn up a motor or even 12a ESC's even though I live in the desert and fly in 114f temperatures from time to time - and I love the punch decent 6045 props give. If you want to run 4s power I'd stick with 5" props as 6" would definitely be over propped then, but tri blade 5" on 4s should give roughly the same thrust as my 6" props and allow for quicker speed changes making things more nimble. I just don't have any 4s batteries right now though I do plan on getting some eventually.
So that's about it. I'd love to see someone build one of these or better yet modify it and make their own version! Also please vote for me in the Instructables Drones Contest 2016 One of those 1st prize goPro's would sure help me document my projects and share with everyone!
We have a be nice policy.
Please be positive and constructive.