I have setup a quad using the Matek H743-Slim FC and an M8N GPS module w/ Compass. I successfully get the GPS communicating with the FC. However, the compass is never detected.
I have the GPS/Compass module connected as follows:
GPS Gnd → FC G
GPS VCC → FC 4v5
GPS TXD → FC Rx2
GPS RXD → FC Tx2
GPS SCL → FC CL1
GPS SDA → FC DA1
Since everything I’m seeing indicates the compass should be autodetected, and it should be on the I2C bus, I’m at a loss on what else to do to troubleshoot this issue. Here is a picture of the GPS module in case it helps.
If anyone can point me in the right direction on this issue I’d greatly appreciate it.
Just for grins, try swapping the CL and DA connection. Maybe something is mislabeled. It is not harmful to do so - worst case, it still won’t communicate.
Thanks for the suggestion. I have connected it both ways, neither of which worked as expected. That’s when I cracked open the GPS module and snapped the picture to verify the wires.
This FC has the 4v5 pad for the GPS. To my knowledge this pad should be powered from the USB when connected to the ground station computer…Mission Planner.
For the record, here are some of the troubleshooting steps I’ve taken so far:
- Based on the 4v5 pad, I have tried with the FC just connected to the USB, but have also tried with a flight battery plugged in, minus props of course.
- Swapped the SDA / SCL wires connected to the FC.
- Looked for Mission Planner parameters that might affect I2C or Compass.
- Enabled Compass_External → set to 1 instead of the default 0.
At this point I’m at a loss on what else to check. In another thread regarding someone having issues with autodetecting the compass they mentioned compass chip support. I’m really not sure how to go about verifying if the compass chip on this module is supported or not. Help there would be appreciated if someone is knowledgeable.
Any other ideas?
Check continuity on those wires and check your connection and soldering job. I2C is not tolerant of poor connections.
I just connected a similar module to an H743-Wing v2 without issue.
It will work on USB power alone.
What make/model of GPS/Compass module is it? Holybro?
Make sure COMPASS_ENABLE=1
By this are you meaning to say verify the continuity of say where the wire is attached to the FC and where the wire is attached on the GPS module?
On thought I had was to verify the SDA / SCL were actually sending data, but have no idea how to go about that.
The GPS module was something I had from a quad I built 5 years ago. I really don’t recall the make, and of course the module is just one of those very generic looking GPS modules on a post. Not sure how to determine make/model at this point.
Not sure that really helps much…
Continuity - check end to end with a multimeter set to continuity or resistance mode. You should get very low to no resistance detected.
You’d need an oscilloscope to check for data.
According to this Amazon listing, the compass is a HMC5883L, which is very common and well supported.
I cracked open the GPS module and checked continuity from the pads on the board to the harness connection on the FC. They checked out.
Here is the best picture I could get of the solder connection, without some major disassembly.
I have enabled compass 1 via the UI and rebooted, in fact I tried enabling all three compasses via the UI. Should I set this directly in the Full Parameter list instead of just via the UI?
Unless you have done something very strange, the compass should be auto detected.
As luck would have it, I am working on connecting a discrete HMC5883L to that H743-Wing as we speak. I will reply soon to let you know how that goes.
HEY!!! It was the COMPASS_ENABLE param. That worked!!! I was under the impression the UI Use Compass 1 / 2 / 3 were toggling this. I set COMPASS_ENABLE to 1 and it found it. Thanks for the insight.