3689691541?profile=originalI wanted to try my hand at a true "DIY" project, designing and building my own micro quadcotper frame and writing my own firmware in C++.  In this post I will describe the frame and build; in my next post I will talk about the firmware.

Excluding stuff I had lying around the shop, (heat-shrink tubing, EC-3 connectors, velcro, cable ties, etc.) the cost came to just under $170:

Here's the frame, fresh out of my LulzBot Mini printer:


Before adding any components, I inserted a velcro tie to keep the battery in place:


Here's the amazing RMRC BLHeli 4-in-1 ESC with motors and EC-3 battery connector soldered on:


Here's the BLHeli mounted on the frame.  I should've used the thinner (4.5mm) standoffs on top and bottom to avoid damaging the circuit!


Next it was time to make a custom jumper for the tiny 3V FrSky-compatible CPPM receiver, which is not 5V tolerant.  I un-soldered the 3V Spektrum header from the Flip32 and jury-rigged a little three-pin jumper connection:

3689691497?profile=originalHere's the super-tiny FrSky-compatible receiver from Curtis "Beef" Fissel (of Beef's Brushed Board fame). This photo shows the receiver after I soldered on a three-pin header, solder-bridged the bind pads, connected it to the Flip32, powered the Flip32 through the USB port bound the receiver to my Taranis, and un-soldered the bridge:


You can see the completed project at the top of this post.  Although I could have used Baseflight or Cleanflight to configure the board, I used my own C++ firmware, adapted mostly from Baseflight.  Having never configured such a tiny vehicle before, I struggled for a while with the PID settings.  Eventually I just divided all the default values by two, and that worked fine, giving me the smooth flight shown in the video.

In a follow-up post I'll discuss the C++ firmware that's flying the 'copter.

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • ok, I had estimated your flying weight too high.  Dropping it to 150g shows hover at 60% throttle.  Thanks.

  • Flying weight is 150g.

    I just tested on a full charge (2S battery), and got the vehicle to hover at around 55% throttle -- which agrees with your 50% figure, rather than the 80% you get from simulation.

  • Do you have a guess as to where you throttle is at hover?  I ask as simulations show that a 2s battery with that motor and prop may hover at ~80% throttle.  Even with the added weight, 3s and 4s batteries show throttle at hoover much closer to 50%.  Given how small this is, it seems possible that the simulation just doesn't represent it well.

    What is your flying weight?

    Thanks,  Phillip

  • @Patrick: Great minds think alike (and so do you and I!) ... instead of Gazebo, my students and I used V-REP to code up a Python-based simulator. So my other goal for the week is re-writing the flight controller for the sim, using the Hackflight firmware.

    The Eachine hack is schweet!  But as soon as I see the Keil toochain, ST-link, MDK and all that, I run screaming from the room ;^)  Here's the complicated procedure I prefer:

     % make flash

    For debugging I get by with printf().  I gladly accept the label of Primitive Savage that goes with this among many engineers.

  • Yeah .. Better keeping this option for the Gazebo Plugin == Sim -On - Flight :-)

    Getting back to the root seems to be the trendy these days, I really enjoy hacking and flying micro drones with this group: http://www.rcgroups.com/forums/showthread.php?t=2512604

    And incidentally, Iam waiting for a NAZE32 clone to retrofit my quad 250 project, so timing is good :-)

  • @benbojangles: Sorry about the thingiverse link.  I just checked and it appears to be publicly available now.

  • @Patrick,Phillip: As you'll see (probably this evening), I don't have a branch/fork/release of Baseflight/Cleanflight.  I stripped the Baseflight firmware (around 16K lines of C) down to around 1100 lines to support the minimal kind of old-school firmware I loved from the Arduquad days: IMU + RC + PID controller. Then I wrapped it in a crunchy C++ coating for Arduinoheads like me ;^)  It's an education / research tool more than anything.

    Since I mostly ripped the code from Baseflight, calling it SimonFlight would be dishonest.  So I'm calling it .. Hackflight!

  • Nice build... now I want one.

    I assume this will be coming in a future post, but any hints on what you are changing in your version of Base/CleanFlight?

  • Cant wait to get the new SimonFlight Stack :-)

  • oops the frame link ain't working anymore :(

This reply was deleted.