I encountered an annoying situation when one of my output motor pins fried. Here's the topic
http://www.multiwii.com/forum/viewtopic.php?f=23&t=2296
Basically, instead of changing the pin used to power the motor in quad mode (I have a quadrocopter), I did what ronco suggested and changed the mode to HEX6X and only enabled 4 of the motors, as well as corrected their co-ordinates.
Here's the part that is being used now:
Code: Select all
#ifdef HEX6X
motor[0] = PIDMIX(-1,+1,-1); //REAR_R
motor[1] = PIDMIX(+1,-1,-1); //FRONT_L
motor[2] = PIDMIX(-1,-1,+1); //FRONT_R
motor[3] = 1000; //not used
motor[4] = 1000; //not used
motor[5] = PIDMIX(+1,+1,+1); //REAR_L
My quad is now effectively a hexa with only 4 working engines. The GUI recognizes it as a hexa and shows that model, but when powering engines, only 4 are shown as powered (in the GUI). So this is working well now.
3 engines are marked as corner engines (front R, rear R, rear L) but one of the engines is displayed in the GUIas the left engine, not front L. It rotates correctly and has the correct coordinates (as shown above in the code). It is the only engine left spinning when throttle is low and I pull the pitch stick back and roll stick right (expected behaviour). Can I therefore expect it to work properly as a front L engine? Are there any settings in the code that make a hexa work differently than a quad and will mess with the fact that it is recognized as a left engine, not front L, even though it has the correct coordinates?
Second question, it feels like the copter is not operating properly if I hold it with my hand and throttle the engines. Is this because of some error compensations in the code and it will not work properly if it is being held/held down?
I feel like one or two of the engines are not rotating as hard as they should/at all when I tilt the quad with my hand. Again, is this because of the code, will I only get correct results if I let it fly freely? This is what I'm afraid of, how can I let it fly if I don't know it'll fly?