Satellite time updater app for ODK

In my most recent job - we collected surveys in fairly remote areas on multi-day collection trips. There are few places where phones have access to any cellular signal. Unfortunately, when batteries on the devices died, the system time would reset to some arbitrary time about 10 years ago. Some phones do allow you to update the time based on a GPS signal, but I've found this option does not appear in many versions of the Android. Additionally - it's a bit complicated for most of our enumerators to set up and understand.

This meant that on the devices we used, while timestamps worked to calculate the total length of time from start to end, we could not capture the time of day that the survey started.

So, I developed a small utility to work with ODK that will pull a time-stamp from a GPS signal and return it to ODK Collect. This outputs as a string in ISO 8601 format, and the date can later be manipulated or calculated using the normal ODK date formatting functions.

Here's a link to the google sheets example version of the ODK form, and here's a link to the github of the android app.

I'll be deploying it to the Google Play Store soon. Would be curious to hear if anyone finds a utility like this useful.


As a small update - this app is currently in review on the Google Play store. There's really not much to it, it works entirely locally (i.e. I'm collecting 0 information from it), and is not monetized in any way, so hopefully review will be quick.

1 Like

The app is now on the play store. You can find it using "offline gps time". I was only able to find it in the play store using quotes. You can also find with this link to the google play store.

It's not the most polished or anything, but it does work. I may add some minor refinements in the future. Also, feel free to let me know if you get any bugs.


Is there anyway, we can get time-stamp along with geolocation? Currently, geopoint(type) returns four attributes such as latitude, longitude, altitude in meters, and accuracy radius in meters. I wanted to get time-stamp (time at which these information were received)along with these attributes.

I am beginner for ODK-X.

Prashant K.

Hi @Kumar_Prashant
first of all, we are ODK not ODK-X so are you sure you are on a proper forum?

In ODK Collect it's not possible to add a time-stamp to geolocation it needs to be a separate question.

Oh I see, my mistake. I was following both forum at a time. I'll add a different question. Thanks for replying.

One query:- Aren't the syntax of ODK also followed similarly in ODK-X?

There's a pretty meaningful difference. ODK-X has a lot more customizability, has ways to build non-linear workflows, case-management, and bi-directional data sync. However, there is a much higher technical barrier to entry for ODK-X (requires some knowledge of javascript), the platform is not nearly as mature, and there are slightly different reasons why you might use one or the other.

See the documentation on this question here.

1 Like