|
||
---|---|---|
.. | ||
ChangeLog | ||
README.md | ||
app.js | ||
gpssetup.js | ||
gpssetup.png | ||
icon.js | ||
metadata.json | ||
settings.js | ||
settings.json |
README.md
GPS Setup
An App and module to enable the GPS to be configured into low power mode.
Goals
To develop an app that configures the GPS to run with the lowest possible power consumption.
Example power consumption of the GPS while powered on:
-
An app that turns on the GPS and constantly displays the screen will use around 75mA, the battery will last between 3-4 hours.
-
Using the GPS with Super-E Power Saving Mode (PSM) with the screen off most of the time, will consume around 35mA and you might get 10hrs before a recharge.
-
Using the GPS in Power Saving Mode On/Off (PSMOO) with suitable settings can reduce the average consumption to around 15mA. A simple test using a 120s update period, 6s search period was still running with 45% battery 20 hours after it started.
Settings App
The Settings App enables you set the options below. Either start the App from the launcher or go to Settings, select App/Widgets and then 'GPS Setup'.
When you exit the setup app, the settings will be stored in the gpssetup.settings.json file, the GPS will be switched on and the necessary commands sent to the GPS to configure it. The GPS is then powered off. The GPS configuration is stored in the GPS non-volatile memory so that next time the GPS is powered, that configuration is used. These settings will remain for all apps that use the GPS.
-
Power Mode:
-
SuperE - the factory default setup for the GPS. The recommended power saving mode. If you need frequent (every second) updates on position, then this is the mode for you.
-
PSMOO - On/Off power saving mode. Configured by interval and search time. Choose this mode if you are happy to get a GPS position update less often (say every 1 or 2 minutes). The longer the interval the more time the GPS will spend sleeping in low power mode (7mA) between obtaining fixes (35mA). For walking in open country an update once every 60 seconds is adequate to put you within a 6 digit grid refernce sqaure.
-
-
update - the time between two position fix attempts.
-
search - the time between two acquisition attempts if the receiver is unable to get a position fix.
Module
A module is provided that'll allow you to set GPS configuration from your own app. To use it:
// This will set up the GPS to current saved defaults. It's not normally
// needed unless the watch's battery has run down
require("gpssetup").setPowerMode();
// This sets up the PSMOO mode. update/search are optional in seconds
require("gpssetup").setPowerMode({
power_mode:"PSMOO",
update:optional (default 120),
search:optional (default 5)})
// This sets up SuperE
require("gpssetup").setPowerMode({power_mode:"SuperE"})
setPowerMode
returns a promise, which is completed when the GPS is set up.
So you can for instance do the following to turn the GPS off once it has been configured:
require("gpssetup").setPowerMode().then(function() {
Bangle.setGPSPower(0);
});
Note: It's not guaranteed that the user will have installed the gpssetup
app/module. It might be worth checking for its existence by surrounding the
require
call with try...catch
block.
var gpssetup;
try {
gpssetup = require("gpssetup")
} catch(e) {
E.showMessage("gpssetup\nnot installed");
}
References
Written by: Hugh Barney, with support from Gordon Williams For support and discussion please post in the Bangle JS Forum