Dodeca-Hexa ESC Wiriing and Propeller Direction

@R_Q_Robert,

No, I’m afraid the dodeca-hexa didn’t make it into AC3.5 so the next best choice is to use “master” (aka “latest”). This is slightly risky because the software won’t have gone through beta testing so it’s fly at your own risk. It’s fairly stable at the moment though.

To load “master”, go to the MP’s Install Firmware screen and press Ctrl Q. You should then see the version changes to APM:Copter V3.6-dev and you can pick any of the multicopter icons (quad, hexa, octa, tri, y6) because they’ve all been consolidated now.

Unfortunately , i cant run 3.6-dev on my dodeca-hexa (due to the risk of alpha testing)
i was expecting its support in some point release of AC3.5 .

@Robert,
That’s possible that we could add it to a point release… there certainly will be a point release - the timing of that depends upon when other critical issues come up and how quickly we can sort them out.

I would be very thankful to you

Sorry if I am being a bit of a Biff but Im new to the Arducopter.

I am trying to get the dodeca selected but I dont see it anywhere in the choices. I pressed the Ctl+Q to get the latest firmware which worked but it only allowed the ‘standard’ frame types. I selected the hexa although if I have understood things correctly this shouldn’t matter as such if all of the frame types are consolidated. On plugging in the Pixhawk and selecting Frame type I cant see a dodeca. The attached is all I get. What do I need to do to get the dodeca? Many thanks in advance for any help.

@Carapau,
Sorry for the slow reply.
If you’re using Copter-3.6-dev (dodeca is not include in Copter-3.5.x) then you can just load any multicopter binary (i.e. Quad) and then set FRAME_CLASS to 12 and reboot the flight controller and it should be a dodecahexa copter. If you’re using the mission planner, then on the Flight Data screen’s status tab (bottom left) you should see outputs for ch9out, ch10out, etc. now you might need to also set SERIALx_PROTOCOL to 2 (i.e. SERIAL0_PROTOCOL if connecting with a USB cable, set SERIAL1_PROTOCOL if connecting using a telemetry radio connected to the flight controllers’ Telem1 port, etc) and reboot the board to see those higher level outputs.

Dont worry about the slow reply as I am sure you are busy. Your help is really appreciated. Thank you.

Gosh I wish I’d read this thread more closely before I flipped my copter over! My fault, should have realized it wasn’t responding right but I couldn’t figure out what was wrong. Initially I was using Main 1-6 and Aux 1-6. I figured out that I needed to change it to 1-8,1-4, but I was caught off guard by the motor order, although I could see that the motor test was wrong, I just assumed maybe those designations a,b,c etc rather than 123 were not updated since it was a new frame type. The motor ordering has, in the past, coincided with the PX4, any reason this is different? Perhaps I’m forgetting that AC can be loaded on several controllers, while Pixhawk can support PX4 and AC… Not directly related though… Hmm. Any way thanks for the info and all the hard work.

In the future I’d like to know how to verify motor mixing info and servo out to motor mapping or whatever that’s called. I assumed “33” motor 1 for example, would always correspond to the right motor on a hexa, and didn’t realize they were sort of arbitrary. But obviously they must be because I had to put incorrect motor numbers in my servo out params to correct the motor wiring problem I had when going from PX4 (which I couldn’t get to work by the way- only top motors would spin) to ArduCopter. Anyway where is this information saved? It’s in the firmware right? Do I need to download the source and everything in order to read that and change it if necessary, or is there a quick way I could do that if I needed to say… Remove yaw mixing for a v tail, or make a custom airframe?

I know this is long thanks and sorry!

1 Like

I didn’t see it in the release notes of 3.6, so I assume that dodeca hexa did not make it into 3.6?

I do not use 3.6 yet but DodecaHexa is documented in Wiki:

Frame class is 12 and fonction of Servo 9 to 12 can be assigned to motor 9 to 12.

Marc

The dodeca-hexa copter made it into Copter-3.6 and has been flight tested by Altigator (an ArduPilot partner) so it definitely works. I’m hoping/planning to get the wiki updated to add the wiring info. the motor output connection order is actually easier/better than it is for most frame types. It’s front-top motor is #1, front-bottom motor is #2. right-top motor is #3, right-bottom motor is #4 etc.

finally got some time to implement this on my dodeca hexa: as I have 2 front-top motors (a left and right top and bottom and only 1 side if you understand what I try to say) I start numbering following the clock: right front top #1, right front bottom #2, right top #3, right bottom #3… to end with left front top #11 and left front bottom #12… is this correct? many thanks

1 Like

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