GPS not detected on Matek h743-mini

Today I have installed a new M8Q-5883 GPS+Compass module on my 3" quad controlled by a Matek H743-mini flight controller. While compass got up and running, GPS was not detected. What shall I do to debug and resolve this issue?

Various misc info:

  • I was running Arducopter 4.1.0-beta7, then upgraded to 4.1.0-rc1, the behavior was identical.
  • An identical GPS+Compass module is running OK on my other quad running 4.1.0-beta7, but that quad uses Pixracer.
  • All GPS-related parameters are identical in both these copters (and are the defaults).
  • I have connected the module using the wiring recommended on the official webpage of H743-mini while checking the meanings of the wires beforehands.
  • SERIAL3_PROTOCOL is 5 as expected.
  • The module receives the voltage, its compass actually works, the red LED is on.
  • The blue LED that indicates 3D lock is (obviously?) off all the time. However, I am not sure it is able to lock if the flight controller have never initialized the module, and I did not keep it on for more than, say, five minutes.
  • This happens both when powering by USB only and when powering by battery.
  • I did extra checks to ensure I have not shorted the pads.
  • I have even tried the Swap option in SERIAL3_OPTIONS to see if Rx and Tx are to be swapped for some reason, to no effect.

@MaxBuzz,

Thanks for beta testing Copter-4.1.0!

Could you try setting GPS_DRV_OPTIONS = 4 (Use baudrate 115200) to see if it helps?

We’ve found some “Ublox” GPSs won’t work with the new default baud rate of 230400 so this option forces the default back to 115200. By the way, we think that GPS that have this problem are not actually UBlox GPSs but instead clones. Do you think this is possible? Can I ask where you purchased the GPS from?

I have that same FC and GPS (Matek M8Q-5883). Use the reference on the Arducopter Wiki:

Default UART order

  • SERIAL0 = console = USB
  • SERIAL1 = Telemetry1 = UART7 (support CTS and RTS signaling)
  • SERIAL2 = Telemetry2 = USART1
  • SERIAL3 = GPS1 = USART2
  • SERIAL4 = GPS2 = USART3
  • SERIAL5 = USER = UART8
  • SERIAL6 = USER = UART4
  • SERIAL7 = USER = UART6 (TX only unless [BRD_ALT_CONFIG]

So I have the GPS connected to hardware UART2 and configured on Serial 3.

@rmackay9 I have just tried GPS_DRV_OPTIONS = 4, no difference.

I have purchased two such modules from this Russian store. One of these is running in my other quad and did not require setting this option to work. Hence I assume both are either clones or originals.

@dxkemxr I did my wiring and configuration exactly this way.

That looks like the same Matek GPS module I have in 2 models. Post your parameter file.

I have attached a fresh parameter dump (without the very latest change GPS_DRV_OPTIONS = 4).

x150-2021-09-13.param (22.2 KB)

That’s the same configuration I have. To be clear:

Leave it powered for awhile. The Blue LED should start flashing in any case.

Well, apparently it was a plug connection issue. After hot unplugging and re-plugging the GPS part was automatically discovered. The next boot was also OK. Shame on me, and thank you very much for your support!

1 Like

Thanks for this hint. Since I loaded ArduCopter V4.1.1-rc1 (bc6b31bc) on my matek H743, GPS was not detected any more. I set GPS_DRV_OPTIONS = 5 and GPS was immediately detected with a 3D-Fix - even without a restart of the FC.

In mission planner I got the following messages:
28.10.2021 17:17:36 : u-blox 1 HW: 00080000 SW: ROM CORE 3.01 (107888)
28.10.2021 17:17:22 : GPS 1: detected as u-blox at 115200 baud

But strange: My seria3_baud is still at 38400? Seems to some inconsistancy.

I have the same doubt. Why does u-blox ignore SERIAL3_BAUD setting? (even without GPS_AUTO_CONFIG)
This GPS_DRV_OPTIONS hack wouldn’t be needed if it honored the baud set in parameters. Why is it so?

I figured out that the problem is not with “clones” but the way ArduPilot configures the uBlox receiver.
Every uBlox is capable of 230kbaud but AP tries to set it up by using NMEA, and if the module is only listening to ubx packets then the baud setting fail.

Setting baudrate using ubx messages like this in AP_GPS_UBOX.h solves the issue.
Note that these commands set to listen for ubx+NMEA+RTCM2 (which is the only RTCM version supported on low cost devices)

#define UBLOX_SET_BINARY_115200 "\265\142\006\001\003\000\001\006\001\022\117\265\142\006\000\024\000\001\000\000\000\320\010\000\000\000\302\001\000\007\000\001\000\000\000\000\000\276\162"

// a variant with 230400 baudrate
#define UBLOX_SET_BINARY_230400 "\265\142\006\001\003\000\001\006\001\022\117\265\142\006\000\024\000\001\000\000\000\320\010\000\000\000\204\003\000\007\000\001\000\000\000\000\000\202\334"

// a variant with 460800 baudrate
#define UBLOX_SET_BINARY_460800 "\265\142\006\001\003\000\001\006\001\022\117\265\142\006\000\024\000\001\000\000\000\320\010\000\000\000\010\007\000\007\000\001\000\000\000\000\000\012\260"

I’ve included this patch on my Journey branch

Hi all!
I also have the Matek H743 Mini in combination with a HGLRC M80 Pro (M8030 + QMC5883).

On 4.2.1 i can get the GPS working randomly (jumps from NO_GPS to NO_FIX and back) with GPS_DRV_OPTIONS = 4 with SERIAL_BAUD = 115 and SERIAL_PROTOCOL = 4 or 5.
I’ve tested on serial 3/4/6 and all have the same issue.

...
14.06.2022 01:13:13 : GPS 1: detected as u-blox at 115200 baud
14.06.2022 01:13:00 : GPS 1: detected as u-blox at 115200 baud
14.06.2022 01:12:48 : GPS 1: detected as u-blox at 115200 baud
14.06.2022 01:12:35 : GPS 1: detected as u-blox at 115200 baud
14.06.2022 01:12:23 : GPS 1: detected as u-blox at 115200 baud

I filmed the stranginess of NO_GPS, NO_FIX bug

A Beitian BN-180 works like a charm in 4.2.1.
The M80 Pro performs great using an FTDI and u-center, so the module must be ok.

I also made the changes from grone’s last post and compiled ardupilot from source. With the applied “fix” the gps does not work at all, only “NO GPS” appears.

I hope someone can help me!
Niklas

I am seeing the exact behaviour in Copter V4.2.2 (4fcfa4b2).
It keeps detecting the GPS module around every 5 seconds. I can see it switching between NO FIX and NO GPS while it’s happening.

Since neither in the discord or here to the topic what could say was the solution of the problem to exchange the gps.
Although it runs in inav, betaflight etc without problems I have now changed to a matek m8q-5883.

I have the Matek H743-Wing recently purchased with the Matek M8Q-5883. It is wired up as per the wiring diagrams and I have checked the settings as you have all suggested above.

But in MissionPlanner on the data screen, I get the GPS:NOGPS message. I do beleive the wiring connections are solid as it detects the compass element and I can go through the calibration of the compass. The GPS also flashes blue to show it has 3D lock.

Any one have any ideas…gradually losing my patience with it.

Thanks

Rob

post your parameters

Matek743.param (20.3 KB)
See param file

Which serial port is it connected to?

Its on TX/RX2, which i beleive is Serial 3