I have spent a few years performing research in the field of inflammatory bowel diseases (IBD): Crohn's disease (CD) and ulcerative colitis (UC). In these diseases, inflammation of the intestines causes a variety of unpleasant gastrointestinal (GI) symptoms. In the past, I performed examination on the intestinal bacteria of those suffering from these debilitating diseases in order to understand how the composition of these microbial communities change in the disease.

Not only have I had some history of GI research, I've had GI problems myself; in addition, several of my friends have been diagnosed with conditions like CD and irritable bowl syndrome (IBS). I've been thinking a lot about the use of technology in improving quality of medical care, and that thought process and my own experience led me to this idea: Doctors, when presented with digestive problems, will often ask about frequency and consistency of bowel movements in order to gain insight into gastrointestinal health and abnormalities. Data on the duration of abnormalities (diarrhea or constipation) and patterns in abnormal bowl movements could provide insight into causative factors. However, it is often very hard for patients to remember information about their last bowel movement, so much as ones they had a week ago.

I chose to utilize my new device, the Pebble Time, in order to solve this problem. I created an app for quick and easy recording of poo data. The Pebble is a good choice of device for a medical wearable, as it is compatible with both IOS and Android. Wearables are an exciting new trend in mobile technology. In my mind, they serve two major purposes: notifications & haptic feedback; and quick access to simple functions which might otherwise be contained in mobile apps (requiring you to take out your phone). I hope to utilize this second purpose (quick entry) in developing a medical monitoring app that allows quick input of stool data. This data may later be analyzed and visualized for medical monitoring or research.

What it does

There are two components to this application: a Pebble WatchApp written in C which allows for quick entry of stool data; and a webserver/database/website which allows for data storage and viewing.

The WatchApp allows the user to quickly enter in a value from the Bristol stool scale (a system which enables patients to easily & intuitively communicate the consistency of feces to their doctor). Users simply scroll through a list of descriptions until they find one which matches their own - the entry is very speedy after a few uses. In the future, I will consider adding optional inputs for volume and presence of blood (these could be enabled on a phone-side config). Right now the watch face has been tested on Android, but should also work on IOS.

The website, which can be found here, is used to view the data which is recorded by the WatchApp. Right now, I have a server running a demonstration visualization for the data collected by my watch (or anyone running the app).

How I built it

This build took a full day of coding, in several different languages, and using several different sdks/frameworks. I began by developing the user interface for the Pebble WatchApp using C. This took a good bit of time as I am not an expert in C (this is actually my first major project incorporating C).

I then developed three different javascript programs: the first runs on my mobile phone using the PebbleKit Javascript API; it is responsible for receiving the data sent from the C WatchApp (over bluetooth) and then sending that off to the web-server for entry into the database. The second is a node.js script which hosts a webserver, which can receive new data, store and retreive entries from the MongoDB, route, and serve data/webpages. The data which are output by the node.js server are used in the dashboard. I use the highcharts library to draw charts; the third script makes async JSON calls to the node.js server to fetch cleaned data, then creates and appends the charts.

Challenges I ran into

The biggest challenge I ran into during this competition was formulating an idea. Many other participants came in with teams and ideas already prepared. I began by joining a team from the Google Sheet, but our original Pebble app concept fell through (a resource we thought was free actually cost 150k). We brainstormed for 3 hours, but failed to come up with any great solutions - I found it very difficult to brainstorm for such an open-ended challenge. I pitched this app idea to the group, but nobody wanted to join me, so I just began coding it as they brainstormed. I finished out the first night by getting a functional UI up and running.

My other major challenge was an accident: on Sat. morning I was working on the WatchApp, when my computer ran out of power. When I rebooted, all of the files in my project directory (including my git repository) were corrupted. I had not yet created a remote repository, so all my progress was lost. I was not shaken, however, and I was able to use the C tricks I learned the first time around to rebuild all that I had lost within an hour or two.

A small inconvenience: I had originally planned to use my free domain from to link to the dashboard. I registered for, but unfortunately my domain-name has not yet been setup.

Accomplishments that I'm proud of

I overcame all of the major challenges I came across in the course of this hack: the inability to come up with a good idea with my original group, and the loss of my work. As a solo developer, I also think that I did a pretty good job on this large and multifaceted project. I'm also proud of this idea: it is simple, yet could have some significant implications for gastroenterological healthcare and research.

What I learned

All sorts of stuff! Practiced some C. Learned to think about ideas and iterate quickly. Got a hang of building watchapps for pebble. And met new people!

What's next for PoopLogger: Gastrointestinal Health Tracking on Pebble

There are a lot of features that could be added to this app. I believe the logical next step would be publishing this as an open source program, and incoporating my priority features. I might also want to introduce an account system to keep track of everyone's data; currently the dashboard is a proof of concept to demonstrate the capacity for visualization and includes all data. Starting today, I will be using this app myself to track my intestinal health! Eventually, I would like to talk with healthcare providers and researchers to see if they could incorporate this sort of technology into their work.

Share this project: