CGMs Part 1 - Great FOSS tools for an OK Quality Consumer CGM

A Stelo CGM I had was expiring so I decided to try out xDrip+. One of those two things works really well. In this part I talk about CGMs in general.
CGMs Part 1 - Great FOSS tools for an OK Quality Consumer CGM
The xdrip+ CGM app on Android.

This is part of a post series. See the final section for more details.

Back in 2024 I was training for a marathon. Also, that year the FDA cleared the first two continuous glucose monitors for over the counter use: Stelo by Dexcom in March and Lingo by Abbott in June. Also, also, I really like BLE devices. [1] See my post on testing out BLE beacons.

Marathon training really puts you through the wringer and I was listening to the book Outlive at the same time. [2] In the book Attia mentioned he anticipated that CGMs would soon be available OTC. He advocated for people to try them out as a way to learn about how food affects you. Since Lingo was released second and only received official Android support last month I gave the Stelo a try.

Results were mixed at that time. The Stelo app was sparse in terms of functionality and every single Stelo I received failed before the 14 day lifetime was up. On the plus side, when a device failed Dexcom would let you fill out a form to report the failure and get a replacement with essentially no questions asked. I had replacement devices fail and they replaced those too.

I ended up with one CGM that I never used and packed away until recently when I realized it was going to expire. [3] Stelo now has support in the FOSS space, so I decided to make a project out of the adventure. [4]


xDrip+ is a really great FOSS app for CGMs

Based on the original xdrip app from 11 years ago. xDrip+ is a data hub for CGMs and other devices that is managed by the Nightscout Foundation. The Nightscount Foundation formed in 2014 as a part of the We Are Not Waiting movement and the CGM in the cloud movement. [5]

They also have the software Nightscout, which is a FOSS application for managing CGM data in a personal cloud. Nightscout is very cool and I wanted to write about it, but this post is already pretty long. [6]

Anyways, as I mentioned, the Stelo Android app leaves a lot to be desired. Likely, this is to make it clear the device is not for managing blood sugar. In my post on switching to GrapheneOS I talked about shifting to more FOSS apps. xDrip+ now supports the Stelo and I had a leftover Stelo so why not experiment.


On FOSS grifters and closed loop systems

Confusingly, on IOS there is the xdrip4ios project which is not related to xdrip+ or the Nightscout foundation at all. Though, the project is licensed GPL-3.0 just like xdrip+.

The app is not on the app store out of caution that CGM companies might be litigious. So confusingly, Zukka on the app store is a build of xdrip4ios but is not built by the xdrip4ios folks. Though the docs describe the two as having "open and constructive discussions".

Yet even more confusingly, Shuggah on the app store is also a build of xdrip4ios. However, the developer started putting features from the core project behind a paywall. It is safe to say there are no constructive discussions between the author of Shuggah and xdrip4ios and we can infer that when the docs mention "Unlike another app that used our free source code and published it on the App Store despite previously promising not to profit from our work and keep it free for all users" the app referenced is Shuggah.

Semi-related, there was a recent Reddit thread about how a person's insulin pump runs the Linux kernel and violates GPL. Both that thread and the HN thread about the Reddit thread contain some really interesting discussion. Close loop systems are a whole other world of devices that not only measure glucose, but also infuse insulin when needed. I have no background with these devices though, so I'll just stop here with the links to those two threads.

See my post on terraform and openTofu if you want to read more about my disdain for people shirking FOSS licenses.


CGMs are a bit different than other glucose monitoring methods

In essence, the different devices out there measure different metrics, but they all try to get at the same concept. This article goes into more detail, but here is my understanding of the basics.

A blood draw is the most accurate way to measure blood glucose, that's the sugar circulating in you. Whereas a finger-sticks measure blood sugar in capillaries, the small blood vessels, of your fingers.

I have a finger-stick monitor called the Countour Next One because... I like Bluetooth devices? There is a standard ISO 15197:2013 that requires these devices to be within ±15% of a reference value. [7] My device was measured to typically read ±10%.

