Mongoose 2000: 2025 update

11 years ago we started working on Mongoose 2000, our project to provide an appropriate technology solution to the problem of recording behavioural data in a rural field site in Uganda. Researchers and field assistants follow packs of mongooses and record their daily activities and add to a research database which is used to tell us more about social interactions and the evolution of culture in human societies.

The Raspberry Pi provides a private Wifi hotspot which is connected to by a set of Android tablets running an app we have designed to do the recordings in the field. The Android tablets use the Pi to syncronise their data at the end of a day's recording, so if one person records, for example a new mongoose birth, this new individual is distributed to all the other people in the team. Periodically the database from the Pi is sent back to be integrated with the main database, which contains records of matings, fights, births, deaths and details like mongooses defecting from one pack to another - which goes back over 20 years.

3fc9ec345bdfeb7a-crop.jpeg

The Raspberry Pi equipped with an uninterruptible power supply (UPS) because the power at the field site can be intermittent and we need to reduce the possibilities of data corruption with a sudden drop of power. Once it detects that it is running on battery power, it simply shuts itself down properly - so only a few seconds of power is needed.

In this update we built two new Pis and UPS modules, with one as a backup - and upgraded all the software running on it to the latest versions. The hardware has moved on quite a lot since we released the last version, but the software had the most changes, as we had to rewrite quite a lot of the Scheme code which works with SQLite to provide the database.

Another chunk of work was involved with upgrading the Android app so it could be used on new tablets - along with updating the artwork from the mongoose game we made with the same team more recently. While most of the app is written in Scheme (partly so it can be shared with the same code running on the Pi), we converted all of the Java code to Kotlin and updated all the security changes required in modern Android apps. Interestingly ten years ago the use of Scheme in Android was a little unorthodox, so it was nice to find that now it's supported (via a plugin) in the development software.

We are now in a testing phase with the field site team, and potentially looking at new features to add or new things to record which may be needed.