#FreestyleLibre & #MiaoMiao: Two weeks. What did I think?

After running with the FreeStyle Libre with the MiaoMiao as a CGM system for two weeks, I’ve drawn some conclusions from use, although there’s a world of work to do to extract the data from NightScout and generate some real analysis.

Firstly though, let’s be clear on what the experiment was. As I discussed here, my first 5 days didn’t generate the type of results that I expected to see, as both the OOP algorithm and the xDrip algorithm weren’t keeping up with the Dexcom G6, which in and of its own, wasn’t really performing as well as I’d normally expect.

So, like any good experiment, just to be sure that the result wasn’t skewed by the specific sensors, once we got to 7 days, I switched the two over.

For the first 7 days, sensor A ran the xDrip algorithm and sensor B ran the OOP algorithm, while for the second seven days, sensor A ran the OOP algorithm and sensor B ran the xDrip algorithm.

So let’s have a look at what happened following the last update on this topic.

In a single photo, you can see the typical state of affairs, where typically, xDrip would be higher than the calibration value, OOP would be lower than the calibration value and G6 would be thereabouts the calibration value. Of course that wasn’t always the case, and there were times where the G6 was off by more than either Libre, but those were relatively few.

Switching algorithms around

What happened when we switched between the two algorithms?

Firstly, swapping from xDrip algorithm to OOP algorithm.

Swapping from xDrip to OOP

You can see, right in the middle of the image, what happened when we swapped the algorithms over. An instant drop of around 1mmol/l.

If we look at what happened on the other one, where we swapped from OOP to xDrip, it jumped the other way, by a greater amount.

Swapping from OOP to xDrip

With this one, however, we can clearly see where the blood was (note the square point means it was simply a test, and not a calibration).

So in both, on the switch over, we can see a very clear break in the way the two algorithms read the data. As we’d been using the OOP algorithm, which can’t be calibrated, the jump was simply the reading of the native values.

General Trends

What this helps to demonstrate was the general trend, which was that for me, while the OOP algorithm generally ran low, the xDrip algorithm generally ran high. This wasn’t always the case, as the picture below demonstrates, but for a large part of the usage time, that’s what I observed.

G6 running furthest from blood

This image certainly makes it look like the OOP algorithm picked up the low first, but as we identified in the first tranche of this review, the G6 generally picked up changes fastest.

Comparing three systems (1)

Here we can see the three systems all close to one another, but for once, the xDrip algorithm was reading lower than the OOP algorithm, while the G6 was right on the button with the bloods.

Comparing three systems (2)

If we look at the second of these two images (colours are for the same systems), we can see a very different response, Where in this case, the xDrip algorithm seems to have interpreted the changes in data points much less than either the OOP algorithm or the G6 algorithm. What the second image also highlights is that the G6 is already picking up the uptick that hasn’t yet shown on either Libre algorithm. You’ll note that there is an earlier calibration where all systems are relatively similar in numbers and as the morning progressed in the this second image, xDrip and G6 drifted apart, which was a common occurrence.


Calibration and subsequent traces

Similarly in the above image, you can see the variability across the three algorithms. I could go on, but my experience with the Libre and two MiaoMiaos was consistent on two different phones having switched the algorithms over at the midpoint.

Clear variation between the three algorithms over 24 hours

As the above picture shows, it was possible to get quite different data from all three systems, so you need to know just what you are looking at.

But one of the interesting observations is that when you look at what the native LibreLink reading was, versus what the calibrated xDrip value was, often, the xDrip value was significantly more realistic.

I think the graphs generally back this up, as in most cases, the OOP value was a lot lower than the xDrip calibrated one.

And of course, one shouldn’t forget the other fun thing with Libre. How do you get on with the adhesive. Now, both the MiaoMiaos and the Libres stayed stuck with no additional tape for the duration of the two week test, but as you can see below, the “Libre Kiss” marks were forming…


What I haven’t done here is produce a MARD, or anything similar from the data. I don’t think that would be a fair reflection on this setup, as from many accounts I’ve heard, people see reasonable closeness to bloods with the xDrip calibrated Libre using MiaoMiao.

