neo 6m gps configuration

Hello all and happy holidays to all.

I don't post much because I usually research as much as possible to get and answer and figure things out. Have been using Arduino a couple of years now and also a RPI3B but no where close to good (probably due to age) lol.

After several days of looking I can't seem to find a way to read the configuration data from newly acquired neo 6m gps module, or how to change any of it after I do read it. If I could just get pointed in the right direction or some examples it would be greatly appreciated. Not using windows only raspberry pi and arduino.

Thank you all in advance and again happy holidays

Download and use the U-Center Windows application that Ublox provide for reading and setting the configuration of their GPSs.

Sorry forgot to add. no windows pc just raspberry pi

The NeoGPS library is the best for Arduino purposes. Are you trying to use the GPS with an Arduino? Why do you say "just raspberry pi"?

raspberry pi is my only pc so cant use windows Ucenter. I want to view config data and change config of neo 6m

U-Blocks has its own forum, why are you posting here?

wow ok wont ask again seems you all are to upidy for people that would like to learn

Did you notice that this is the Arduino forum? For questions about Raspberry Pi, we recommend that forum.

Ucenter is the application that Ublox provides, for your purpose. I have never heard of an Arduino program that comes even close to what Ucenter does.

Its possible someone has written something to do that for the Pi, so you need to ask in the Pi forums.

Or ask in the Ublox forums.

All the configuration information and how to set it for the GPS is actually in the GPS data sheets .......

Hello mrmom96.

Don't be fussed about the bluntness of some responses.

Please stay in the discussion -- I want to find a solution to this too.

U-blox, Arduino, RaspberryPi.....there's a natural overlap across these products. We're using electronics to do interesting and fun things. Who cares which forum is used? People are free to not read the discussion.

John.

the thing is, actual factual U-block GPSs are as common as Rolexes, and the majority are clones. many clones do not respond to anything sent to them. all TX and no RX. you may be flogging a dead horse, sending commands to a clone.

NissanCedric: Please stay in the discussion -- I want to find a solution to this too.

As has been mentioned Ublox already provide a utility for reading and writing the configuration for their GPSs, and its very good.

NissanCedric: Hello mrmom96.

Don't be fussed about the bluntness of some responders.

Please stay in the discussion -- I want to find a solution to this too.

U-blox, Arduino, RaspberryPi.....there's a natural overlap across these products. We're using electronics to do interesting and fun things. Who cares which forum is used? People are free to not read the discussion.

John.

If you want to configure the GPS baud, report rate, and NMEA sentence enabling/disabling with an Arduino, you can use the packet anatomies as shown below:

const char CFG_MSG[NMEA_LEN] = {
 0xB5, // Header char 1
 0x62, // Header char 2
 0x06, // class
 0x01, // id
 0x08, // length LSB
 0x00, // length MSB
 0xF0, // payload (NMEA sentence ID char 1)
 0x00, // payload (NMEA sentence ID char 2)
 0x00, // payload I/O Target 0 - DDC           - (1 - enable sentence, 0 - disable)
 0x00, // payload I/O Target 1 - Serial Port 1 - (1 - enable sentence, 0 - disable)
 0x00, // payload I/O Target 2 - Serial Port 2 - (1 - enable sentence, 0 - disable)
 0x00, // payload I/O Target 3 - USB           - (1 - enable sentence, 0 - disable)
 0x00, // payload I/O Target 4 - SPI           - (1 - enable sentence, 0 - disable)
 0x00, // payload I/O Target 5 - Reserved      - (1 - enable sentence, 0 - disable)
 0x00, // CK_A
 0x00  // CK_B
};

const char CFG_RATE[FREQ_LEN] = {
 0xB5, // sync char 1
 0x62, // sync char 2
 0x06, // class
 0x08, // id
 0x06, // length LSB
 0x00, // length MSB
 0x64, // payload measRate (ms) 1
 0x00, // payload measRate (ms) 2
 0x00, // payload navRate (cycles) 1
 0x00, // payload navRate (cycles) 2
 0x01, // payload timeRef 1
 0x00, // payload timeRef 2
 0x00, // CK_A
 0x00  // CK_B
};

const char CFG_PRT[BAUD_LEN] = {
 0xB5, // sync char 1
 0x62, // sync char 2
 0x06, // class
 0x00, // id
 0x14, // length LSB
 0x00, // length MSB
 0x01, // payload portID
 0x00, // payload reserved0
 0x00, // payload txReady 1
 0x00, // payload txReady 2
 0xD0, // payload mode 1
 0x08, // payload mode 2
 0x00, // payload mode 3
 0x00, // payload mode 4
 0x00, // payload baudRate 0 (LSB)
 0x00, // payload baudRate 1
 0x00, // payload baudRate 2
 0x00, // payload baudRate 3 (MSB)
 0x07, // payload inProtoMask 1
 0x00, // payload inProtoMask 2
 0x03, // payload outProtoMask 1
 0x00, // payload outProtoMask 2
 0x00, // payload reserved4 1
 0x00, // payload reserved4 2
 0x00, // payload reserved5 1
 0x00, // payload reserved5 2
 0x00, // CK_A
 0x00  // CK_B
};

U-Blox actually has relatively good documentation on how to create packets to configure other features.

I agree with Stewart. Arduino is a poor platform for exploring GPS; u-center is far better as it's designed for just that purpose.

There is an open source tool set written for Linux -- GPSD ( https://gpsd.gitlab.io/gpsd/index.html ). This interprets the NMEA sentences and displays the data in a meaningful way.

I've got it going easily on my Pi but it's hardly user friendly. Requires Linux skills.

Having said that, u-center is not a suitable platform for a practical GPS application if you need portability or a small package. So it comes back to using an Arduino board. I'm interested in exploring PowerBroker's code.

John.

NissanCedric: I'm interested in exploring PowerBroker's code.

While NeoGPS is a better library, it's extremely difficult for a non-expert to follow. For that reason, I wrote this library, which is where I pulled those packet arrays from as posted previously. It's relatively straightforward - if you have any questions, please post them here.