Any advice for Boron + GPS Featherwing + sleep?

I finally got an Adafruit Ultimate GPS Featherwing (and an active antenna) a few weeks ago, and did some quick tests with the example sketches. I want to use this to improve a project that I had started using an Electron and the Google Maps integration. But now that there’s another powered component, I want to make sure I account for that in my Sleep strategy.

The way I have the Electron working (without GPS, just using cellular-based location services), I do location checks, and compare to the previous location. If the device seems to be stationary, I keep increasing the length of the Electron’s sleep up to a maximum of 15 minutes. If it has moved, then it only sleeps 1 minute between checks. Location information is ingested by a web app, where I can view a “live” tracking map.

I’ve got a backup battery installed on the GPS featherwing. What advice does anyone have for managing the Boron’s battery usage now that I’m adding the GPS board? Should I be hooking into its /EN pin?

In my mind, using the EN Pin wont allow you to easily use a progressive Sleeping Schedule on the Boron......since it's the same as removing the battery source.

I'd start out by modifying your existing code to run in Manual Mode and cycle the GPS ON/OFF to check location. Then only start the Cellular modem when you need to Publish the updated location.

Basic Assumptions:
1 mA when Boron is Sleeping.
40 mA when Boron LTE & GPS are Awake (plus X? mA for Active Antenna)

Basic Code Flow:
Boron Wakes without starting Modem, enables GPS, waits for location w/ timeout, compares to last known location, disable GPS, decides to Publish or Not, calculates next Sleep Time (should also use Battery Voltage to help with this decision), and finally the Boron returns to sleep.

More important is the power management for the GPS receiver and the active antenna. Make sure the GPS receiver EN pin is pulled HIGH when you don’t need location data. The battery should keep the receiver ready to get a quick fix when powered up again.

I think that for most cases, simply going in deep sleep is more than enough. Boron will be consuming less than 1mA (I don’t have the exact value with latest firmware, I just know it was further reduced with one of the latest updates). You’ll lose the time keeping feature and can wake up device by either a manual reset or a trigger on D8 (for now). That might be simpler than controlling the EN pin.

If you need to wake the Boron up automatically at regular intervals, then go with regular Sleep mode, for a slightly higher power usage.

To be clear, I was talking about the /EN pin on the GPS, not the Boron. I guess my main questions revolve around the GPS “warm up” time, and how the backup battery on the GPS board and the use of the GPS /EN pin affect its current consumption.

And at what point might I pass the balance point where the startup time of the GPS unit from “cold” vs “warm” state is worth the battery savings?

Ah…sorry. Yes, you would definitely want to use the GPS’s EN Pin to disable it when not in use.
That is, unless you wanted location updates in a very short time period.

Based on my experience with another GPS/GNSS receiver (ublox Neo M8), as long as the backup battery is present, you can expect hot start (2 seconds or less) for up to few hours, and warm start (less than 30 sec) for couple of days (as long as the receiver has good reception, e.g. clear sky view). It should be similar for all types of receivers, just give it a try.

2 Likes