Sunday, May 12, 2013

Creating a Glucose Monitor Watch

One of the greatest improvements in Diabetes care in the last 20 years is the Continuous Glucose Monitor(CGM).  Dexcom makes arguably the best of these gadgets.  Currently, the monitor is an iPod Nano like gizmo that fits nicely in the pocket.  Still, it doesn't pass as a cellphone.  Additionally it's expensive.  There's no way around spending the money(or your insurance companies money), but destroying it by accident is best avoided.
All this technology, why can't I have my glucose reading in a watch.  One point that the industry appears blind to, is the people that have to use these things, would really like it if they could be better hidden.

So, how to get the numbers off of the Dexcom and send them to a "smart" watch ?  Additional bonus, the Dexcom can be safely stored somewhere near by and better protected from destruction when I'm on a dirt bike ride.  Also the form factor of the watch, allows me to keep track of the numbers when I'm kickboxing, since the monitor won't survive a hit.  Also, the smart watches are about half the price of a Dexcom unit, so they can be sacrificial.  The one I'm starting with is 1/10th the price.

Texas Instruments has an interesting product, the eZ340-Chronos, that's been out for a while.  I purchased one from Sparkfun.  The goal for the watch is to be able to send a number to it.  After a lot of time on Google, it became clear that the intent of the watch is to send limited information, not receive it.  The only receive mechanism that appears it would work, ie. display a glucose reading , real time, is the BlueRobin  heart rate monitor component.  The BlueRobin component isn't part of the watch that's really meant for developer customization.  A demo app for the Chronos, "Control Center", includes a sample program that sends "fake" heart rate values to the watch, exactly what I want.

I wasn't able to find source code for this product, and what code/documentation I could find for the BlueRobin  module, just confused me.  So, I loaded a Serial Port Monitor software package, and watched the packets being sent to the watch as I ran the demo.  What I found was:
Sending Hex "FF 02 03", starts BlueRobin .
Sending Hex "FF 05 04 XX" sends a number to the watch.  Where XX is the Hex representation of the integer I want to send.

Success, I can send a number to the watch, now to get the number!


  1. Could you share your script? I am trying to duplicate this.
    Thank you

  2. I am also trying to duplicate this. If you have a bit more instruction I could make it happen.