Adafruit GPS Photon problem


Looking forward to your new GPS code regardless.

The battery has made a decent difference for me. I can usually get a GPS lock inside my garage in 120 seconds or less using the Adafruit Ultimate GPS + battery.


@Dave: Excellent!


I didn’t see this code in your fancy-asset-tracker. Did I misunderstand?

Also, I’ve been using the TinyGPS++ library with good results (it seems a little cleaner to me than the Adafruit library):


By the way, I’ve noticed that the number of satellites reported by $GPGGA never exceeds 4. Is that an internal limit of the GPS module (i.e. once it has 4 satellites locked, it won’t bother to use any more, even if it can “see” others)? Has anyone else seen a higher reported value?


Hi @Eric24,

Good questions! I haven’t posted the time suggest code yet, will do that soon.

In general, at any given time it’s rare to have more than ~8-9 satellites visible on the horizon. If you use an external antenna, or you have a very clear view of the sky, you should see more. I routinely get 7-9 with my external antenna outdoors facing up on a level surface.

There is a really fantastic gif on wikipedia that relates the visible satellite thing:
(Wow, that upload really killed the resolution, check it out on wikipedia for a better version)



Good info, @Dave

What I’m basing my observation on is a comparison of two cell phones running GPS apps (that show the satellites in view) and the content of the $GPGGA sentence from the G.Top GPS module. I’ve never seen that value be greater than 4. When you are seeing 7-9 satellites, exactly where are you seeing this?

I look forward to seeing the time suggest code. Does that include the EPO upload? I was working on both of these, but couldn’t find any information anywhere on even how to start, so go nowhere.


The EPO upload will be more complex, and will take me longer. But I’ve found data, and most of the specs needed to base the work on. It took quite a lot of searching to find the relevant information, but I’m happy to share if you want to build that part :slight_smile:

edit: just added suggest-time-and-place to the repo



@Dave: Sure, if you have any info, let me take a look and see what’s involved. I’m happy to help if I can.


Heya @Eric24,

Sure thing! If you have time and want to take a stab at it, here’s the info I collected so far:

Checkout the last few lines in that readme, it links to another awesome project that actually implemented this. I was going to use that as inspiration to build a version that does this in firmware. Ideally I’d love for the firmware to be able to do this on the fly / in the wild – without needing to be tethered to a laptop, etc.



@Dave: New code looks good–simple and straightforward. It was the PMTK740 and PMTK741 commands that I couldn’t find in the docs I was looking in. But it’s my interpretation that if you are sending PMTK741, then PMTK740 isn’t also needed (i.e. if you have only time, send PMTK740; if you have time and coordinates, send PMTK741).

On the topic of coordinates, my ultimate objective is to use the ublox CellLocate service (currently not working, as described on another thread) to determine the initial fix and use that to seed the GPS.


@Dave: Good info; lots to digest!


Agreed, I wanted the time/location demo to use CellLocate, but I didn’t have that example yet.

Yes, finding those NMEA commands was HARD, probably didn’t need both, but I wanted to include both in case someone had time, but not starting location. :slight_smile:



Hey, just thought I would comment on this topic regarding the signal fix time.

I have been playing around with both the Adafruit GPS and a $10 ublox NEO-6M I picked up on ebay. I too found fix times to be unpredictable and lengthy. Yesterday my active antenna arrived and I cannot get over the difference it makes. Before I needed the GPS at the window and a fix still took a 5 minutes best case on a cold restart (hot restart fix time was always pretty decent), however with an active antenna it picks up numerous satellites quite quickly in the the middle of my room. The downside is the cable is a little long, but I will try to shorten it, definitely worth the $3.

Just some food for thought


@Dave, I tried connecting adfruit GPS
with my electron which i had recently received. But no luck. The same GPS locks with in two minutes and works perfectly with arduino uno r3 (used parse.ino from adfruit library) inside home!. Connections i made for Electron
1.Tx of Gps to Rx of electron,
2.Rx of Gps to Tx of electron
3.Gnd of electron to Gnd of Gps
4.3V3 of electron to Vin of Gps
and used sketch
I did not get fix.

I tried connecting GPS to arduino uno r3 only for the power up and connected Rx/Tx to electron, i got GPS fix in two minutes!.
My question - Is adfruit GPS works well only with your assettracker sheild? or do i need to do some changes in powering GPS?

Please let me know your suggestions.



Hi Jay,

The enable pin should be pulled (high active… I think?) by default, but it might not hurt to do that explicitly. Also make sure you give it really clean power, powering it directly from the electron might have some interference. You might also need to not put the GPS on the same breadboard, etc. GPS modules are extremely sensitive to noise / power conditions / etc.

Also make sure you have a clear view of the sky / horizon, or use a nice external antenna, and your antenna should be flat, that should help!



Anyone has reached a solution ? I got with the same issue.

I have a cheap GPS module (GY-GPS6MV2) with the NEO 6M module, and I was running with some issues related to the fix time, so yesterday I received the Adafruit ultimate GPS, but the fix time is much longer than the cheap module.

I added a electrolitic cap (100uF) between VIN and GND and I connected VIN to photon’s 5v pin. After a long time, I can get a first fix, but my test are : put the modules on the balcony, after a fix on both, put them back both modules into the room (near to the window), and the adafruit module has lost the signal (I dont know if is the proper term), but the NEO 6M dont; I put the NEO on a room with no clear access to the windows and the NEO lost the signal. After that I put both modules back to the balcony but after almos half an hour the adafruit module is still in fix phase, but the NEO 6M get pretty much quicker fix.

Thanks if you have any advice.


Hi @maleficarum

When I see your picture with the breadboard, I can see almost all the wires for the GPS go directly over the antenna region of the Photon at the end opposite the USB connector. I would definitely redo the wiring to avoid having any wires go near the WiFi antenna and preferably move the GPS to the non-antenna end of the Photon.

If you still can’t get good reception, then I think you need an active GPS antenna.


Ok, Ill try that … thanks.


I’m trying to use the Featherwing GPS module with an Electron and I can’t seem to get a connection to my Electron through the serial monitor on my computer. I’ve tried a bunch of the libraries but can’t get it to work and am wondering how you guys are doing it? I’ve got the GPS module hooked up to an UNO so I know the problem isn’t with it at least.


Can you post your connections and code? I’ve noticed that in certain situations, you can’t acquire a fixed location as quick as you can expect (even with other GPS modules). So, you can try to hook up antenna and try outdoors.