New Products Flash Sale
Thread Tools
Jun 26, 2008, 03:51 PM
Registered User
Discussion

Quaduino - A new project to build a cheaper, better quadrocopter


UPDATE: The discussion has moved over to a new thread: Quaduino - Part 2

Here's a quick summary of current progress courtesy of RCvertt:

1)Mikro (Down load contains all necessary code)

-TX and RX= Spektrum DX7 transmitter tested. Binding instructions for AR6100 and 6200 receiver tested. Code in threads available for DX5 and DX6 with proper channel order changes. Make sure your transmitter is in Acro mode and not Helicopter mode. Futaba info is here. Futaba is not yet confirmed to work yet.
-Aircraft set up= You can use Mikros MikroQuadConfigurator or the Arduino Serial Monitor .
-Arming ESCs= Disarm ESCs by moving your left transmitter stick to the lower left (throttle down, yaw left). To arm, move your left transmitter stick to the lower right (throttle down, yaw right). Documented here under (Commanding the MikroQuad)
-Reading RX data=Uses interrupts to help read receiver data. Uses up more Arduino pins then Paulrenes method but doesn't require a PWM to PPM converter or the need to hack the receiver.
-IMU= Works best with Gyro only controll. Experimental accelerometer code available and activated through a transmitter switch.
-Stunt flying= Mikros quad that does flips is using his Hacker Style/Turnigy Sentry set up for the ESC and motors.
-Flight Battery=A ZIPPY Flightmax 4000mAh 3S1P 20C battery is used for 15min flights.


2)Paulrene (Download contains partial code. You still need to find a compatible ServoDecode and SoftwareServo library)

-TX and RX= Hitec has been tested. Futaba may be compatible as well as it has the same channel assignment as Hitec. Requires PWM to PPM converter or hacking of the receiver.
-Aircraft set up= No configurator available to help with initial transmitter set up.
-Arming ESCs=Throttle low, rudder right arms the motors. Rudder left disarms.
-Reading RX data=Taps into the combined PPM pulse train on a modified receiver or converter.
-IMU= Only gyros implimented at this point.

Arduino Info-
-Compiling on Arduino version 0012. Fix for compiling ServoTimer2 library with Arduino 0012. Both Paulrenes and Mikros code should already be compatible.

PWM to PPM converters-


ORIGINAL POST:
Quadrocopters are neat, but in doing the research to build my own I was struck time and time again by how expensive and difficult to modify they ended up being, largely due to the customized control boards.

I intend to build one with an Arduino (possibly more than one should the processing be required) replacing those pricey electronics. The result, hopefully, will be a $200 brushless quadrocopter with a very accessible developing environment (no hardware needed to alter the code, just plug in a usb cable!), and the potential to easily upgrade into a full-fledged UAV. The arduino is a very nice little platform. It's open source, has considerably more memory than a PIC, and has a very active community with lots of code freely available.

Below is a preliminary parts list. The physical design is taken entirely from OMM's design. It's so elegantly simple that I really have no improvements for it at this time.
  • Qty 1 Arduino (or clone) - $11 to $35
  • Qty 1 Walkera UFO board (for the 3 gyros and accel) - $40
  • Qty 4 TP2410-09 Brushless Outrunner with mount - $26
  • Qty 4 HW_P10A 10 Amp ESC - $58
  • Qty 2 8mm Carbon Fiber Square Tubing - $19
  • Qty 2 EPP1045 10x4.5 Props (Set of 2 counter rotating) - $8
  • Qty 4 MPI ACC363 3.00 mm Prop Saver - $2
  • Misc Alum sheet (.025 & .050), 4-40 screws/nuts, Alum 1 square tubing, Velcro - $12

Rather than writing all the code from scratch, I'm going to attempt to leverage existing Arduino projects to do some of the heavy lifting.
Objectives:
  1. Develop a quad that will hover
  2. Add support for additional sensors (pressure, GPS, collision avoidance)
  3. Tweak/replace the filter and control loop until it is capable of aerobatics
  4. Add completely autonomous functionality (waypoint following, etc)
  5. On-screen display for FPV

I'd love to get more people involved in this. I'll admit it's a bit daunting to take on myself. So please let me know if you're interested. Suggestions, comments and questions are also most welcome!

Might be a little while before I have a chance to gather all the components and start the actual development. Stay tuned for more info! Oh, and thanks to everyone who's been so helpful in answering my questions thus far!

Alex
Last edited by kaldak; Jun 17, 2009 at 01:05 AM.
Sign up now
to remove ads between posts
Jun 26, 2008, 04:46 PM
Went to mow a meadow
frank48's Avatar
Hi Alex

