Mobile Data Collection with ODK and ONA

In any project, data collection is an important stage as it provides a basis for analysis and planning of the other stages of the project. Today, I will demonstrate an easy, cheaper and also effective way of collecting data in the fields using a mobile phone and a hosted server where your data is sent back to the office in real-time. I will be using Ona as the server for my data where all data collected using the mobile device will be sent to and ODK Collect which provides a platform for data collection on mobile devices. The setup on each of the platforms is quite easy and straight forward. The ODK Collect can be downloaded from respective online App stores.


The reason as to why these systems are chosen is because, Location data is to be collected (in respect to device location) and also this data is required back to the office in real-time for reporting and analysis.

To setup a project on Ona, visit and register an account(absolutely free) and get a direct login after signup.

On Ona, once setup, this should be the redirect page;


In the picture above, Tutorial Project, is the name I have given to my project, so this will be replaced by your project name.

Moving on to the next phase, You are required to add a form into your project (this is the form that will be used on ODK Collect). To prepare this form, one is required to at least understand the basics of creating Xforms (Pretty easy huh!). A form should resemble this;


This form is then uploaded into our project section on Ona.



Once this is done, Open the ODK Collect on your device and navigate to settings. Under Server settings > Configure platform settings > URL, enter the url for your Ona project. It follows a convection{{username}} e.g.

odk-url    configure

On the guide on how to use ODK Collect refer Here

RELATED:  Which, Why and When. PostGIS vs SpatiaLite

Try filling in details on the form on your ODK app and send the finalized forms. This is an example of what should be seen at the Ona project page.

The above figure shows one record that has been submitted to the server from my ODK Collect app. Ona offers different ways to visualize the data collected such as the map view, table view and charts.


The table view features as follows;


This one shows the map view;


This data can also be exported into various formats depending on the use needs.


This demonstrates a fast and easier way of collecting data from the fields and having the data received back in the offices (your data centers) in real-time for analysis.Many approaches exist for  data collection and obviously one goes with the one they are comfortable with. The reason as to why I choose this approach is as discussed here;

  • A free account for public projects

  • Comprehensive data handling tools

  • Easy to configure and use

  • Organizational accounts

  • Query System

  • Choice for basemaps exist

  • Data export tools

  • No worry of hosting services (cloud storage and server purchase costs)

Let’s engage in a discussion about this. Whats your opinion on mobile data collection systems?

Wanjohi Kibui
About Wanjohi Kibui 23 Articles
A GIS Developer, Consultant and Author.Passionate about Geospatial technologies. To read more about his work, visit Access video Tutorials on YouTube
  • Anonymous

    This one sounds/appears user friendly and effecient. I’ll definitely try and see how it works. My questions before I try however is: Is it possible to run a configuration between one(1) Ona server and various ODK collects at the same same time i.e can one (1) ona server receive realtime data from different ODK collect users in the field?

  • Hello, That’s good and a try is worth for this. For multiple users with ODK Collect and one Ona Server, yes. That’s the whole idea. YOu send teams to the field and receive all data in one central location