I’m experiencing an issue with inconsistent satellite acquisition on my drones, and I’m hoping someone here might have some insight or suggestions.
Setup Details:
-GNSS Receiver: Here 4 (latest software version: 1.14.5AC6523C, u-blox 1 HW:00190000 SW: EXT CORE 1.00 (49f616))
-MCU: Matek H743
-Firmware: Ardupilot 4.4.4
-Parameters: Identical across all drones
-Drones on the ground
Problem:
Sometimes, some of my drones won’t acquire more than 15 satellites (GPS_GNSS_MODE = 0), even though another drone sitting few meters right next to it (with identical hardware, firmware, and parameters) gets 30+ satellites within 5 minutes. This issue seems random and isn’t tied to any specific drone. For example:
A drone that struggles to acquire satellites one day may perform perfectly the next day, acquiring 30+ satellites. On the other hand, a drone that worked fine might struggle the next day.
Additional Observations:
-All drones have the same configuration and are tested under similar conditions.
-I’ve ruled out location-specific interference, as the issue persists across different environments.
These are the parameter for ArduCopter and Here4 of one drone with 30+ satellites and one drone with 15 satellites: params.zip (12.2 KB)
During the second log of the drone_1 (drone1_log_2_coldstart) after few minutes of only GPS and GLONASS satellites which started automatically. I manually selected GALILEO and then BeiDou GNSS and press coldstart button in the U-Center and after few minutes it acquired 10 satellites of GALILEO and BeiDou. During this process I change multiple times between the GNSS configuration to test what might be the problem. In the end I turn on GPS, GLONASS, GALILEO and BeiDou and it acquired 25 satellites. So I suspect there might be some problem during the configuration process between Arducopter and Here4.
I’m hoping someone might have some suggestions or even better a solution.
Recently I am getting a notification there is a new 1.14.4.xxxx version available. But I haven’t got a chance to upgrade it. Not sure if it will help your problem.
The number of satellites (beyond a lower limit) is not really a good indicator. Ignore that and instead check HDOP < 1
Change GPS_GNSS_MODE values to select only two constellations, or at most three.
Usually GPS plus one other is best. I avoid Beidou since it usually gives a poor HDOP despite a high number of Sats, in my region anyway. GPS + Galileo is probably the best choice.
Check which combination gives you the lowest HDOP in the shortest reasonable time from a cold boot.
The next test is GPA.Delta in logs, which should be a solid 200ms, if it is varying a lot then you have too many constellations selected.
Earlier GNSS units did not always suffer from these issues because they could not recognise all the newer constellations, and so were not overwhelmed by the all the signals and required maths.
I would also seriously consider updated to latest stable firmware.
That PR is merged, you need to use a later version. I’ve got Here4 working OK with Ardupilot 4.5.7 (latest stable)
Also use BRD_BOOT_DELAY,3000 to allow CAN devices to boot before the flight controller starts trying to interogate them.
Hi, I used the BRD_BOOT_DELAY,3000 and used the latest stable version for the Ardupilot copter 4.5.7 and latest stable version of Here4 FW 1.14.5AC6523C however I can’t set the GPS_GNSS_MODE on F9P module. No matter the GPS_GNSS_MODE value the GNSS configuration of the F9P module seen for u-center is always the same.
Can you share the parameters related to GNSS settings for flight controller and Here4 so I can try with those parameters?