Design of Combi-Copter control setup.

OwenN

Active member
I am looking at running a Radiomaster t16Sx to a s-bus receiver, and into a Matek F-765 Wing, plus an arduino board.
I am told that an Arduino MKR Zero would be best.

I want to run ArduCopter firmware.
I need to discuss control options, but the Ardupilot-Discuss group are a bit close-mouthed.- possibly they are all post-graduate-level embedded systems developers.
They are not very chatty to the "Plebs"-rather like my old boss! :)

I haven't read the Arducopter docs cover-to-cover, but I assume any channels can be multiplexed, and the main copter channels can be gyro-assisted to various levels.
I need to add another "Pot board" to the transmitter to give me 6 pots in total, plus 7-sector led readouts for each.
I have set 11 controller output channels- the 765 has 12, so that is OK.
I will explain the general concept.
transmitter (7) - Gyro bias-pot- set level of assistance. I don't know if this is an acceptable input.
(8) - orbit, autopilot.-switch-standard.
(9) - Elevator pitch bias - pot- mixer control from elevator to fore and aft pitch full linkage.
So pitch can be either elevator-out, mixed elevator and cyclic pitch, or all cyclic pitch and no elevator. -pot- variable mix.
- Not sure whether variable mix is acceptable.
(10) Elevator Macro Trim.- elevator can be biased up substantially to counter cyclic down-pitch.
-pot- This is for normal helicopter-mode forward travel.
check whether this is allowed.
(5) rotor rpm upper limit. - free running is 4000 rpm, but can be pulled down to 2500 rpm for cruise.
- check whether this is allowable.-pot-
(6) Thrust rpm/throttle- as per normal motor throttle.-pot-
(11) Feathering wing. -switch- The copter has a supplementary wing and tail propeller.
The wing follows a flow direction paddle, plus other mixed inputs- angle of attack, elevon, aileron style
Each side is separately pivoted. This is a PWM pass-through to the Arduino.
(12) wing pitch trim. -pot- -PWM pass-through to Arduino.

(Numbering in order from the diagram- normal joysticks are 1-4)

Arduino inputs:

Rudder pass-through. from yaw. PWM
Pitch PWM pass-through
Roll PWM pass-through
feathering wing PWM pass-through
3 sets of pots:
1) air direction.
2) zero trim.
3) scaling trim.

Arduino outputs:

Wing servos, 180 degree, 2 of.
3 lines to air direction pot,
3 lines to wing zeroing pot
3 lines to servo-pot scaling, to match up servo and paddle travel.

I suppose 1 line is test voltage and current,
1 is total voltage drop,
1 is variable voltage drop.

Arduino functions:

1) Run the airflow paddle tracking and PWM output to winglet servos.

2) Set 2 changeover points based on paddle angle to chassis.

1a) Slow speed mode- mix in rudder and pitch to the winglets, in elevon mode-for
flatter low speed manoeuvring.
2a) Level flight mode- mix in roll to the winglets for aileron mode, add wing angle of attack.
This is not really necessary, as rotor roll authority is sufficient.
3a) In between-just feathering, no control mixing.

This may be a bit overwhelming for most hobbyists, but if you are up to it,
I would like to :
1b) Confirm whether the variable mixing functions are allowed.
2b) See whether other flight controller/micro computer'/firmware combinations are better.
Arducopter has a lot of useful functions, and a good gyro/gps/nav section.
The F765 has all the power and outputs I could want.

I hesitate to start delving into the firmware, even though I have the code, as there are 700+ thousand lines of code,
and it is tricky to debug, compile, and test properly.

It is monolithic, and everything uses common memory.- there are some Sandbox options for development.

I am set up for C++ programming, but need tons of practice!
I got all the environment setup stuff from the Ardupilot Wiki.

- that is the sole advice from the Ardupilot-Discuss people (read, practice), but I would like to see if there are options.

There is a simpler Arduino-based system that would run a helicopter, and I could get the code for that, too.
It doesn't do GPS or nav, and 6-axis capability is doubtful. It does do simple gyro.

It is not as huge as Arducopter, but also Arduino boards are much lower spec, and have limited eprom and addressable space.
You cannot load all the nav stuff on there.

I have added some design images so you can see what the aircraft looks like.
 

Attachments

  • box diagran of Nano hookup #2 7-9-21.jpg
    box diagran of Nano hookup #2 7-9-21.jpg
    602.7 KB · Views: 0
  • Rework windows  and tail 7-09-21.jpg
    Rework windows and tail 7-09-21.jpg
    309.5 KB · Views: 0
  • Combi-copter design 27-08-21.jpg
    Combi-copter design 27-08-21.jpg
    3.7 MB · Views: 0
Last edited:

JasonK

Participation Award Recipient
quickly looking over the traditional helicoper configurations ->
https://ardupilot.org/copter/docs/traditional-helicopter-parameter-list.html

I do not see settings for you tail/wing bits, but it does have the stuff to support a dual rotor setup.
One thing I see in your logic is a 'gyro help amount' slider, that isn't exactly how a FC is setup, you tune the FC to the plane/helicoper [which is setting up gyro filters, PID loop settings, etc], and then the FC is 'configured', your not modifying the stabilization setting while flying [except perhaps during initial setup and it is more then a single 'gyro help amount' ]



here is the list of supported 'types':
https://ardupilot.org/copter/docs/common-all-vehicle-types.html
Synchropter appears to be the closest to what you can get with it

but it doesn't appear to support the 'extra' bits on your craft, which would require setting up a more complicated model type to have the 'hover' and forward travel modes.
 

JasonK

Participation Award Recipient
Embedded firmware, especially firmware that needs to be fast and not have random failures is way more likely to have fixed (global) memory allocations then your business application software. Dynamic allocation of memory + the small amount of RAM [comparatively] that most embedded systems have, having allocation issues can be a problem. There is also the performance of not needing a pointer to a pointer to a value vs just being able to access the value needed. There are a whole lot of small things that add up (also many of these firmwares started out on systems _way_ less powerful then the current systems... I think some of them may have ran an an Arduino Mega in their early renditions).

It might be possible to setup the needed mixing to get your tail motor, elevator, rudder, wings to all work with the flight characteristics of your copter, but it would at least take some flight modes so the FC would know the difference between 'hover' and forward flight [where it flies more like a plane in controls]. Your description also seemed to point to a difference between fast forward flight and slow forward flight, which is likely getting into 3 modes, or a continuous variation between modes.

You could try out this FC software written by @Rcjetflyer2 and you would just need to setup your PID values and write your own mixing code.
https://www.rcgroups.com/forums/sho...OL-Teensy-Flight-Controller-and-Stabilization

it was even used to create a VTOL, so I suspect an appropriate mixer could be written for your use case:
https://forum.flitetest.com/index.php?threads/vtol-f-35-parkjet-free-plans-stls-and-code.67750/