Just seen your new thread and I totally agree with your concept and wish you the best of luck

Cheers
Frank
Jun 26, 2008, 10:19 PM
multirotor/hotliner pilot
saturnine's Avatar
Alex-

As we've already discussed, I'll be joining you in this effort. Largely we are looking for the same things; at least initially. I look forward to sharing information and developing something with existing code libraries and expanding on that as skills progress. Below is a list of components and objectives that I have in mind immediately:

Objectives (Essentially the same as yours, plus):

1) Get something in the air, capable of hovering and light directional flight using existing code (PID controller loops, my own mixing code, and borrowed (Kalman, FIR, or IIR?) filtering code) and common hardware configurations to gain mastery of how these fully operate.
2) Work on developing optimal nonlinear (proprietary?) filtering to allow for very stable flight, GPS, aerobatics, etc. Possibly toy with the idea of fuzzy membership control loops just to try something different
3) Shrink the hardware to something as minimalstic as possible to keep size, mass and cost down (move away from the Arduino platform to simply an ATmega/C combination to reduce cost/complexity even further)
4) If I succeed, make the decision to go with an entirely open platform or to produce a polished product that can be widely available at a cheaper price than the German alternatives.
5) Transpose existing design over to ARM7/Cortex? MCU-based flight controller with higher end components
6) Regardless of success or failure, have fun

Components (subject to change without notice):

1) Arduino Nano (ATmega168-based) ~ $50 shipped (can be substituted with any cheaper variation of Arduino or Feeduino products)
2) 3 x NEC TOKIN gyros scored from WaroWare Twisted! cartridges ~ $50 for all 3 shipped, or Murata gyros and Freescale ACC from Walkera UFO 4# flight controller ~ $50 shipped
3) 4 x Turnigy Plush 10A 3.1 BLDC controllers ~ $65 shipped
4) 4 x Brushless motors of choice; costs vary (I will start with custom MicroDAN 25mm, 32g, 1000Kv outrunners with SilverLit X-UFO propellers
5) 4 x SilverLit X-UFO or EPP1045 propellers, depending on motors; costs vary
6) G10 sheet frame and hardware ~ $40 (considering Dow blue foam/lite ply for initial prototype/trainer frame ~ $20)
7) SMD LED 12V strip lighting from Oznium.com ~ $25+ (ideally we'd have at least 2 colors for night flying)
8) The venerable Berg 4L PPM receiver + Berg micro crystal to get started ~ $45 shipped
9) 4-channel+ transmitter of choice; cost will vary (I'll use the MULTIPLEX ROYALevo 9)
10) Multiple 3S LiPos (350mAh - 1800mAh+); costs/performance varies

There is quite a heated debate as to whether or not standard 50Hz BLDC controllers are fast enough for stable yet agile flight in quadrocopters at varying axle-bases. The Germans largely insist that they are not (theirs update between 500Hz and 1KHz), while the DraganFlyer/KQuad camp states otherwise. I own and fly German-engineered X-3D-BL quads that are incredibly agile. I aim to determine once and for all if the "lesser" 50Hz varieties can handle looping and other aggressive aerobatics at axle-bases of as little as 30cm (small MikroKopter size), 32cm, 34cm (X-3D-BL size), 36cm (Hammer frame size), all the way up to 40cm (standard MikroKopter size).

Any ideas to increase simplicity, lower cost or increase performance are welcome. This is an educational project for me and I hope to learn a lot from all in the process.

Below are some photos of some of the parts collected so far:

Damon
Last edited by saturnine; Jul 21, 2008 at 03:38 PM.
Jun 27, 2008, 11:15 AM
Registered User
Quote:
Originally Posted by kaldak
[*]Qty 1 Arduino (or clone) - $11 to $35
Rather than writing all the code from scratch, I'm going to attempt to leverage existing Arduino projects to do some of the heavy lifting.
Snip
I might be wrong, but looking at the list of Freeduino projects you want to incorporate, it looks like you will need more than one Freeduino. It looks like it will require more I/O than available on each Freeduino.

* Using Freedunio in my post because Freedunio is Trademark free, while Arduino (TM) is not.
Jun 27, 2008, 02:45 PM
Registered User
Quote:
Originally Posted by saturnine
1) Arduino Nano (ATmega168-based) ~ $50 shipped
For what it's worth, you can get an RBBB (arduino clone) for $11 unassembled, or $18 assembled. You will need a $20 cable to connect it to USB, but you'll only need one of those. The nano is pretty snazzy, but the price is rather steep. The RBBB isnt that much bigger.

