I need GPS help


I'm interfacing a PMB-648 gps module, which has the SiRFstarIII chipset, with a PIC18f4520. I've managed to get rid of the messages that I didn't need, and now, it sends over a GLL message at 1HZ.

The problem is, is that it doesn't update the Latitude and Longitude. Where it is when it gets its satellite fix is what I get no matter where I take it. I can watch the clock increment the seconds, but the location will not change unless I cycle power on the module.

I can manage this with the PIC , but it seems kind of slow having to wait for it to aquire a new fix every time.


Is there a $PSRFcommand to get an update without having to turn it off and back on?


This may be it.

You may have to put the GPS module in Walk mode.  I had to do this with a PMB 248, and based on some other forum threads, I think you have to do the same with the 648.  This forum thread describes the solution.


Just to be curious.

What language are you using?

After reading some of the documentation, I am curious what would happen if you would regularly send $CCGPQ,GLL<CR><LF>

I’m writing my code in C.

I’m writing my code in c, using the c18 compiler from Microchip. To begin, I used hyperterminal to observe the $GP sentences that the module exports. I’ll try the $CCGPQ. What’s it supposed to do?


SiRF app

Thanks for pointing me tto that forum, I was able to find and download the SiRF app!

That sentence …

is what is used to tell the gps module to send you something and what it is that you want. In the example I showed, it will reply with GLL sentences until you tell it otherwise. Is that not the sentence you use to tell it to start sending GLL data to you?


The sentence I use to get the GLL going is:


$PSRF103,01,01,00,0124<CR><LF>  this will get one GLL sentence from the GPS.



I can send

$PSRF103,01,00,01,0124<CR><LF> this will get the GLL updating at 1hz.

Unfortunately, the lon. and lat. never change as I walk through the house, until I cycle the power. Then it will start again with my new location.


When I looked up the module you say you are using, I did a search for NMEA0183 v2.2 and the first hit was:


Reading through that pdf showed the various i/o for devices that follow that protocol. On page 3 it mentions how one would go about getting specific data from a given device.

is it possible its working

is it possible its working but you just dont see it because anywhere in your house is the same lat/long?

take it outside and walk down the street.

I guess I’ll take it for a drive.

That may be the case indeed. I’ll try taking it out for a drive later today.


It seems that was all I needed to do after all.  I was fooled by the way it started with slightly different numbers at each power up.

I followed your advice to the letter, and found that it’s working as it should.