M8Q-CAN Indicates CAN connection but not recognized in MissionPlanner

I have been churning over this issue with the M8Q-CAN GPS unit and haven’t been able to find anything that would help me get connection to it. The M8Q displays a slow flashing blue light which indicates its connected/communicating over CAN and I am getting the green flashing light for GPS lock. However, in MissionPlanner (v1.3.75) I get the No GPS and Compass health warning. The compass doesn’t appear in the setup. When looking at hardware IDs I get a parameter name "FRSKY_DNLINK_ID that is a UAVCAN BusType.

I am running Arduplane v4.1.2 and have followed configuration for it from ArduPilot reference and double checked wiring. I am using a Matek F765-WSE which has a CAN port that supports the default wiring.

I’ve spent hours going in circles with checking and trying different parameters. What am I missing and/or what should I try next? Any suggestions would be appreciated.

I have attached my parameters below.
M8Q_NoShow.param (19.8 KB)

Check GPS_GNSS_MODE, the parameter is set to 0 (zero), so no service is used.

Mate,
Follow below, and if doesn’t work M8Q required re-configure. Guide is on Matek site under m8q forums support and procedure is not easy, pain in a butt. I couldn’t do it and bought the new gps.

  1. Reload the firmware on f765. Must load quad copter or other firmware and then the one you want.( that will erase everything)
  2. On Matek site follow the ardupilot CAN settings. Ones you set all parameters, restart the f765. Check if it detect the gps.
    If doesn’t detect:
    3.we need to check gps firmware + default preloaded settings. By using MSP.
    Connect the gps CAN cable to MSP port( you need to cut the cable and use pins, use second cable, m8q comes with two cables). Check the f765 guide in ardupilot for servo gps pin outs. Change/ follow msp gps settings on Matek site. If MSP doesent work, get new gps or follow the guide on Matek how to re-load the firmware + re-configure the gps settings( it’s on neo gps site). Pain a butt.
    Let me know if you cannt find the guides, I will send you all the links.

set LOG_DISARMED=1 and get a log file, and post it here. The key message I will be looking for in the log is the CAND message.
I really like the Matek M8Q-CAN, and I’d be happy to help you get yours working.

also take a picture of the cabling. One common mistake is to mix up the I2C and CAN ports on the M8Q-CAN GPS. You must be plugged into the CAN port on both GPS and flight controller

Is that a typical default for that? If the M8Q hardware was recognized would that value be automatically changed to active?

Normally GPS_GNSS_Mode has a value > 0.

Does it work now when you select a service there?

Thanks for the reply Sunny,

I have reloaded the firmware for the board but didn’t do the other firmware first so I’ll have to try that. If I am able to get the GPS to connect via MSP would I be able to update/change the firmware or settings to make it work over CAN? I see that if I need to flash new firmware on the GPS then I need to connect a USB to TTL direct to the GPS. I can’t get the serial connection through the FC? I know I can do the firmware update with SLCAN if the CAN communication was working. There is always the possibility that the hardware is faulty from factory but I would rather try as much as I can before giving up on it.

GPS_GNSS_MODE = 0 is use every constellation you can find, sometimes overwhelming
GPS_GNSS_MODE > 0 is use specific constellations

@dteckreck
Try BRD_BOOT_DELAY,5000 to get this working and visible.

Here is an image of my connection between the M8Q and F765-WSE

Here is a .bin and .log file from startup. I am not seeing any indication of the CAND message but I definitely could have missed it.

I have tried changing GPS_GNSS_MODE but as @xfacta pointed out, that likely wasn’t the issue. Also, I am noticing the added delay by BRD_BOOT_DELAY but it doesn’t seem to be helping with the GPS issue. At this point I am going to start fresh with the firmware as @Sunnyfx79 suggested and hope I get feedback on my log from @tridge

Thanks for the responses so far

M8Q_NoShow.log (829.8 KB)
4 12-31-1969 4-00-00 PM.bin (548 KB)