Quote:
Originally Posted by barebottoms
I might be wrong, but looking at the list of Freeduino projects you want to incorporate, it looks like you will need more than one Freeduino. It looks like it will require more I/O than available on each Freeduino.

* Using Freedunio in my post because Freedunio is Trademark free, while Arduino (TM) is not.
You are correct. The Arduino has 6 analog inputs. That's enough for 3 gyros and a 3 axis accelerometer, which is all I'll need at the start. For anything else coming later I'll add a second Arduino or a seperate ADC chip ($2-$4).

Alex
Jun 27, 2008, 03:07 PM
multirotor/hotliner pilot
saturnine's Avatar
Right. The Nano isn't a necessity, I just happened to try one and now this is what I have to use for this project. Anyone following along, should feel free to substitute with any cheaper equivalent.

While I definitely intend on making the initial project cheap and accessible, I also hope to eventually develop something more focused on polish and performance than cost. Our current projects match the logical order of progression though. I encourage keeping costs as low as possible for this.

Damon

Quote:
Originally Posted by kaldak
For what it's worth, you can get an RBBB (arduino clone) for $11 unassembled, or $18 assembled. You will need a $20 cable to connect it to USB, but you'll only need one of those. The nano is pretty snazzy, but the price is rather steep. The RBBB isnt that much bigger.



You are correct. The Arduino has 6 analog inputs. That's enough for 3 gyros and a 3 axis accelerometer, which is all I'll need at the start. For anything else coming later I'll add a second Arduino or a seperate ADC chip ($2-$4).

Alex
Last edited by saturnine; Jun 27, 2008 at 03:17 PM.
Jun 27, 2008, 03:28 PM
Registered User
Quote:
Originally Posted by saturnine
Right. The Nano isn't a necessity, I just happened to try one and now this is what I have to use for this project. Anyone following along, should feel free to substitute with any cheaper equivalent.

While I definitely intend on making the initial project cheap and accessible, I also hope to eventually develop something more focused on polish and performance than cost. Our current projects match the logical order of progression though. I encourage keeping costs as low as possible for this.

Damon
Hi, Damon
You may remember me selling you a XUFO/X3D kit in the distant past which I replaced with OMM's answer to the quadrocopter question and which I am very happy with. The problem of course in the UK is that the levelling system using the TI route although working very satisfactorily when the weather is good restricts my happy flying hours as the weather here this year is appalling.
Although I have little or no expertise in modern electronics or programming skills I must say I am very interested in your project and hope you can "get it off the ground" successfully and wish you all the best for the project which I will be watching with interest.
Cheers Regards Ted (UK)
Jun 27, 2008, 03:51 PM
multirotor/hotliner pilot
saturnine's Avatar
Hey Ted,

Yes, of course I remember. Your old (new) baby is built and has flown. She largely just sits around and waits for something to go wrong with her brother. She recently donated an arm after an extreme mishap that you may or may not have read about. Otherwise she is in brand new operating condition.

Thanks for the nice words and I hope I can succeed too. It will be nice to have the input of others as this isn't going to be an easy task at all. I look to Tido Tebben's QuadroControl II (sub $90 complete flight controller, but no ACC of any kind) as my main motivation and hopefully can match what he's done in the way of minimalstic simplicity and then look to attempt (key word) to draw inspiration from Holger/Ingo as well as AscTec to integrate a levelling system that is simple but suitable for all weather conditions.

Make no mistake, I am new to electronics myself, but I am taking my education very seriously and am becoming exponentially smarter very quickly. I've been spending a lot of time preparing and reading as much as I can. I encourage criticism and hope that this thread and the culmination of its viewers' contributions leads to some interesting new, or at least further simplfied (read less parts and cheaper) methods of doing this whole quad thing.

Then of course I have this likely riduculous delusion of grandeur that sees myself eventually developing something with polish that I can call my own... That would just be icing on the cake. For now, I would simply be happy to get something in the air Even if that means it looks silly or flies even sillier

Next step is to organize and announce a sequence of events... More to come

Damon

Quote:
Originally Posted by tedrobphoto
Hi, Damon
You may remember me selling you a XUFO/X3D kit in the distant past which I replaced with OMM's answer to the quadrocopter question and which I am very happy with. The problem of course in the UK is that the levelling system using the TI route although working very satisfactorily when the weather is good restricts my happy flying hours as the weather here this year is appalling.
Although I have little or no expertise in modern electronics or programming skills I must say I am very interested in your project and hope you can "get it off the ground" successfully and wish you all the best for the project which I will be watching with interest.
Cheers Regards Ted (UK)
Last edited by saturnine; Jun 27, 2008 at 04:15 PM.
Jun 27, 2008, 05:02 PM
There's magic in those wings !
khaled_abobakr's Avatar
Good Luck to you all Damon and Kaldak

