Pi Pico + GPS - "gpsEnabled" stays false

I’m happily running a Pi Pico with a Waveshare SX1262 LoRa node. I now want to add GPS, and I have attached a QU728F module.

I have attached the GPS module to the Waveshare as follows:

White (1 Hz) - not used
Red (Vcc) - pin 39
Blue (Data out) - pin 1
Green (Data in) - pin 2
Black (Ground) - pin 3
Yellow (Power enable/sleep) - not used

The GPS module seems happy, and after a while I get a blinking green light indicating GPS lock.

However, no matter what I do with the Meshtastic config (using the Web client or the CLI), “gpsEnabled” stays at “false”.

I have also tried reversing pins 1 and 2 - both physically and in the Meshtastic config.

I have seen others report similar problems, but so far I haven’t spotted anyone offering a solution! Any thoughts, please?

“GPS enabled” is deprecated now, --set position.gps_mode ENABLED or --set position.gps_mode 1 should be used.

There is an open issue to add this to the documentation.

Did you try redefining your data pins in Position options?

Yes, I did. Also tried swapping the pins physically.

Thanks. So does that mean the following is correct?

"position": {
    "positionBroadcastSecs": 120,
    "positionBroadcastSmartEnabled": true,
    "fixedPosition": true,
    "positionFlags": 811,
    "rxGpio": 2,
    "txGpio": 1,
    "broadcastSmartMinimumDistance": 100,
    "broadcastSmartMinimumIntervalSecs": 30,
    "gpsMode": "ENABLED",
    "gpsEnabled": false,
    "gpsUpdateInterval": 0,
    "gpsAttemptTime": 0,
    "gpsEnGpio": 0

If so, what else can I try in order to get GPS working?

fixedPosition should be false.

Hardware wires should always be:
Rx → Tx
Tx → Rx

Everything else looks fine. Not sure if gpsMode cares about quotes being around ENABLED.

Okay - I hadn’t spotted fixedPosition - now corrected. That was from an earlier experiment to see whether fixed position would work. It didn’t, and perhaps that is a clue?

I can now see that the node is sending a position packet periodically, as I’m seeing those from another node. Using the iOS app on another node the position packet appears in the Mesh Log, but I don’t know whether there is way to examine what the packet contains. There is no position reported on the iOS Nodes list or Mesh Map, so I assume the pico is sending an empty position packet.

What else can I try?

Update: by doing --setlat, --setlon and --setalt on a single line (RTFM!), I have now got fixed position working. That’s all I need, as this node is not intended to be mobile, and I can dispense with the GPS dongle.

So - my problem has gone away.

It would still be interesting to know why it wouldn’t work, though!

Can we have it back, please? It would be handy to be able to disable the GPS device by hardware pin, not just the software command.

This was about the software setting, which now just has another option “not present”.

I was able to test both my gps units using a separate micro Python script in thonny. I raised an issue which has been moved to discussion about fixing the gps issue in the firmware.

I suspect functionality is there but the changes in Firmware and different parameters set via web and app (android in my case) has become incompatible.