Ublox neo6M, tracking even indoors, why?

Hi,

I am doing a SD GPS Logger project and I do not understand one thing with my Ublox Neo 6M GPS. Im using TinyGPS++ to get data from the receiver.

When I power on the receiver indoors, I won't get a fix. But if I take it outdoors I get a nice fix with > 7 satellites. And then if I take it back indoors I still get >5 satellites even if I leave it indoors for a few hours. How is this possible? I guess its something I don't understand about the NMEA sentences? For the number of satellites Im using gps.satellites.value(),

mmocx:
When I power on the receiver indoors, I won't get a fix. But if I take it outdoors I get a nice fix with > 7 satellites. And then if I take it back indoors I still get >5 satellites even if I leave it indoors for a few hours. How is this possible?

When it is searching for satellites, it may have a higher threshold for detection. After it has "locked" on to a satellite, it may lower the threshold so it can continue to use the signal(s). When you go inside, all signals are attenuated, so it may not be able to find new satellites when the current ones "fade away" as they get close to the horizon.

I guess its something I don't understand about the NMEA sentences?

It has nothing to do with the sentences. The GPS device makes lots of complicated radio decisions, signal processing and calculations before composing an NMEA sentence.

BTW, you might be interested in my NeoGPS library. It is smaller, faster, more reliable and more accurate than all other libraries. The examples are structured properly, and can usually be modified without breaking them. Be sure to work through the Installation instructions, to make sure you have the correct configuration. The docs also have some good Troubleshooting tips.

I would also suggest reading the recommendations for connecting the GPS device (here). Many folks choose the wrong pins/library, and it causes lots of trouble later.

Also, the NEO-6M is a 3.3V device, so it is not safe to connect the 5V Arduino transmit pin to the GPS RX pin (read this). It is ok to connect the GPS TX pin to an Arduino receive pin, but it may not be reliable. Best is to use a level-shifting module!

I am doing a SD GPS Logger project

Most other GPS libraries' examples are not structured properly for SD logging. They are not "coordinated" with the GPS device to take advantage of the "bursts" of sentences it sends. There is a short "quiet time" between those bursts, when it is best to write to the SD log file (see also this). You may eventually need to use the Interrupt Style of GPS parsing (see NMEA_isr.ino).

Cheers,
/dev


P.S. I see that I have recommended NeoGPS before, over here.

Thanks for the tips! Im just checking out your library and it looks really good, I might give it a try! Thanks!