How to correctly use GPS module in low power usage?

#1

Hi,
The GPS module is the first module (for me) where is used another battery specially for GPS purposes. I was very surprised, when I disconnected the core module from the computer and removed the batteries from battery module and the LEDs on the GPS module blinked still same as it was connected to computer (as it was powered). The most interresting was, that the LED on the core module ligths on too. It looks that battery on the GPS module powered whole device (core module + GPS module).

In my case I would like to use the GPS module for getting GPS coordinates for example once a minute. At this moment I am not sure how to use module correctly.

Are the “bc_module_gps_start” / “bc_module_gps_start” functions most important for battery consumption, or what I need to do, when I need to completly turn off the GPS module? (by the software)

Thank you for your ideas

#2

Hi Milan,

if you want to acquire a position with a 1-minute interval, the best strategy is to call bc_module_gps_start at the beginning of tracking and bc_module_gps_stop at the end. Of course, you can use the accelerometer on the Core Module to put your application in a tracking mode (wake-up event).

You should stop tracking automatically after let’s say 5 minutes of stale position (and wait for accelerometer event again). The current consumption of the GPS Module in the tracking mode is approximately 25 mA.

I can see many areas for improvement in terms of power consumption in the future - specifically relying on a warm start feature of the navigation module and switching off the module in between the acquired samples, but you have to start somewhere before we start pushing your application to the limits! :slight_smile:

Does this help? Thanks! P.

#3

Hi Pavel,
sorry for my delayed reply. I will be able to try it next week, because it is needed to made some power changes on the GPS module. Your idea looks clearly and I believe that it will work. Use accelerometer to start / stop GPS tracking is very good idea! If I found something unclear I will give you a message.

Thank you very much for your help! Milan

#4

Hi Milan,
no worries - you are welcome and we are eager seeing the outcome :slightly_smiling_face:

Thanks. P.

#5

Hi Pavel,
I tried to stop and start GPS module in order to save the battery. But probably I am doing something wrong, because when I use bc_module_gps_start(); function for the first time (first usage of this command after device start) it is followed by “BC_MODULE_GPS_EVENT_START” and device works. Then I use bc_module_gps_stop(); and it is followed by “BC_MODULE_GPS_EVENT_STOP”. Until now it is absolutely correct. But when I try to start the GPS module again using bc_module_gps_start(); it is followed by “BC_MODULE_GPS_EVENT_STOP” instead of “BC_MODULE_GPS_EVENT_START”. So I am not able to start the GPS module again.

After lot of unsuccessfull tests I tried to unplug GPS module and plug it back again. (no batteries in battery module, battery in GPS module, cable connected to the computer). After that, the log was not iterrupted, but the counter in debug log started from 0 and gps_start function started to work same as it is connected for the first time. After stop and start again it doesn’t work as I described above.

Can you tell me, what I am doing wrong, please? Is it needed to do anything else than just use gps_start/stop function?


#6

Hi Pavel,
I would like to continue with GPS module. I am still having problem with starting and stopping GPS module. I have little bit modified your example (I just added button function) - in my application is possible to start/stop GPS module by button. But, as you can see, you can start GPS module just once… I don’t know if I missed something, or if there is some bug.

Thank you for your help.
Milan

application.c (4.1 KB)

#7

Hello Milan,

it is fixed now. We’ve had a bug in state machine of GPS. I’ve already updated that in the SDK, just do make update.

I’ve added this condition

I’ve checked the power consumption and with GPS it draws up to 40mA, when I called stop it consumes around 62uA with LCD Module.

Let me know if the fix works for you.
Martin

#8

Hi Martin,
It works perfectly after update!!! Thank you very much! :+1: :+1:

Milan

1 Like