Skip to content
Ivan Gayton edited this page Aug 30, 2015 · 2 revisions

#OpenDataKit in environments with very unreliable Internet. This is a series of steps, laid out as clearly as I can, to set up an Intel Edison as a server for a local deployment of OpenDataKit (ODK), using ODK Aggregate as a server, to settings where Internet access is problematic.

Why?

My general use-case is humanitarian work in low-income, unstable countries, where we wish to make maps and gather data to facilitate the delivery of humanitarian aid. You may have another reason to wish to use ODK offline, and another set of constraints, but I'm focusing on settings like rural Congo. Here there is very often no 3G (or if there is it is profoundly unreliable), electricity is only available if you have your own generator (and therefore is only available when you are sufficiently motivated and funded to start the generator), and the nearest source of electronic components is, for all practical purposes, on another continent (there is no Radio Shack, and Amazon and Sparkfun cannot deliver to countries with no postal system, where a FedEx courier would be immediately robbed or abducted if they were foolish enough to step outside the expat enclaves). Probably most critically, this is an environment where there are very, very few people with a high degree of technological literacy; people in these areas are just as intelligent and capable as people in high-income countries, but have very little access to technology and therefore do not have the skills, experience, and knowledge that many of us take for granted.

How?

ODK allows the collection of data (filling out of surveys) on an Android device offline, normally requires an Internet connection to place blank forms on the device and to retrieve completed surveys through an aggregate server (such as ODK Aggregate or Formhub). It is possible to use a local server to deploy the aggregate server, but a local server often comes with its own set of challenges: need for reliable electricity, the complexity of setting up a Local Area Network. These may seem like trivial challenges in the high-income world, but in a resource-poor setting they can be major obstacles. The Intel Edison https://en.wikipedia.org/wiki/Intel_Edison is a system-on-a-chip computer with very low energy consumption, no moving parts, a built-in Wi-fi transceiver, and a surprisingly powerful processor and memory. The Edison is capable of running a web server with more than sufficient capacity to manage and ODK deployment.

I've prepared a set of instructions that take a stock, off-the-shelf Edison and turn it into a fully functional ODKAggregate server, complete with its own Wi-fi access point. As an added bonus, I've also set up a simple (probably not very well configured) web server to provide the local surveyors with software (you can log onto the Wi-fi, connect to a web page on the Edison via the browser on your phone, and download the ODK Collect software and other useful utilities).

The bad news - it's still a bit complicated

The Edison is a bit intimidating to approach. It is "headless," meaning it has no graphics card and cannot be connected to a monitor; the only way to install and configure it is using a command line interface from another computer. It runs on the GNU/Linux operating system, which (unfortunately in my view) most people are not familiar with.

These instructions are as clear and complete as I can make them, but there is still a certain amount of implied knowledge required; if you have never used the command line on a computer you probably won't be able to follow this.

I'm using a computer running GNU/Linux and my instructions reflect this; all of this can be done using a Mac (which has a UNIX command line, so will be pretty similar) or even a Windows computer, but I haven't done so, sorry! If someone is motivated to "port" these instructions to a commercial OS I'm happy to support if I can.

The good news - once it's running it's not complicated

Once you've got an Edison set up and running ODK Aggregate, as well as the web server to provide software to your surveyors, it's really quite simple and easy. Plug the Edison into a USB power source (even a portable USB battery power bank), tell everyone to connect their phones to the Wi-fi access point that appears in the general vicinity, get them to download and install the software, walk them through a bit of configuration of ODK Colllect, and send them off to collect data. When they get back, they simply connect to the Edison via Wi-fi again, and upload their data, which you can access from your laptop using the web interface (again connecting to the Edison via Wi-fi).