Hello,
what we trying to test, whether it’s a hardware or software.
If MSP works, it means M8q comes with latest firmware and factory gps(m8n factory settings are all good. If MSP doesn’t work,we’ll it’s big dilemma either hardware is faulty (less likely as led showing status of the GPS) more likely m8q gps need a new firmware + factory gps settings ( tool avaialble on n series gps manufacturer ( I forgot the site URL, it’s only company and ho does m8n type Gps for mobiles and other devices)

I have the same issue with m8q in my case MSP didn’t work and I gave up following the guide how to reset all settings and firmware to factor settings ( too much work), you need to solder power, tx rx wires on m8q board for ttl connection.
I just bought the new Matek gps without CAN one model and ver happy happy with as you can use the gps on any board without having CAN interface.

More,

You have to load different firmware before the one you want for your vechile. Eg if you using arduplane, flash it with arducopter and then arduplane and then again .apj firmware from all option selections, .apj is better/faster then .hex file and has more features for Matek boards.

The M8Q was able to be recognized in MSP. I see a compass and GPS status is now No Fix. I would still like to get CAN working because I am wanting to use the I2C on the M8Q for an airspeed sensor. @Sunnyfx79 So based on your last comment then that confirms that the M8Q hardware works. I also tried some of the other cables that came with it and the airspeed sensor to make sure that wasn’t the issue. From Matek the M8Q blue CAN led doesn’t work when the newest firmware is loaded

Blue LED status can’t show communicating between CAN node and Flight Controllers since MSP was supported.

Is there anything I can actually change from here to get CAN working?

Ok. Now we know hardware is ok and it came with latest firmware as it does work in MSP.

Yes It will work in CAN mode we just have to do a bit more troubleshooting.

  1. You have to load different vechile firmware and then load the one you want in order to reset every thing on the board.

After that, follow the ardupilot CAN parameters from Matek site, restart the board and check if can detected. If not, next step is check the CAN cable output on GPS eg: positive negative, cla clxx blaaa… and check on controller side, is all cables going to right pinouts. Because it’s new board from matek (f765-WSE) and pin/cable input may be going to incorrect pin input. Match with f765wse diagram on Matek site with the gps you have.

In short we need to make sure 1)ardupilot CAN parameters are correctly defined as per Matek site. 2) all the cables coming out from CAN gps port going to right pin on the f765 CAN port.

If still doesn’t work we need to wait as I don’t have f765 WSE board ( I may have it by next week) or someone from ardu team can test.

I’ve got the same hw setup here, a MatekF765-SE with a Matek M8Q-CAN GPS.
I set it up with the parameters from your log and it worked fine, but I did find one issue. The UARTs order did not include the OTG2 2nd USB connection, so the SERIAL8_PROTOCOL=22 didn’t work. That is why using the MissionPlannner CAN interface didn’t work to diagnose the issue.
I’ve opened a PR to fix it:

meanwhile here is a binary for you to test built from that PR.
http://uav.tridgell.net/tmp/plane-MatekF765-SE-serial9.apj
Once you have that installed you will need to set:

  • SERIAL8_PROTOCOL = -1
  • SERIAL9_PROTOCOL = 22

then the MissionPlanner CAN interface should work and you can look at why your GPS is not behaving. Your wiring does look correct.

@tridge Thanks for taking the time to generate that fix for me. I see the two COM ports but using both Mission Planner and UAVCAN GUI it recognizes that there is a way to communicate but there are no CAN nodes identified. Am I right is thinking this points to a connector/other hardware issue with the F765 or the M8Q? Are you able to use the Mission Planner CAN interface to check on the CAN port/node?

@Sunnyfx79 I performed the firmware loading as described and saw no change. I checked the pinout again and that all looks good. Also, @tridge comment on his hardware working and the pinout being correct supports that.

The easiest way forward is to just use MSP and the I2C port on the FC instead of the GPS but it still bugs me that it doesn’t work.

there seems to be an issue with the MissionPlanner DroneCAN/UAVCAN support at the moment.
Please try this tool instead:
https://firmware.ardupilot.org/Tools/CAN_GUI/
Make sure you have:
SERIAL8_PROTOCOL -1
SERIAL9_PROTOCOL 22

After you tick the “local node ID” checkbox, you should get a screen like this:

If the GPS shows up (f303_MatekGPS for me in the above) then you can double-click it to change parameters or firmware

Yep, that is the what I am using and I get no nodes for my setup

that is very odd. It can’t just be the GPS that is bad, as you should at least see the MatekF765-SE show up as node 10.
Just to be sure, can you send me your new params with my fixed firmware? The behaviour is matching having CAN_SLCAN_PORT set incorrectly

F765_Dev_Params.param (19.7 KB)