Hello there,
I recently got diagnosed with a diabetes type 1. Like all diabetics, I got a glucometer device that comes with a windows/mac closed-source application. That’s clearly not acceptable for a freedom lover! So here is my new challenge: reverse-engineer the USB protocol of my Abbott FreeStyle InsuLinx device, and write an open source Linux application for it.
And here it is: https://github.com/xclaesse/OpenGlucose
So far it only fetch the bare minimum information from the device and print them in the terminal. More GUI/features will come later.
If you’re a geek diabetic, your help is welcome!
Hi, I am interested in security [1] of any medical device. Well, thinking about the issue, I’ve seen interesting things so far [2].
I took a look at your code and I noticed nothing is required to authenticate in order to access your meter. For sure it is not dangerous as it would be if it is an insulin pump.
Anyway, please keep blogging about your findings/concerns while using these devices. For sure, I will learn reading.
Thanks.
[1] https://github.com/claudioandre/JohnTheRipper
[1] https://ics-cert.us-cert.gov/alerts/ICS-ALERT-13-164-01/
You might want to get in touch with Diego Elio ‘flameeyes’ Pettenò who also did some work in this field: https://blog.flameeyes.eu/tag/glucometers
Nice work on the FreeStyle! I gave up on trying to snooping the protocol, and settled on the LifeScan for now, but I’m definitely happy to see more work done!
My glucometerutils is written in Python, but I have been toying with the idea of writing a UI for it.. might as well try to see if I can include support for my devices too.
Also I’ll send you a pull request with some build system fixes 🙂
@Claudio: I don’t think there is any security issue in reading a glucometer device. However it is important to be reliable when used for medical purpose and my app clearly say there is no guarantee, and I advice to use official application to take medical decisions like changing the insuline dosage. I don’t want to be in troubles… :p
@eliasp: Right, I’ve seen his app while googling but he doesn’t support my device. I decided to write my own mostly for the fun of it, but indeed we could share some effort. Thanks.
@Diego: I was about to write you an email 🙂 Did you receive any protocol documentation or is your work also only based on reverse-engineering? It has been only a month I’ve been diagnosed so I’ve got only that device they gave me at the hospital, so I’ve got no other devices to try atm. Now that I can retrieve some info from my device, I’ll focus on writing some GUI, but I’m not sure yet what toolkit to use to draw graphs. I’m a GTK+ dev but I don’t think it’s really made for that kind of work… Did you already worked on that?
Why don’t you use a device that has a nice free interface?
My Accu-Check Mobile identifies as a mass storage device and those contain CSV files with the raw data and generated HTML to get a rudimentary UI for the data.
@Bejamin I did not choose my device, they gave me one at the hospital. I’m happy to hear device with open interface exists, I’ll get one of those Accu-Check when I have to replace mine, thanks.
I think I’ll do the GUI inside a WebkitWebView and do everything as HTML/CSS/JS, using http://www.chartjs.org.
Unless someone has other ideas to easily draw charts?
I have a modest system that worked for my wife until she change meters: https://github.com/daniel-thompson/ultraeasy
My driver has a strong split between link later, protocol layer and applciation so I doubt it would be too difficult to glue into your code (just shear off the application and write a gobject wrapper). Would you be interested in this sort of thing or you hope all the drivers will be glibized?
PS See https://github.com/daniel-thompson/ultraeasy/blob/master/src/ultraeasy.h for library interface.
PPS I would certainly consider relicensing my code under GNU GPLv2+ if it helps encourage a decent free software glucose management suite. Did you pick GPLv2 for particular personal reasons?
@daniel: thanks i’ll take a look. I really dont care about licence… Do wtf you want with it. I chose a GPL just for the no warranty clause because it’s sensible on medical related app.