MultiWiiCopter "MiniWii" FC - Cheap, small 6DOF FC
The first "MiniWii" flight controllers have landed in the shop. Limited numbers - low introduction price!
"MiniWii" is a arduino-based flight controller purpose-built for MultiWiiCopter. It has a 6DOF sensor array onboard and supports autolevel. Optional compass and altimeter can be used via the I2C header. It comes with Arduino optiboot bootloader preflashed to the board.
36,5*36,5 mm/6 gram - M3 mounting holes with 30.5 mm spacing.(same size as OpenPilot CopterControl)
Supports up to 6PWM outputs and 4 servos.
Atmega328P @ 16 Mhz
ITG-3205 3-axis MEMS gyroscope
BMA180 3-axis MEMS accelerometer
Integrated logic level converter
6-pin ISP socket
I2C header for optional compass and barometer upgrade
Dual LDOīs: Mic5205 for Vcc and Mic5203 for 3v3
ISP and FDTI pins are soldered for testing purposes. All other I/O pins will have to be soldered by enduser. (Pins included)
Introduction price is 59E including VAT. Limited numbers available at the moment. You can get them from ViaCopter
Colored versions will be made available later. Kits will also be available!
MiniWii is Open Hardware under a CC-SA-NC license (non-commercial). The hardware will be kept at a constant "beta" stage, and may be subject to change. Feel free to rework the design or use it in any way you see fit, as long as its for private/non-commercial purposes. Email me for copies of the Eagle source! (They will be made available here later on)
Warthox flight vid:
Bas10anīs 1S nanocopter with a 3.3V/16Mhz miniwii:
Pinout and power options
The Miniwii follows standard Arduino pin-names, so any of the existing diagrams for connections will work just fine!
Berkely did a fine job on documenting the different connection options in clear and simple shcematics:
Alternatively you can refer to Alexīs diagrams on page1 on the Multiwii thread
I have also posted the motor pinout table I made a while back.
The connectors are setup like standard 3-pin servo connector. GND is closest to board edge, PWR is middle pin and signal is the inside pin. GND and PWR are parallel on all motor/rx/servo pins.
Only populate the pins you need. In the example below I have only populated 5V/GND for one RX channel and one ESC. This way the single ESC will power both the RX and the board. This works fine in most cases, but if you are running lots of servos, you might want to consider adding a proper BEC and supply 5V (from regulated source) onto the Vcc pin
Alternatively you can power the board with 5-12,4V to the GND/power pads at A6. You will need to cut the power trace between A3 and A6 or you will fry your RX. (See picture) Verify with multimeter that power pads at A3 and A6 are no longer connected and you will still need a 5V source to power the RX! Also bear in mind that an LDO will heat up considerably as the input voltage is increased - I dont recommend going over 3S, but on paper the 5V LDO should be able to handle up to 20V input.
Last way to power the board is by applying 5V directly to VCC pin (from a regulated source, a BEC will inject a lot of noise)
The LDOīs is 150ma for Vcc and 80mA for 3v3, so dont connect heavy drain stuff to Vcc or 3v3 pads (Will be fine for lowpwr stuff like BT or additional sensor breakouts)
ImagesView all Images in thread
The MultiWii software is flashed via a 5V USB-serial adapter. Look at post 2 for picture of connection.
Miniwii was designed to fit the "standard" pinsequence for FDTI-type adapters and cables - refer to "blk" and "grn" markings on your adapter and the Miniwii board...
It is IMPORTANT that you use an adapter that has the DTR pin available (for autoreset) I use this one:
But I think this one is more versatile:
Right now I recommend using the 0022 or 0023 IDE from Arduino CC (Some bugs have been reported with the newest 1.0 version):
And you can get the Multiwii skecth from here:
Unpack the Arduino forlder to any location on your machine. Grab the latest version of Multiwii (1.9 at time of writing this)
Connect the USB-serial adapter (install relevant drivers) and connect the board to adapter.
Open the file "MultiWii 1_9.pde" in Arduino. You should see 11 tabs with the different parts of the Multiwii code.
Go to the setup.h tab (this is the main tab for setup changes)
Arduino uses standard C syntax for comments. A set of slashes (//) means that everything on the line after the slashes will not be included when the code is compiled (it is commented out). We use this to choose the appropriate defines by removing or adding double slashes in front of a code line. The most important are:
#define I2C_SPEED 400000L //(enables 400Khz i2c communication) .... #define ITG3200 //(Enables ITG3200) .... #define BMA180 //(Enables BMA180) .... //#define INTERNAL_I2C_PULLUPS (Disable the internal pullups)
Also consider the failsafe settings (failsafe is enabled by default)
Go to "tools" -> "boards" and choose UNO.
Then click "tools" -> "serial port" and choose the port that was assigned to your Usb/serial adapter when you installed it (Look in device manager, but usually it the COM port with the highest number).
Then click the "upload" button in the top bar of the Arduino IDE. Arduino will now compile the source into a .hex file and upload it to the board.
You have now programmed your board.....Close down Arduino IDE
Open up the MultiwiiConf_1_9 folder and find the version for your main OS (MultiWiiConf_1_9.exe for Windows). You need a recent version of Java for the GUI to work:
When the GUI is open, you will see a list of COM-ports in the top left column. Choose the same port as used to flash the software in Arduino
Give it a few seconds and the click "start". You should now see the sensor-curves in the GUI.
Make sure the craft or board is level and click "calib accel". This will zero out the accel. Gyros are zeroed on startup.
Then click "read". You should now see your PID and settings values.
Values are changed by "clickīnīdrag" moves: Place the mouse pointer over the value you want to change. Then Click and Hold the left button and "slide" the values up and down by moving the mouse left and right. When you change values, you have to click "write" afterwards.
Most "normal" setups should fly fine on stock PID values. But you may need to modify for your individual frame and setup. So here is a few "very basic" PID Pointers...
P = Proportional, the amount of correction applied. (Can be described as the "gain" factor). If you get fast oscilations, then P is too high. Tune P as high as you can until you start to see oscilation and then back it a bit down.
I = Integral, the crafts tendency to hold attitude angle. ("Heading hold" factor). Too high I is visible as "overshoot" when correction is applied
D = Derivative, the speed at which corrections are applied. ("Dampening" factor). If your craft builds up large/slow oscillations you need to raise D value. (For D parameter, a Higher number means more "dampening" and High D will decrease the influence of P)
For level PIDīs:
P = Proportional ("gain") factor: How much correction is applied
I = Integral ("speed") factor: How fast corrections is applied.
For more details and setup questions look at the main Multiwii thread or pay a visit to the forum section on www.multiwii.com).
Shikra also made a guide that covers all the basics of setting up a multiwiicopter:
|Category||Thread||Thread Starter||Forum||Replies||Last Post|
|Sold||alternative mk 1.35 fc with extras all brandnew and cheap!!!!!||flyer_dad||Aircraft - Electric - Multirotor (FS/W)||6||Sep 02, 2011 08:03 AM|
|Alert||FreeFlight IMU 6DOF - small batch being made||bob4432||Multirotor Talk||17||Jul 22, 2011 01:23 PM|
|Sold||new MultiWiiCopter FC with usb programmer built by witespy $130 shipped.||imdone||Aircraft - Electric - Multirotor (FS/W)||0||May 18, 2011 01:38 PM|
|Question||High quality small mAh vs. cheap quality large mAh pack||Munch||Batteries and Chargers||8||Apr 03, 2011 02:38 PM|
|Discussion||***DANGER*** - cheap&easy small batteries for small, cheap 24" styro glider||Little-Acorn||Batteries and Chargers||5||Aug 27, 2009 01:03 PM|