The Radio Control Link.
This was the first big headache I had. The initial idea is to have one Radio on GS controlling both the copter and plane. The GS to copter link is ELRS 2.4 Ghz for the time being. With 1 W Transmitter I had pretty good signal to 16 km, so that it is more than enough to have rock solid control for a copter at 8 km.
ELRS sucks for the transmission of data, especially transparent modem link. I probably will dump it in favour of mLRS 2.4 Ghz system later on, and for the time being I will not be able to get telemetry from the plane to GS.
The copter to plane link would be through mLRS 900 Mhz, configured for minimal bandwidth and with an expected stable range of 60 to 80 km., although this was not tested out (it is for the first time I am using mLRS, always used Dragon Link 433 Mhz for long range).
Now, I immediately ran into an issue which is not completely solved yet.
First problem was that I was not able to feed SBUS signal to mLRS transmitter, it stubborny does not want to accept SBUS. It works fine with CRSF, but I can not easily obtain CRSF signal on the copter, i.e. the ELRS receiver is configured as SBUS, but SBUS fed to mLRS did not work, although the FC accepts it flawlessly.
So, I decided to read all RC channels in lua script, reconfigure a MAVLINK2 packet with RC OVERRIDE COMMAND, and send it to the plane FC. This so far has not worked out, I spent like 10 hours debugging and trying out, the FC of the plane refuses to accept it.
So the next idea was to generate a SBUS signal on the plane side using a pi pico, feed it with a data stream from mLRS receiver which would contain the RC channels, That worked very well, and in less than 1 hour I had it up and running, no CRC, no Mavlink headers, IDs, I really think that MAVLINK sucks a lot.
The only issue now is that the stream is generated by lua script on the copter side, and there is always a risk of lua script crash. So I decided to put a pi pico on the copter side as well.
So the way it would work: ELRS transmits to copter ELRS receiver which outputs SBUS. This SBUS is connected to both copter FC for control of the copter and to pi pico on the copter side, which reads and decodes SBUS packets, and then resends then through mLRS serial link to the plane.
On the plane side, the packets are received by the pi pico, decoded, and reformatted to SBUS sentence and sent to plane FC.
I can also easily implement a diversity switch on the plane side pi pico, i.e. to have a physical ELRS receiver on the plane for close range LOS control. The failsafes must be carefully programmed so as not have a disaster (no failsafe, when one occurs)