What I hoped to illustrate is that people using this set-up should be aware of what they are using and understand the limitations and potential pitfalls with it.

In all the Dexcom implementations of xDrip+ and Spike, you are getting a normalised data point, which has already taken vagiaries relating to temperature, etc, into account. Raw is not raw. In the Libre, you are acting on a data value that is completely raw and doesn’t have the additional normalisation applied.

The reason I swapped the two algorithms over in the middle of the sensor lives was to see whether there was variance across the outputs of the two sensors. If one had been reading slightly differently to the other, then the results with xDrip’s calibration might have been different. What the swap shows is that for me, the two Libres were acting consistently and that the xDrip algorithm generally produced a value that was quite a long way from the actual blood reading (with the caveats already mentioned). Sometimes higher (as in the first five days of testing) and sometimes lower, as many of the examples here show.

While lower is better for looping, higher does increase the risk of too much insulin being delivered, so if you are using the Libre with MiaoMiao or Bluecon, you do need to be aware of the potential risks associated with this approach.

There is still a piece of work to be done to compare the data from the algorithms by extracting it from the NightScout database and performing further analysis, however, that’s going to take a little time.

I think the key outcome for me with this trial was that xDrip (and I assume, Spike) does improve the accuracy of the output from the Libre in general, when used with the MiaoMiao, but I wouldn’t rely on it (as I wouldn’t rely on the Libre scans) for dosing insulin.

It’s an enhancement, but for me, it’s not a replacement for an uncalibrated G6, which seems to do the job a whole lot better.


Thanks to Alasdair McLay and Kamil Armacki (Nerdabetic) for the loan of the two Miao Miao transmitters.


  1. Interesting findings. I have been using Libre/Spike for some months now and found it to be accurate compared with blood tests. I would love to try CG meter but don’t qualify under NHS and cannot afford to self found so it will be interesting to see how Libre/Spike vs CGM fairs longterm.

    • I’d urge anyone using Libre with Miao Miao to have a day where they do 16 evenly spaced blood tests for comparison to confirm the tracking.

      My experience wasn’t great, but it’s always a good reference for someone.

  2. While my situation is a little different, my Freestyle Libre and Accucheck meters track the same most of the time. I am using Glimp on my phone. Once in a while when my blood sugars are changing the Freestyle readings will lag behind in time by 15 to 30 minutes. I should note that I use a ton of prednisone, other steroids and acetaminophen that may effect the readings. I rely on the alarms for changing blood sugar levels and have found them to be adequate. I still do a finger prick to be certain. The Freestyle has been wrong only once.

  3. I have noticed, now that I am looping with Omnipod, that there is significant rest Retrospective smoothing within the G6 App. The raw data appears to fluctuate quite significantly when looking at the CGM data in loop. Interestingly I found that the data from the FSL using Spike was less erratic than the raw data from the G6. I was wondering if you had noticed the same?

    • I’ve only really used the G6 with xDrip. I don’t use the G6 app, so haven’t compared the two. My experience of Libre and Miao Miao in xDrip compared to G6 was that there wasn’t a huge amount of variation around data points.

      I guess it also depends on what you are expecting. A fluctuation up or down of 0.1 or 0.2 is expected. If you’re seeing 0.5 or more regularly between data points I’d question whether there was an issue with the sensor.

  4. I’m about to start on the looping journey and, as I now qualify for Libre on the NHS, that is what I will be using, with Miao Miao. I have been dosing from the Libre for two and a half years and am doing fine. Blood test checks confirm Libre values, except when BG levels are changing, which is what you would expect.

    • Hi John,
      I am in exactly the same position. What are you using for the rest of your loop system?

  5. Apologies for the necro-post, but this page is where you come from Google search. Thank you for doing the comparison too! ?

    I’ve been using Libre for more than a year and have just started using a Miaomiao.

    I’ve not used the xdrip algorithm yet but the Libre/OOPalgorithm reads consistently lower than finger prick tests across the board (i.e. during transients and steady-state, in both cases assuming the standard delay in the Libre reading Vs finger-prick).

    For this sensor it has what looks to be a constant offset of 2 mmol/l, so I think it’s time to try the xdrip algorithm.

Leave a Reply

Your email address will not be published.