Can the GPS receivers not be put to sleep? I don't need constant positioning, waking it up every 30 seconds, or even every few minutes, seems quite reasonable. The uBlox has various sleep modes (I'm still reading the datasheets), and any can just be turned off with a GPIO pin controlling a FET or something.
So run off the internal RC, wake up the GPS, say once a minute, measure time for 1 second to adjust RC, get position data, turn off GPS. Process and transmit data. Repeat.
Would this not work better than having a crystal running the whole time?
The uBlox NEO-M8M has a typical tracking current of 4.8mA.
I've been poring over the Atmega328p datasheet trying to figure out the difference in current between an external crystal and the internal RC oscillator. So far, can't find it. There's characterization curves for the Internal RC, but not the crystal-based clock. Is that dependent on the crystal?