Wednesday 15 May 2013

How you setup / configure Multiwii for beginners

How to use a MultiWii board

THIS POST HAS MOVED TO
 http://www.geekzoneuk.com/rc/flight-controllers/multiwii/

to make a multicopter, quatcopter or tricopter.

The multiwii is a brillant project that has enable people to make a RC flying craft that they would mostly be unable to do. It's designed to be highly configurable but with it comes the complexity of using it. It is not over complex but the lack of basic information for the beginner is almost a joke and in my opinion probably limits it's usage to half it's potential.

The forums are full of "newbies" asking questions to which they get silly, vague replies that say things like "google x y or z" rather that just answering the question! It's too easy for someone with experience to forget the newbies perspective and lack of knowledge.

Having just gone through this experience it's very frustrtating and off-putting to say the least about time consuming. Try even finding a diagram that shows what pins to connect servos and speed controllers to what to on your multiwii board !! (one to follow) Madness and such a waste of potential.

So here we go, so of the basics......

What even is MultiWii? (in English / non geek speak so READ THIS!!)

Multiwii is a essentially an open source (meaning free to use and edit) Arduino based code project that you can download and install ( called flashing) on to any compatible board or in fact an Arduino Nano type board with separate connected external sensors. This is key to understanding what to do. So I'm assuming that as the project developed from being a flying arduino with sensors, some people designed an arduino board with the sensors embedded and called it names like CRIUS Multiwii, and multiwii SE 2.0 etc. Forget all of that because you really need to choose a board that has the type of sensors you want on it, which are in turn decided by what functionality you want your RC gadget to have.

So if you want Altitude hold you will need a board with a Barometer (yes I know you can add one externally but that just complicates the issue)

In a nutshell, you can buy almost any arduino based multiwii board and run the multiwii software on it....if only it were that simple. This is the bit that catches everyone out when they start out.......

Choosing  a type of Multiwii board / getting started.

Decide what functionality you want your RC craft to have and then just read the spec of the board to make sure the bits you need are on it.

To help:

Altitude hold - Barometer - to measure air pressure (not that accurate)
Level / stable mode - Accelerometer and Gyro (returns to level when release the RC sticks)
Navigation - GPS
Wireless bluetooth  - if you want config via Android Tablet etc - UART port

This is why your out of the box Multiwii board doesn't do anything!
Okay so you see an Multiwii SE 2.0 board with Multiwii 2.2 on it and think "ooh that's cool it does so many things" and you'd be right, BUT !, the chances are you will plug it in and it won't work. Nothing at all except flash at you. There are various reasons why this happens but the real catch 22 is that the boards normally come with the software flashed on to them to suit a particular setup ie a quad, certain transmitter etc

YOU WILL HAVE to change the settings in a file called config.h in the multiwii code project in order to get your multicopter to work and this in turn means downloading the project, editor, compiling and then re-flashing after you have read through 10,000 lines of code that you have no clue about what it does!. This is why the off the shelf board never works.

As an example one of the "defines / #DEF" in the config.h arduino file is "copter type" ie TRI for TRIcopter or QUAD for quadrotor etc. You need to of course specify this before your craft even knows what it is!. So when you bought your board and they said "has Multiwii 2.2 installed on board" how did they know what your craft design was? simple they didn't so they probably just guessed and went for quad. Now you can see why the defalut pre-installation rarely works and more so when you realise that there are 10 or so other custom configs for things like your RC transmitter, your choice of ESCs and arming the motors.

Re-flashed but Multiwii board still doesn't do anything / won't arm?

More settings I'm afraid....The common cause for this is that the multiwii code disables the motors by default on start up. It is then enabled by using various combinations of stick movement. Now the code arms by detecting a combination of two / three stick movements to their extreme for example on a mode 2 (throttle left transmitter): rudder full left and aileron full right while throttle is full down might arm it.

You may not know this but the stick position is read as low being less than 1000, neutral being 1500 and high being 2000. So you multiwii won't arm if the in the code it says "arm below 1000" if your transmitter transmits a 1075 as a low value. This is the most common cause. if you download and install the windows program for multiwii you can see the stick values in the to right corner. On my Spekrtum DX6i, low seems to be about 1100 by default, so to get my multiwii to arm I have to increase the stick range by 125%, then set the rim to minimum. I also needed to change the variable called : MINTHROTTLE = 1150 to MINTHROTTLE = 1000 and MINCOMMAND = 1000 to MINCOMMAND = 900. The MINCOMMAND variable is the level at which your ESC's will become live. If you set it to 900, this will cover almost all ESC's and saves all the mucking about.

Physical Connections / Wire / Pin Configuration to a Multiwii board

This is one of the most poorly documented aspects of this "system". It is again made difficult to just find a simple answer to the question of which pins go where? why is this so? anyway, here is my on-going diagram for you....


  

Finally we tackle the autolevel feature of the Multiwii board and trimming 

To follow