I really wish I had something else to give than just Good luck but for the time being it is all I have

Khaled
Jun 27, 2008, 07:00 PM
multirotor/hotliner pilot
saturnine's Avatar
Thanks Khaled I'll need that good luck!

Quote:
Originally Posted by khaled_abobakr
Good Luck to you all Damon and Kaldak

I really wish I had something else to give than just Good luck but for the time being it is all I have

Khaled
Jun 27, 2008, 08:18 PM
Wow That's Cool!
tend2it's Avatar
Quote:
Originally Posted by khaled_abobakr
Good Luck to you all Damon and Kaldak

I really wish I had something else to give than just Good luck but for the time being it is all I have

Khaled
Yup ... I second that ... ... another good quadro thread to subscribe to ... you guys are an inspiration ... hope you keep the costs down and find a lower cost alternative, open source, expandable solution.

--Eric--
Jun 29, 2008, 11:24 AM
multirotor/hotliner pilot
saturnine's Avatar
Thanks, Eric.

So far, I've successfuly driven the 4 Turnigy BLDCs from some simple PBASIC code written for a Parallax BASIC stamp BS2. In other words, I've succeeded at writing mixing code to take standard PPM input from the Berg 4L receiver, mix the functions from ACRO mode to drive the motors appropriately for quad flying. Of course the BASIC stamp is a very slow chip when compared to the ATmega168 in the Arduino (4KIPS vs 16MIPS!) but this was simply done for proof of concept. PBASIC is extremely easy to program with and I figured it would be easier to walk before jogging. The problem here is, it seems that the BASIC stamp is slow enough to hiccup during the mixing process, but this might be due to IO issues with the chip working with timing on multiple IOs simultaneously? I'm not sure, but it's clear that a prototype of any kind if going to need to be ported to the Arduino.

So, the next step is getting the control/mixing scheme mixed in the Arduino/C environment. The mixing functions are quite simple, and should allow for easy porting. The logic goes something like this:

+ Orientation control schema
Pitch (F, B) = throttle +/- channel 1, throttle -/+ channel 1
Roll (L, R) = throttle +/- channel 2, throttle -/+ channel 2
Throttle (F, R, B, L) = channel 3
Yaw (F, R, B, L) = throttle + channel 1/- channel 2 or throttle channel 1/+ channel 2

Example motion values based on a theoretical 256-step control range
Throttle = 200 of 255 (somewhere between mid and high stick deflection)
Roll = -30/+30, net roll = 170/230
Pitch = -10/+10, net pitch = 190/210
Yaw = roll +15, pitch -15, or roll -15, pitch +15 (roll = 185/245, pitch = 175/195)


X Orientation control schema
Pitch ((F, R), (L, B))
Roll ((F, L), (R, B))
Throttle (F, R, B, L)
Yaw (F, R, B, L)

Quite simple, but it will take me a little time to code this since I'm not used to embedded C programming. Remember, this is a learning process for me. I'm attempting to go from virtually knowing nothing of electronics, and some coding skills to a flying quadrocopter in a few months time. Possible? We'll see...

Once controls and mixing functions are complete, and the bare minimum perf board flight controller is done, I plan on amusing you all by attempting completely gyro and ACC-less flight It's my contention that flying a quad without an IMU is physically impossible, but this will be a real opportunity to prove this in front of everyone By this time, I will obviously have some form of an alpha (temporary) frame which will likely be made of Dow blue/pink foam and aircraft Lite ply; initially at least.

