Sorry for the long post below – I’ve never been accused of being concise…
So, some progress today. I actually bought a separate NEO-M9N board last week with an external SMA patch antenna and bench tested that with u-center via USB cable to make sure that it was working nicely before installing it in my blueboat. Worked beautifully, got extremely fast fixes, even from a cold start. I then designed and 3D printed a nice little bracket for the Taoglas MagmaX antenna and mounted it on the inside of the port module, similar to how the mRo card is mounted on the starboard side, and again tested this out in my backyard with u-center via USB cable to my laptop — again, it worked beautifully.
I then hooked it into the Navigator via its built-in UART, with power coming from the 5V side of the fuse block on the port side – and lo-and-behold, it started behaving exactly like my mRo unit within a minute of turning on the boat: tracking lots of satellites, but refusing to flip to “3D Fix”, which it had done within seconds during my earlier testing. I panicked a bit and cursed myself for not having backed up the parameters to a file before doing this, but discovered that I could “revert to default configuration” within u-center, to “rescue” it: within u-center, go to View → Configuration View, then near the top of the list on the left, select the CFG (Configuration) page, and then select the “Revert to default configuration” item. Then down below the list on the left, click Send, and it should immediately flip to 3D Fix mode (assuming it’s tracking lots of satellites).
With the non-mRo GPS now working, I started doing some testing. The GPS board I bought has a little PPS LED that blinks at 1Hz when it has a proper fix (the mRo card has this too, it blinks pink when it’s got a fix, I believe – not to be confused with the other LED on there that’s controlled by the Navigator and can blink one of several different colours to indicate the state of ArduRover’s happiness). I again turned on the boat, the GPS acquired a hot start fix within seconds (as indicated by the blinking PPS LED) while the boat booted up, and again, once ArduRover was up and running, the PPS LED quit blinking, indicating no fix. I again connected using u-center and confirmed that it was back to the way my original mRo card was: tracking, but no Fix. I was able to reproduce this behaviour several times.
Having now conclusively determined that something in the Navigator was mis-configuring the GPS (when I have some time, I aim to determine exactly what setting is causing this behaviour), I went about turning off GPS_AUTOCONFIG in ArduRover, and manually setting various things in both the ArduRover parameters and on the GPS card. For example, as others have done in other threads, I configured the GPS card to only output NMEA on UART1, then set the ArduRover GPS_TYPE to NMEA (I first tried manually setting it to the ublox protocol on both sides, but couldn’t get it to work, but may try again now that I have things more or less working), as well as playing with baud rates, etc. But having “rescued” my second GPS card by restoring default settings, I held my breath and did the same thing to the stock mRo card that came with my Blueboat – and guess what, it worked! The instant I hit “restore default settings” and clicked Send, the mRo card immediately got a 3D Fix. So I then configured it the same way as the other board, and now both are working beautifully.
So, in a nutshell: it looks to me like something in ArduRover’s autoconfig function is doing something that these M9N chips don’t like. I’d prefer to use the ublox protocol instead of NMEA, but it’s relatively easy to switch to that once things are confirmed to be working in a future update. For now, I’ll live with the less-efficient NMEA data stream. (a small tip: you can safely turn off the GxGSV messages, the boat seems quite happy without them, and they fill up about half of the NMEA ascii stream being sent – in other words, disabling GSV messages cut the total message block size roughly in half)
So, give all of that a try. It’s a pain taking the mRo card out from underneath the wifi modem – it’d be sweet if you could easily plug in a microUSB cable from the side or something. But mine is now working and back in its original spot, with a redundant unit now installed in the other hull.
Hope this helps!
EDIT: I’ve recently discovered that you can remove the GLL and GSA messages too, ArduRover doesn’t parse those. GSA in particular is a pretty large message, so removing that will cut down on your message block size considerably.