Tracker-4.6.0-beta1 available for beta testing!

Tracker-4.6.0-beta5 has been released for beta testing and can be installed using MP or QGC’s beta firmwares links. Alternatively it can be manually downloaded from firmware.ardupilot.org

The changes vs -beta4 are in the Release Notes and copied below:

Changes from 4.6.0-beta4

  1. Board specfic changes
  • MFT-SEMA100 compass orientation fix
  • SpeedyBee F405 AIO support
  1. Driver bug fixes and enhancements
  • Bdshot locking issue fix for slow boards that could cause the flight controller to crash
  • BMP280 barometer error handling during init improved
  • CADDX gimbal RC update rate fixed
  • Hexsoon 77G and 24G radar support
  • IE FuelCell generator data rate increased
  • IIS2MDC compass support
  • LD19/LD06 proximity sensor data length sanity check fix
  • RC output cork/push fix to avoid potential motor knocking
  • SBF MosaicX5 packets with invalid length ignored
  • SPL06 barometer accuracy improvements
  • Ublox M10 configuration fix
  1. Plane specific fixes and enhancements
  • Tiltrotor motor check fixed used in throttle control handover from VTOL to forward flight
  • Improved QAssist and VTOL mode recovery from bad attitudes
  • Fixed rudder output in VTOL modes
  • Added fix for indecision in the roll controller close to inverted
  • Ensure tiltrotors use consistent fixed wing and VTOL rates
  • Clear inverted control flag on Q-mode entry
  • Auto-deploy landing gear on all fixed wing landings when enabled
  • Prevent learning bad ARSP_RATIO values when not flying
  1. Rover specific fixes and enhancements
  • Lua bindings for Follow mode
  • WATER_DEPTH mavlink message rate fix
  1. Parameter description improvements
  • ADSB_LIST_ALT param desc improved
  • Alphabetised type params for CAN, Mount, OptFlow, Proximity, Rangefinder, Serial Manager
  • Copter’s battery failsafe action gets “Brake or Land”
  • LOG_FILE_BUFSIZE units fixed
  • MOT_THST_HOVER range fixed
  • SERIALx_BAUD value added for PPP networking
  1. Bug Fixes and minor enhancements
  • Arming check for EKF3 velocity innovations
  • Copter’s LOG_BITMASK includes PIDs by default
  • DO_SET_ROI_LOCATION mission command support
  • MCU min/max voltage logging fix
  • MIS_OPTION parameter handling fixed

There will be one more beta but we’re getting close so all testing and feedback is greatly appreciated!

Just wanted to comment that from what I gather, the ardupilot tracker does not have RSSI based tracking and it is a very convenient feature to include.

I have used RSSI based tracking or traking correction in all my trackers. For the copters, I have built a simple, servo based tracker (Before, I used stepper motors only), I did not yet implement GPS based tracker, because I am trying to figure out how to transmit GPS mavlinnk data without MP and without Pi station from copter to tracker.

But I implemented the RSSI based tracker, and I feel there is virtually no need to have GPS tracking. I think it would really be a great idea to implement that feature in ardupilot trackers.

The RSSI tracking is very efficient for 5.8 GHz antennas in the range 12..23 dbi. Beyond that, i.e. for much more directional atennas, the tracking must be supplemented by GPS tracking, so that it becomes RSSI correction, not tracking, because you risk loosing completely the signal and also it is very easy to go beyhond the main lobe and recovery and understanding that it happened requires a rather complicated algorythm.

For copters and low-to-medium range flights (1 km.. 40 km.) RSSI tracking without GPS is very viable option. It does not work well at all for close flights, and fooling around the home base, or overhead.

I enclose a program for arduino nano which the developpers may use to get some ideas for arducopter.

PICO_TRACKER_2025_08.txt (18.7 KB)

Very few explanations:
The nano reads PPM stream from a RC (Nano has 1 Serial, so for debugging I had to leave it, and use the old PPM), and is controlled through 4 buttons and 2 sliders.
The antenna positioning is done in pulse uS, there are no degrees, etc.
There are 3 modes, direct mode where sliders determine position of the antenna, semiautomatic, where you have to press two buttons to do RSSI scans, and automatic mode, where nano determines when to do which scan.

The RSSI tracking makes a scan, moving the antenna from one position to another and records the RSSI values provided by the VTX receiver into an array.

The RSSI based tracking is based on two subroutines,
void Scan (int Servo_ndx, int Servo_From, int Servo_To, int RSSI_limit, int steps_beyond_limit)
Servo_ndx is the Servo, azimut or elevation
Servo_From, Servo_To are the offset from the current Servo position
RSSI_limit is value which stops the scan both to the left and to the right, i.e. it does not allow the RSSI value to go too low. This is especially iportant to prevent short bad video frames when reaching low RSSI values.
steps beyond limit sets the number of extra scan steps which are done after the RSSI_limit is reached.

void Scan_Analyze(float percent)
goes through the Scan_RSSI array, and determines which Servo positions provided the best RSSI values, it is not just one value, but we take “percent” of the total steps to create a range, then we eliminate two outliers from both sides, and then take the mid position of the remaining best RSSI values.

In my case, absolute RSSI min is 80 and max is 240.

1 Like