5 ms·
I don't know much about GPS, but I always assumed it was a passive tech. What is consuming battery in that case?
by h1fra 3y ago
I don't know much about GPS, but I always assumed it was a passive tech. What is consuming battery in that case?
- krisoft 3y agoIt is a lot of work to acquire and track the signals and this is often implemented in software. And then afterwards it takes a lot of work to calculate the navigational solution from these raw measurements. This basically keeps a microprocessor busy which uses energy. One trick people do for ultra-low energy non-realtime GPS tracking of wildlife is to store the “raw” radio samples and do as little processing on the tracking device as possible.[1] Then once the tracker gets back they batch process all the samples recorded and reconstruct where the animal has been. That is obviously a tradeoff of more storage used for less energy consumption. Obviously that trick does not work if you want to know where the animal is live, it can only tell you where it has been once you have processed the data. 1: https://arxiv.org/abs/2207.06310 https://arxiv.org/abs/2207.06310
- h1fra 3y agoAh I see, the continuous tracking is the culprit here. Thanks
- joshspankit 3y agoAre there no hobby-level GPS chips that do hardware decoding?
- krisoft 3y agoWhat do you mean by "hardware decoding"? There are custom chips which do the whole GNSS business. So they are doing "hardware decoding", the chip is the hardware. I'm not aware of how all of them are implemented internally, but my understanding is that the acquisition&tracking of signals usually happens in the digital domain. Can be wrong on that of course.
- joshspankit 3y ago“hardware decoding” in this case meaning “implemented at the transistor level” and more to the point: “as optimized and low-power as possible”.
- iracigt 3y agoAll of them I am aware of do hardware decoding of the signal and do the linear algebra to find their location in software. Speaking mostly based on the cheap ublox chips and partially open source navspark chips I've dealt with. The problem is the signal processing part of GPS is quite computationally difficult. I think it was around 10ish years ago it even became possible to do the full real-time decoding on a laptop. At startup, you need to find the GPS signals. This means searching for all 32 possible satellite code patterns across the range of possible Doppler shifts. During testing, this was what took most of the startup (cold start) time. You need roughly 4-6 of them to get a position, so this has to be done in parallel. Once you've found the satellite it takes another 30 seconds to get the satellite position. GPS signals are very slow at 50 bits/sec. By comparison, actually solving for location is a simple linear algebra problem with 4 unknowns (lat, long, alt, time; but in a more convenient coordinate system). You only do this a few times per second. The hardware does the higher rate signal phase estimation. For example the navspark is a single core SPARC microcontroller running at 100MHz with 200 kB of RAM. That's enough to do 50 solutions per second, though they reduced that to 10 Hz to make space for a user program too. A ton of work goes into caching strategies to narrow down that initial search space. Modern chips will let you load in exactly which satellites to expect overhead (e.g. based on position and orbit info from cell network). There is a whole other caching strategy based on a approximate "almanac" in the GPS signal for offline devices. With all of that known before the receiver turns on, you can get a solution in a couple seconds.
- OmarShehata 3y ago> Obviously that trick does not work if you want to know where the animal is live, it can only tell you where it has been once you have processed the data. why can't you just forward those radio samples back, and process that on the receiver end (your phone), vs processing on device and sending back the location? It should be a tradeoff of less battery consumption on device, and no need for large storage, at the expense of a lot more bandwidth? Would having to send all the raw samples consume more or less battery than just processing it and sending the result?
- krisoft 3y ago> It should be a tradeoff of less battery consumption on device, and no need for large storage, at the expense of a lot more bandwidth? Yes. I believe so. > Would having to send all the raw samples consume more or less battery than just processing it and sending the result? Good question. I don't know the answer to that. Maybe someone can chime in? What would be interesting if you could send a "ping" signal to the tracker and it only start sending samples back then. After all most of the time you don't need to know where the cat is, only when it is "overdue" and the owner starts worrying.
- dhosek 3y agoOne of the things I found initially surprising (but less so when I thought about it), was that when I switched from wired headphones to bluetooth, I got longer battery life from my phone. Apparently, there’s less energy involved in sending a radio signal than in driving a speaker.
- iracigt 3y agoThe "chip rate" of GPS L1 C/A (the main one) is 1023 kchips/sec. So you end up with a signal that is over 1 MHz wide to encode 50 bits/sec. Nyquist-Shannon theorem says* you thus need over 1 Msamp/sec (using complex numbers), probably more like 2 Msps because of Doppler, to capture that. GPS is pretty forgiving and 4 bits/sample is plenty (2 bits is usable), but that would still be 1 MB/s of high entropy data. Note the system linked in the parent comment only records in 12 ms bursts. That captures enough info to find position offline, but only if you add in the historical orbit information that normally takes 30 sec to download off of the GPS signal. Streaming 1 MBps of data is doable, but I think would draw much more power than solving on device. Just recording to an SD card is far less. * The Nyquist-Shannon theorem actually says the converse, but for anything you'll encounter outside the recesses of a math department, it's still the optimal solution.
- solardev 3y agoReally? It's the math that's power hungry, not something to do with the antenna or whatever...? I'm surprised.
- ilyt 3y agoRF part is also power hungry; the chip they use for example uses 15mA during receiving.
- FridayNightTV 3y agoI'm surprised you think otherwise. "Ordinary" antennas are completely passive, just a bit of metal. It's the maths for data recovery and trilateration (not triangulation!) that is processor heavy.
- solardev 3y agoIt's the "RF chip" from the other reply I'm curious about. What is it doing when it's in active receiving mode? Is it doing the math on the chip?
- krisoft 3y agoYou can buy chips which only do the RF tasks. But you can also buy chips which do “everything”, the RF, the maths, some even do sensor fusion with data from accelerometers and wheel odometry sensors. All in one chip. You can read here[1] more about what the RF frontend does. This is the crux of it: “Its two-stage receiver amplifies the incident 1575.42MHz GPS signal, downconverts it to a first IF of 37.38MHz, further amplifies it, and then downconverts to a second IF of 3.78MHz. An internal 2- or 3-bit ADC (selectable as a 1-bit sign with a 1- or 2-bit magnitude) samples the second IF and outputs a digitized signal to the baseband processor.” 1: https://www.analog.com/en/technical-articles/rf-frontend-ic-simplifies-software-gps-receiver.html https://www.analog.com/en/technical-articles/rf-frontend-ic-...
- solardev 3y agoThanks for this! It's interesting that the article says doing it in software can be more power efficient than having a dedicated chip for the intermediate frequencies. Does that mean there exists "dumber" RF chips that do less, offloading the math to the main CPU for power savings? It seems like the kinda thing that would be commonplace if so...? I guess my fundamental confusion is why "listening" to a broadcast signal takes so much power, vs say a FM receiver or passive wifi snooping.
- ilyt 3y agoThe fact GPS satellites are 20k km away Weak signal, small antenna, high gain, lots of current to run amplifiers. And you need to keep receiving signal to get the position, not just enable it for a second then disable
- dboreham 3y agoIt's not passive. There's a bunch of DSP on the RF plus regular CPU on computing the location from the demo demodulated signals. 32-bit CPU.
- e44858 3y agoYou also have an LTE modem transmitting the GPS coordinates to the cell tower.
- dreamcompiler 3y agoGPS receivers are passive only in the sense that they don't transmit. But pulling a meaningful signal from a 25W transmitter 20,000 km away requires some seriously power-hungry signal processing. It's an engineering miracle that it works at all.