CGM's don't directly measure blood. Instead, they use interstitial fluid which is the liquid between cells:
<a title="Auguste Dargent

Hospices Civils de Lyon, Hugo Dumargne, Marie Labruyère, Stéphane Brézillon, CC BY-SA 4.0 <https://creativecommons.org/licenses/by-sa/4.0&gt;, via Wikimedia Commons" href="https://commons.wikimedia.org/wiki/File:Intersticio_(órgano).jpg">Illustration of a cross section of the interstitium.

Glucose eventually goes from our capillaries into this fluid. This means that CGMs are technically not even measuring blood sugar, but instead the interstitial glucose level. Depending on several variables, it could take 2 to 24 minutes for interstitial glucose to catch up to blood sugar. This reminds me of when Marco Altini talked about how a HR chest strap measure can be used to derive HRV, whereas optical heart rate sensors on our wrists or fingers are actually measuring Pulse Rate Variability (PRV). The two are very similar, especially when sitting, but not the same measure.

Stelo cites 93% accuracy. Note they are using absolute values rather than percentages, but the device is around ±20%. One way to frame all of this is that there is a reasonable accuracy / frequency trade off here. You won't get blood work done every day and blood work results take time. You can do finger-sticks more frequently and a CGM is well, mostly continuous at 5 minute intervals. The increased frequency is useful if the short term trend is what you care about.


On calibration and "wellness devices"

Regardless of the accuracy, the Stelo is not approved for dosing decisions. The Stelo is sold OTC under the category of a wellness device. Not for clinical diabetes management.

When I was trying out xDrip+ I kept seeing "calibration" mentioned. I was curious if I could use my finger-stick tests to improve the accuracy of the Stelo. The short answer is "no". The medium answer is "no, but that is OK". The longer answer has to do with factory calibration.

The Stelo FDA approval says:

The Stelo GSS firmware is designed to support a factory-calibrated only device.

I saw a lot of conflicting information online about whether this was a choice by Dexcom, or a requirement by the FDA. For example, Signos is some weight management app which uses Stelo. [8] Their support page says:

Because the Stelo biosensor is not intended for the treatment or management of medical conditions like diabetes where precise glucose readings are essential, the FDA does not allow calibration for this device.

To the best of my reading this does not seem correct. I cannot find any requirement by the FDA to make this restriction.

This xDrip+ issue on calibration provided useful context as does this page in the docs. Essentially, its not that these OTC devices cannot be calibrated and prescription CGMs can be calibrated. Instead, CGMs in general are moving away from user calibration to factory calibration. Early CGMs required daily calibration or they would drift. Modern CGMs do not drift as much, and manufacturers want to make adoption easier on users. This piece by Abbott clarifies that factory calibration is simpler for people than manually calibrating.

What this all means is that I can manually log finger-stick tests in xDrip+. They will show up on the timeline, but they will not be used for calibration.


More to come on CGMs

Similar to my Framework Laptop, high school project, and GrapheneOS post series, sometimes when I sit down to write a post they get too long and become multiple posts. Usually I try to drop all posts in a seriesa the same time, but I'm going to release them individually this time. I'll have a part 2 soon about actually using the Stelo with xdrip+ and will eventually put up a part 3 about analyzing the exported glucose readings.


  1. Which I mentioned in my post on Pokemon Sleep. ↩︎

  2. I read the book again this year so I could make highlights. ↩︎

  3. Yes the CGMs have a limited shelf life. Dexcom states this is because the sensors may no longer be accurate. It makes sense that at some point the sensors will fail. This study from 2006 concluded that "Prolongation of shelflife label and insertion time appears to be reasonable". ↩︎

  4. A long dormant xDrip+ issue on Lingo support is active again now that there is Android support. ↩︎

  5. Which based on my research started with this Facebook group. ↩︎

  6. I will share though that there is a guide for installing on NixOS. ↩︎

  7. Which I believe should be a blood test, but with more rigorous handling than you would get at the doctors. ↩︎

  8. I have never tried the app, but it came up as an example. ↩︎

Member discussion