Post

Winter Updates and Upgrades

Since flying the spiroid winglets in my last post, good flying days have been very far and few between. In the meantime, I’ve been updating and upgrading some of my existing models.

During the Beacon RTH development phase I was trying out the newly released Matek Systems mR900 radio modules with mLRS firmware. mLRS is similar to ELRS in that it utilises LoRa RF modems for communication, but it has been developed to be optimised for over-the-air MAVLink communications, therefore providing better performance for MAVLink comms than ELRS MAVLink mode. I’d previously tried mLRS using some DIY 433 MHz modems, but they were unusable and I never figured out the cause, although it was likely problems with the hardware as the link stats showed total link dropouts throughout flight with no other signs of RF problems. The Matek mR900 and mR24 (for 900 MHz and 2.4 GHz respectively) are the first COTS mLRS-specific hardware available on the market, so I was keen to try out mLRS again.

With ArduPilot systems, there are two basic modes you can use with mLRS firmware. The first is as a Sik telemetry analog, providing a replacement GCS downlink for old telemetry radios of questionable performance. The second and more common mode is as a full RC replacement for your aircraft, where the mLRS module is used in the transmitter expansion bay similar to ELRS, TBS Crossfire, or Dragonlink. My first tests were as a GCS downlink replacement for my old 433 MHz Sik radios.

I replaced the air node with a standalone mR900-30 and used the mR900-30-TX with mLRS’ Sik firmware version connected to my GCS via USB. Running at a symmetric 150 mW, performance was noticeably improved compared to my old 433 MHz Sik radios (which ran at a claimed ‘1000 mW’…). Often, my 433 MHz radios would struggle to maintain connection even when in line of sight flight at less than 500 m separation, but the mLRS link didn’t suffer any noticeable data loss. The Matek transmitter module has a bluetooth radio built in for MAVLink forwarding between the aircraft and GCS without the need for USB, so I reflashed it with the non-Sik firmware variant and added an external power plug to the board. Now, the ground modem can be powered directly from a battery and placed in a location which is RF-advantageous away from the GCS, but the GCS can still connect to the aircraft as if using normal Sik radios and performance is unaffected.

After gaining confidence in the link, I replaced my existing FrSky R9 setup with the mLRS radios for RC. There are additional advantages in doing this, including the ability to use the Yaapu telemetry script on my transmitter. The bluetooth functionality works as before, so the GCS can still wirelessly access all downlinked MAVLink messages and issue commands. Of course, there is less link redundancy in removing the dedicated RC and telemetry links, but for flying in a rural field with a benign EM environment this is not a significant concern.

Doubling up on RC links Doubling up on RC links

Yaapu telemetry x mLRS Yaapu telemetry x mLRS

Control setup Control setup

To complicate matters, ArduPilot has only started to support native RC PWM input via MAVLink packets in the current beta/dev 4.6.0 versions, called RC_CHANNELS in MAVLink. Prior versions will have to upgrade or use the workaround of RC_OVERRIDE packets. Both are supported in mLRS but I upgraded to ArduPlane 4.6.0-beta to compare the implementations, and also compare the results against SBUS input. Below, I show the RC2 input (elevator stick) received by the aircraft and recorded in the log for the three input methods. Each test simply consists of several cycles of maximum stick deflection, with approximately 1 second between max and min, to observe the effect on the RC input signal. Clearly there is very little difference in the results and nothing that can’t be apportioned to my manual inputs, so any method is suitable for RC control. Watching the control surface response on the aircraft when in Manual did show more movement jitter for both mLRS tests when compared to the SBUS test, so low level Manual/Acro modes might be better avoided with mLRS. As I only plan to use mLRS on vehicles with solely higher-level modes including FBWA and cruise, this isn’t an issue.

Elevator PWM input comparison Elevator PWM input comparison

As with other LoRa-based links, link performance was excellent. As a quick test, I increased the link separation to 3 km and back and plotted the RSSI results below, using a symmetric 100 mW output power. The lowest recorded RSSI at 3 km was 200 MAVLink units, which is about -65 dBm in real units. mLRS reports an RSSI of -50 dBm or better as an ArduPilot RSSI of 254, and scales down to -120 dBm at 0, although the sensitivity in mLRS 31 Hz mode is only -108 dBm. See the table below for a summary. If going for distance, I suggest turning back once your reported RSSI is 80 to maintain a 10 dBm margin and keep your flight data flowing.

RSSI response RSSI response

 RSSI [dBm]MAVLink RSSI [0-254]
Best-50254
10 dBm link margin-9880
Sensitivity @ 31 Hz-10844
Link lostN/A255

7 inch quad

I built my 7 inch quadcopter at the start of the year but haven’t spent much time flying it. I jumped from a cheap XL7 frame to a HGLRC Rekon 7 frame for some extra space since I wanted to fit my Walksnail VTX in the frame. The rest of the system is essentially a cookie-cutter build, with a SkyStars H7 flight controller and 4in1 60A ESC stack powering four Tmotor F90s (2806.5 1300 kv BLDCs) and 7x4.2 inch props. This powertrain was based around using my existing 4S ~3000 mAh LiPos which fit almost perfectly on top of the frame and give an endurance of about 15 minutes, depending on flight profile. I flashed ArduCopter onto the flight controller and ran through a basic round of tuning, but didn’t go too in depth and just did some gentle cruise flying for a few days.

Two key problems did surface however, which were intermittent but serious GPS interference and poor control authority during low throttle manoeuvres in Acro. My M10 GPS was often struggling to acquire sufficient lock even on open ground, and would constantly lose any existing lock when flying. Assuming EM interference from the ESC and VTX, I increased the separation by creating a new GPS mount which placed the GPS far behind the frame, but this didn’t improve the performance much. I then looked at shielding the cables, and in lieu of having any on hand I wrapped the cable in kitchen foil and kapton tape. This worked surprisingly well for a makeshift solution, and satellite counts are now consistently 20+ throughout flight. I do need to go back and trim the cable down to a sensible length!

Makeshift shielded cable Makeshift shielded cable

Quad hovering Quad hovering

The Acro control issues still persist, where the quad can’t hold or change attitude when throttle is lowered to zero. I thought enabling air mode would solve this but no success, so more investigation is needed, which I will carry out when I perform a more detailed tune since the quad still shows some small signs of overtuning on the rate controllers. I also tested out my spare optical flow sensor for position holding, which calibrated fine, but didn’t work very well due to the very flat and featureless ground at my flying site. On the last good flying day of the year, so fellow modellers were at the field doing glider towing, and they were happy for me to try getting some chase footage.

Chasing gliders Chasing gliders

Until next year…

This post is licensed under CC BY 4.0 by the author.