Servers by jDrones

New TriCopter-Quadplane Concept

Hi guys

Thought I’d start a thread based on a new concept I’m working on. Basically, this is a reverse tricopter using the QuadPlane code with a twist. At the centre of the frame, I’m adding a EDF unit at the centre (C.G) that will provide (some) vertical thrust in QHOVER and then rotate to horizontal position for foward flight.

I have succeeded in getting the tricopter to hover (with tail rotor facing forward). The question I have for the Dev team, how can I drive the EDF in hover so that some thrust is derived from throttle position and then rotate the EDF when switching into forward flight? The EDF will provide forward thrust in cruise. Wings not shown in image.



using plane throttle output may work, if not will require some small code changes

Thanks Peter. My understanding is that plane throttle is inactive when in QHOVER mode? Is there a setting to link plane throttle to assist with lift?

Hey, just saw this…

Only question is how can I link boost motor SERVOx_FUNCTION = 81 to plane throttle in forward flight?



it will need a small code change i think

As far as I know you might need a small chage in the code.

Thanks guys. I’m not really a software engineer so some guidance would be appreciated.

From what I can see,

  2. In FBWA or Auto -> SERVOx_FUNCTION = 70

Help please :slight_smile:

Hi Dev Team

I have setup the ArduPilot dev environment on my PC in hope to modify code. I’m seeking advice from the community as to the entry point into the code to make the correct changes.

On the surfcae it would appear that all I need to do is to change the servo assignments between BOOST and Plane Throttle between flight modes. After reviewing the documentation online regarding RC_Channel, now I’m not so sure.

I’m keen to figure this out, I just need some guidance as to the correct entry points in the code and best approach.



realflight SITL is great for testing this stuff.

Boost motor is a sensible way to go, first thing to do is check that it works for quadplanes in hover. Then assign it to just be throttle pashtough for forward flight.

probably here would be a good place, something like:

SRV_Channels::set_output_scaled(SRV_Channel::k_boost, tilt.current_throttle);

there might be one or two other thing to do but that should be a good start

Hey thanks for the advice Peter I’ll give it a go. :grinning:

I plan to rig up an EDF and test booster first. I’m hoping there’s nil torque from the EDF to worry about so should work OK with the tricopter config.

The other thing I noticed in the code is that k_boost_throttle has a scale factor applied to it, so if I was to map it to k_throttle in forward flight, I’ll need to set scale factor = 1.



the boost output in multiopter mode is done here,

ie the scaling is not inherent in the output function, you can pass it whatever you like.

Successful flight test today. EDF was driven by motor boost at 50% throttle. EDF pivot needs to be connected next. Any assistance in code updates would be appreciated :slight_smile:



1 Like

My proposed changes in tiltrotor.cpp

update motor tilt for continuous tilt servos

 if (!hal.util->get_soft_armed()) {
        tilt.current_throttle = 0;
    } else {
        // the motors are all the way forward, start using them for fwd thrust
        uint8_t mask = is_zero(tilt.current_throttle)?0:(uint8_t)tilt.tilt_mask.get();
        //Fanman - comment motor output as not needed
        //motors->output_motor_mask(tilt.current_throttle, mask, plane.rudder_dt);

        //Fanman - code for EDF throttle control when tilt
        SRV_Channels::set_output_scaled(SRV_Channel::k_boost_throttle, tilt.current_throttle);

        // prevent motor shutdown
        //Fanman - Is below required?
        tilt.motors_active = true;

To the Dev Community,

I’m seeking advise on running my modified code using SITL within RF9. I’m planning on using Tridges Big Stik TiltRotorTri rev4_AV.RFX model with custom parameters.

My question is, can this model deal with the tilt mask for my configuration? i.e. I’m not tilting the tricopter motors, rather just the boost motor.

Any tips?



you may be right, you need to set the tilt mask to something to enable the tilt rotor stuff, i suggest you enable it for motor 4 (that you don’t have on a tricopter)

You will have to add in the boost motor and tilt in realflight, should be fairly straightforward.

Thanks Peter.

Just checked out the edit function in RF9. Impressive stuff. I have a few questions about RF9;

  1. How is the main gas motor controlled? I can’t see this in the component list. Should I just ignore it?
  2. I see lift motors are assigned as per APM motor numbering so looks good. How can I assign the boost motor so it connects to APM?
  3. Once all this has been setup and assume to work, how can I monitor the booster motor output so i know its generating thrust?



its not really there, the graphics don’t match the physics.

You would assign the motor a throttle servo and give the throttle servo a input channel in the servos tab

You can check that the motor throttles up in the physics model when you move the correct Chanel on the transmitter, the physics editor disconnects ardupilot however. Best thing do is check in the mission planner servo outputs tab that it’s doing the correct thing, or put it on the HUD as a user item.

Servers by jDrones