Shortly after is where the real fun begins. To integrate an IMU (gyros/ACC) that have filtered data and proper state estimation algorithms are the true challenges here. This is the part that makes me sweat. Board design will change drastically as a result of adding gyro and ACC hardware, and I will need to learn more and more about how to fit these components electrically. In addition to this, I will be facing some of those extremely convoluted (as far as I'm concened anyway) algorithms and such in effort to make use of the noisy sensor data. This is where a quad starts being a quad... May the math gods have mercy on my (our) soul(s).

Damon

Quote:
Originally Posted by tend2it
Yup ... I second that ... ... another good quadro thread to subscribe to ... you guys are an inspiration ... hope you keep the costs down and find a lower cost alternative, open source, expandable solution.

--Eric--
Last edited by saturnine; Jun 29, 2008 at 06:19 PM.
Jul 02, 2008, 08:08 AM
Registered User
Quote:
Originally Posted by saturnine
Thanks, Eric.

So far, I've successfuly driven the 4 Turnigy BLDCs from some simple PBASIC code written for a Parallax BASIC stamp BS2. In other words, I've succeeded at writing mixing code to take standard PPM input from the Berg 4L receiver, mix the functions from ACRO mode to drive the motors appropriately for quad flying. Of course the BASIC stamp is a very slow chip when compared to the ATmega168 in the Arduino (4KIPS vs 16MIPS!) but this was simply done for proof of concept. PBASIC is extremely easy to program with and I figured it would be easier to walk before jogging. The problem here is, it seems that the BASIC stamp is slow enough to hiccup during the mixing process, but this might be due to IO issues with the chip working with timing on multiple IOs simultaneously? I'm not sure, but it's clear that a prototype of any kind if going to need to be ported to the Arduino.

So, the next step is getting the control/mixing scheme mixed in the Arduino/C environment. The mixing functions are quite simple, and should allow for easy porting. The logic goes something like this:

+ Orientation control schema
Pitch (F, B) = throttle +/- channel 1, throttle -/+ channel 1
Roll (L, R) = throttle +/- channel 2, throttle -/+ channel 2
Throttle (F, R, B, L) = channel 3
Yaw (F, R, B, L) = throttle + channel 1/- channel 2 or throttle channel 1/+ channel 2

Example motion values based on a theoretical 256-step control range
Throttle = 200 of 255 (somewhere between mid and high stick deflection)
Roll = -30/+30, net roll = 170/230
Pitch = -10/+10, net pitch = 190/210
Yaw = roll +15, pitch -15, or roll -15, pitch +15 (roll = 185/245, pitch = 175/195)


X Orientation control schema
Pitch ((F, R), (L, B))
Roll ((F, L), (R, B))
Throttle (F, R, B, L)
Yaw (F, R, B, L)

Quite simple, but it will take me a little time to code this since I'm not used to embedded C programming. Remember, this is a learning process for me. I'm attempting to go from virtually knowing nothing of electronics, and some coding skills to a flying quadrocopter in a few months time. Possible? We'll see...

Once controls and mixing functions are complete, and the bare minimum perf board flight controller is done, I plan on amusing you all by attempting completely gyro and ACC-less flight It's my contention that flying a quad without an IMU is physically impossible, but this will be a real opportunity to prove this in front of everyone By this time, I will obviously have some form of an alpha (temporary) frame which will likely be made of Dow blue/pink foam and aircraft Lite ply; initially at least.

Shortly after is where the real fun begins. To integrate an IMU (gyros/ACC) that have filtered data and proper state estimation algorithms are the true challenges here. This is the part that makes me sweat. Board design will change drastically as a result of adding gyro and ACC hardware, and I will need to learn more and more about how to fit these components electrically. In addition to this, I will be facing some of those extremely convoluted (as far as I'm concened anyway) algorithms and such in effort to make use of the noisy sensor data. This is where a quad starts being a quad... May the math gods have mercy on my (our) soul(s).

Damon
Hi, Damon
I'm really looking forward to your attempt to fly without gyros/acc - should be "exciting" to say the least. hope you don't get too much of a headache with the maths.
Let's hope for a "positive" outcome and let the negatives take care of themselves.
Good luck Cheers Ted
Jul 02, 2008, 06:00 PM
multirotor/hotliner pilot
saturnine's Avatar
Thanks again Ted! I appreciate the support and enthusiam. It's nice to know at least a couple of people are watching and waiting. I will work on this some tonight and more this weekend and report back with a status update. Ideally, I would like the practice (alpha) frame done, the motors mounted and at least begin the process of porting my mixing logic over to the Arduino. Maybe in as little as a couple of weeks I will be able to follow through on my promise of making a complete fool of myself with a video of sensorless flight

Damon

Quote:
Originally Posted by tedrobphoto
Hi, Damon
I'm really looking forward to your attempt to fly without gyros/acc - should be "exciting" to say the least. hope you don't get too much of a headache with the maths.
Let's hope for a "positive" outcome and let the negatives take care of themselves.
Good luck Cheers Ted
Jul 02, 2008, 06:17 PM
Down under under
Watching with interest
good luck


Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
Build Log New Project - YF-23 GlasairAllen Electric Ducted Fan Jet Talk 525 Dec 13, 2008 11:59 AM
New project DBlum Parkflyers 42 Feb 28, 2004 12:43 AM
Idea blue foam new project reznikvova Parkflyers 4 Jan 23, 2002 08:34 PM
new project from foam please look reznikvova Foamies (Kits) 3 Dec 21, 2001 06:29 PM
New Project Flys! Dr. Jet Sport Planes 9 Sep 20, 2001 07:09 PM