Dodeca-Hexa ESC Wiriing and Propeller Direction

Pascal,

Yes, that sounds correct. Txs for giving this a go. It should certainly work.

Hi. I am also somewhat new to the Arducopter code. I was wondering about the pin order of the PWM outputs on the Pixhawk for the dodeca-copter layout. Iā€™ve been reviewing the code to the best of my ability, but from what I can see the mixer for the top and bottom rotors of the dodeca seem to be separated into two separate mixers, one using the Main outputs and the other one using the Aux outputs.

The config file "24001_dodeca_cox" in init.d (https://github.com/PX4/Firmware/blob/master/ROMFS/px4fmu_common/init.d/24001_dodeca_cox) sets the Main mixer "dodeca_top_cox" and the Aux mixer "dodeca_bottom_cox", which both simply seem to be regular 6 input 6 output hexa-copter mixers (as generated by px_generate_mixers.py) but "inverted" in respect to each other. In conclusion the Main PWM outputs seem to be totally isolated from the Aux PWM outputs, with each output group flying one "half" each of the dodeca-copter.

So how come you use PWM outputs 1-8 main + 1-4 aux instead of what I would expect; i.e. 1-6 main + 1-6 aux? The PWM outputs should be ordered according to the order given in the mixer file and in the order generated by px_generate_mixers.py, right? If the Main and Aux output groups have one mixer each then that ought to mean output 1-6 Main and 1-6 Aux should be the correct ones? Or am I missing something here?

As an extension to that question I wish to generate a mixer file for a ā€œnon-invertibleā€ dodeca-copter, as in there are 12 rotors total in a 3x4 configuration (1 line of 3 rotors in each of the four corners). Since I donā€™t know how I would be able to separate this in a sensible manor into two mixers as was done for the mixing in the current Pixhawk implementation of a dodeca-copter, I would need the 12 PWM outputs to all mix together using one large 12x4 mixing matrix (instead of two separate smaller 6x4 matrices, one for each output group). With the current firmware of Pixhawk this doesnā€™t seem to be possible when looking in the code. However, if as you say you are using PWM outputs 1-8 Main + 1-4 Aux then that would indicate that I must be mistaken somewhere.

I have the .toml file to generate said 12x4 matrix using px_generate_mixers.py, but what would happen if I simply set this as my Main mixer for the Pixhawk, even though there are only 8 Main outputs? Is there any way to have the remaining four outputs be connected to the Aux outputs? Sorry for the long question but Iā€™m a little confused. Does anyone know enough details about how this mixing works to give me some helpful advice here?

Cheers!

Thatā€™s the motor order for PX4 you linked to. Select Frame_Class 12 and see what motor outputs are configured.You will see Servo1-12_Function. Not 1-6, 9-14

Hmm, yes, but my question is why. I suppose this is a very code heavy question so I might re-ask it on the developer forum. I would expect the servo outputs to be 1-6 + 9-14, but this is indeed not the case, so Iā€™m stumped as to why that is. I suppose thereā€™s something happening between the motor mixer and the output driver. Or Iā€™m just reviewing the wrong code :confused:

Arducopter obviously uses a different default motor order than PX4. You could re-assign them.

hey guys can anyone check this config for me
Thanks
dodeca-hex-motor-setup
<

Ask the wiki:

http://ardupilot.org/copter/_images/motororder-dodecahexa-plus-2d.png

Perfect thanks mate, all set up but cannot get any output from AUX1 which should be motor 9 (top) do you have any ideas? Can I swap aux1 function to aux5? Thanks alot

Hey guys - please say its possible to using AP with 16 motors as octocopter 8 up and 8 down over uavcan?

No, that is not possible yet. You will need to use the latest github master and use a lua script to add the extra four motors

But AP have 12 motors max in defines - and with lua iā€™m can add additional motors without any problems and AP can handle all of them?

Try it out, there is a lua script in the examples, that does this. If it does not work, change the define.

And Open a new forum thread for it!!!