I am building a gps logger that needs to run off batteries for 3 - 4 days. I had the idea while backpacking last month.
I've been reading up on utilizing a watchdog timer to put the arduino to sleep for 8 seconds. When it wakes up I'd like to read the NMEA string from the gps radio and put the arduino back to sleep.
To further complicate my project I would like to "mark" coordinates as we are hiking. If I see something cool id like to tap a button and capture the coordinates for that location. I can't seem to find any sketches or tutorials where someone has tried to utilize the watchdog AND another interupt. Could someone point me in the right direction if such a thing is possible or offer an altertanative solution?
I'm not sure about the whatchdog timer since I haven't used it yet. But the button should be fairly easy todo with a script which monitors an input and then does something when the input changes. There are many samples of such code on the forum.
The Watchdog timer is something specific usually used to prevent lockups. That being said, you definitely can use the timers and sleep states to have the arduino communicate with the GPS unit. One possible issue is the GPS lock taking time, so 8 seconds might not be long enough, but look around for a low power GPS module (I'd look on sparkfun), and look at the openLog board for saving to a memory card. One of the people at Sparkfun did something like this while tracking radiation: Chernobyl and Back - News - SparkFun Electronics
8 seconds will take about as much power as 1 second interval. At least 1/2. It takes time to initialize the GPS on powerup. If you really want to save power record a data point every 2 minutes. You might get the average down to 1-2ma in this case. Adafruit Ultimate GPS Breakout - 66 channel w/10 Hz updates [PA1616S] : ID 746 : $29.95 : Adafruit Industries, Unique & fun DIY electronics and kits can run without a microcontroller taking power at all. It only draws 20ma. But I do not recommend this. Because then you will have no control over the period or to stop sampling when there is no movement. It is also difficult to access the stored data with Arduino code. If you store the data in EEPROM, you could store 500 data points. That's 1000 minutes or 16 hours of hiking. if you want 3 days you will have to sample less often or use SD card. This is what I'm working on.
sbright33 - Have you made any further progress on developing a low power GPS data logging application? I've been working on this problem for some time and it has been difficult for many of the reasons noted in the thread.
I've been trying to build a GPS data logging device that could run 7+ days without re-charging using power-down modes, motion activation, etc., with data being written to an SD card. I've learned a lot but still haven't found a way to properly power down when the unit isn't moving and then sampling at 15 second intervals when it is active.
It would be great to have a low power GPS data logging library for arduino but that's beyond my skill set just yet. Below is a prototype early prototype of what I've been working on.