Intel® Ultimate Coder Challenge 2016 – Team Update: IoT Vaidya

Team IoT Vaidya Bridges Rural Healthcare Gap

Editor note:This is the third in a series of interviews with leaders of the five international teams competing in the Intel® Ultimate Coder Challenge 2016.

Selected from among 180 worldwide entries, five global teams are competing in the Intel® Ultimate Coder Challenge 2016, with a common goal -- to use IoT to help solve real problems. Tackling challenges from transportation to healthcare, coders are using unique approaches with Intel® edge and gateway devices and common sensors, motors and switches that you would find within our standard Grove Sensor Kit. Whichever team’s solution is judged to best address the problem in their vertical will be named winner of the challenge.

Team IoT Vaidya – Healthcare for Rural Areas

This project helps to bridge the gap between remote areas and doctors. This is a standalone solution meant specifically for people living in remote places where there is shortage of doctors. It covers all the necessary steps right from the basic diagnosis to prescription generation.

When Team IoT Vaidya -- team lead Mahavir Dwivedi, entrepreneur and platform engineer Milind Deore and newly graduated IoT engineer Arun Kumar saw that there is a huge shortage of doctors in the rural areas, they felt an IoT solution could help. The situation has been further worsened by the reluctance of doctors to work in these regions. In such a scenario, getting basic healthcare is difficult and a regular health checkup is a distant dream.

Mahavir Dwivedi, Team IoT Vaidya Lead, is about to receive his Bachelor of Engineering degree (specializing in Electronics and Telecommunication Engineering) at the Army Institute of Technology in Pune, India. He has created a number of projects, including a Wireless Patient Health Monitoring System, Electronic Inauguration Lamp and more. Dwivedi has received First Prize at Eclipse Open IoT Challenge, was the Finalist of Young Mind Awards, Semifinalist of Texas Instruments Innovation Challenge, First Prize for the Alumni Sponsored project competition and recognition as Technical Innovator for MIT Kumbhathon 2015. He also attended the IoT Intel® Hardware Hackathon in 2014. Dwivedi is looking for challenging opportunities that demand the best of his technical and analytical skills.

Q: What does this project mean to you and your team?

A:  Before participating in the Ultimate Coder challenge we had been to various hackathons and project competitions. Though we performed fair in all those but we could never take those projects to next level. This time we planned to work on something which could be useful to society as well as it involves learning and has huge opportunities for innovation. That’s how we decided to work on a healthcare project.

After doing a good amount of research we learned that though the market is gearing up for a biometric wearables revolution, countries like India still suffer from a shortage of doctors and the situation is even worse in rural areas. Thus we have a problem to solve, and now we are building a standalone cognitive health monitoring system.

The data is recorded from the patient’s end and is sent to a doctor, the doctor can then take a look at the patient’s vital parameters and give the feedback via SMS (As we are building this solution for rural areas, we chose SMS as our feedback mechanism. The SMS sent to the patient is translated in his/her local language). During this process we apply cognitive computing to give feedback to the patient.

For the time being we are applying machine learning on ECG waveforms. We are looking forward to the use computer vision to diagnose diseases such as a cataract.

Q: Describe the sensors you’re using and any challenges with them?

A:  Though the IoT kit provided by Intel® included some amazing sensors from Grove*, we are building a healthcare monitoring solution so it was never going to be enough for us.

So we included our very own sensors. To select these sensors we have taken following factors into consideration:

Doctors: we have consulted with various doctors, to get acquainted with the type of data (parameters) required for primary diagnosis of a patient.

Invasive/Non-invasive: All the sensors which we are using for our project are non-invasive, so that infections can be avoided.

Cost: For the time being we are focusing on primary diagnosis of patient, hence we have avoided using costly complex bio-medical sensors.

The following are the sensors we have used :



3.Blood Pressure


Challenges with ECG:

For recording the ECG of a patient we used an ADS1298 with the Intel® Edison board. ADS1298 is an analog front end board. As the ADS1298 communicates over SPI with the Intel® Edison, it took lot of time to set a working clock rate for both of them.

Q: What software, programming languages, and cloud services are you using and why?

A:  We have not limited ourselves to any one language. As this was only an 8 week competition it was not possible for us to write each and every bit from scratch

So we have developed our solution above based on various open source libraries, frameworks and software.

Languages used:

  1. Python* - Used for writing scripts on Intel® Edison
  2. Java*
  3. C++ - For writing Arduino* programs
  4. C - For implementing Zephyr* on Arduino* 101
  5. Golang* - For interfacing AllJoyn* with Intel® Edison
  6. Javascript* (On the Cloud)

Cloud Services used:

IBM Bluemix*, it provides an IoT foundation service and other very useful services like Twilio* SMS API. We were also hoping we could make use of IBM Watson* Cloud API for Visual Recognition (Cataract recognition)

The second reason was NodeJS SDK*. IBM Bluemix* provides a diverse collection of run time libraries. Having  prior experience in server development using NodeJS, IBM Bluemix* was great option given the easy environment for development.

DataBase : MongoDB* from

Machine Learning : We discovered Numenta’s NuPIC* project as a wonderful tool for detecting anomalies. This being a Python* based project and an Open Source platform, best suited our implementation.

Q: Share any challenges, funny stories and solutions that you’ve encountered so far.

A:  So we had quite a few challenges:

  • Delay in the Arrival of Intel IOT kit: As the competition started on the 21st of May, we were expecting to get our kit by the middle of that week. The kit arrived in India on the 18th of May, but due to the never-ending paperwork of the Indian Customs Clearance offices we were handed our kit on 7th of June. Yes , in a 8 week competition we were delayed by 17 odd days.
  • Moving to a different location:  When the competition started we were based in Pune at our college. 

A Moving Target
As we graduated, we moved to a new city (Bangalore) to join a startup. So moving during the competition resulted in wastage of time, which ultimately led to a quite hectic and busy schedule for us in the weeks ahead.

Q: What data are you feeding to the cloud, and how are you using it in your solution?

A:  The data is first stored on the gateway (Dell* Wyse 3290) in the form of a CSV file. There are three files - gsr.csv, bp.csv and ecg.csv

On the gateway a UI is built using Python* which has buttons and forms. The form contains patient details and buttons command the data acquisition. After clicking on the submit button, the data is sent to the IBM Bluemix* IOTF Service. Hereafter, the data sets are structured in JSON format.

The data is sent using two protocols:

MQTT (Message Queuing Telemetry Transport) is a M2M protocol. The parameters are sent using this protocol

HTTP protocol is used to POST images of the patient to IBM Bluemix*.

Challenge Winners Announced in August

The teams have been steadily coding, wiring and assembling their projects. In the final phase, teams will make final presentations, demonstration videos and display the prototypes that were produced. Follow the Ultimate Coder site showing current progress, pictures of their products, and comments from fans and judges.  Judging begins in August with the winners announced soon after.

For more complete information about compiler optimizations, see our Optimization Notice.