Just to recap the obvious: I use an insulin pump. I also use a CGM. They’re both connected into a closed-loop pump system. But what does that mean?
What is a closed loop?
Strictly speaking, a “closed loop” is one that operates automatically based on feedback. Often these insulin pump loop systems are referred to as “hybrid” closed-loop systems, in that we still have to interact with them. Usually to tell them about food (and to bolus).
Medtronic has for a long time used the “HCL” (Hybrid Closed Loop) moniker for its systems (670G/770G/780G) and in fact any research study with “HCL” in the title has probably been using Medtronic systems.
Some people have been careful to reserve the term “closed-loop” for what they regard as the aspirational “fully closed-loop” (FCL), where we don’t have to interact with it, and it effectively replaces the pancreas. I think that definition can be a bit extreme, as there’s really a spectrum of functionality with that example at one extremity.
I’m not using a Medtronic system, even though when I started “looping” in 2017 I was using a Medtronic 522 pump as the delivery component of the system. I started with OpenAPS, and since 2018 have been using AndroidAPS (which uses the OpenAPS algorithm at its core). Many things have changed over the years since: I’ve refined my configuration of it, the software has gained extra features, I’ve updated my pump several times, I’ve got access to faster insulins, and I’ve learnt more about the behaviour of my own diabetes.
Interacting with the loop
I have lived with T1D since 1982, an insulin pump since 2010, a CGM since 2016, and a loop since 2017. I started out the way most loopers do: declaring carbohydrates and bolusing (injecting insulin) for it, and having the loop take care of the rest of the variability in my BG.
But it’s now been over 2 months since I explicitly told it to bolus. And it’s now been many weeks since I declared food to the system. I just eat, drink, and get on with life. It’s liberating! |
As far as I’m concerned, I have a fully closed loop system.
I know from the occasional counting of food intake I’ve been doing that my carbohydrate intake most days is 200-250g. Most people would not regard that as “low carb”. But I’m not transferring that information into the loop: I’m letting it work things out for itself.
Whenever I stop and think about it: I’m amazed all over again. It’s magic!
Any sufficiently advanced technology is indistinguishable from magic.
Arthur C. Clarke, 1962: Clarke’s Third Law
It is a continual experiment: I’m finding out how it copes with the ups and downs of life, and still deciding which “dials” to tweak to optimise. But in the meantime it’s still extraordinarily liberating!
Just living life
I’m not thinking about my BG every moment of the day. I go for hours without paying it any attention. Then I glance at my watch and get back to living. Whether I’m working at my desk, out working on photography jobs, talking to friends, whatever. Diabetes now spends most of its time in the background of my life!
When preparing/choosing food, I’m not looking closely at the carbohydrate (or even fat/protein) counts. I am of course paying close attention to whether the food has gluten in it. That’s inescapable with coeliac disease.
I am also paying some attention to my overall calorie/kilojoule intake (as I’m trying to lose the last few kg I put on over Christmas/etc, having reached my goal weight in the middle of last year after losing 25 kg). But I’m not being obsessive about that. I’m just trying to eat “healthily”. Most of the time it’s just a general awareness of what I’m eating.
I’m eating what seem like reasonable portions of food, and I am usually eating food that isn’t especially high-GI. But that’s about as refined as the “control” has been lately.
Maintenance, not “control” of the system
I have a small phone in my pocket with a full GUI display, and my pump hiding in a pump belt all day. My CGM and pump data is visible on my Garmin watch and I can glance at it at any point.
I do have to interact with the system at points though. Some examples:
- I usually calibrate my Dexcom G5 CGM once or twice a day. Occasionally a sensor hiccups, and that can interrupt the loop’s operation. The loop does its best to cope, but sometimes the best answer is to put a new sensor in and start it warming up and calibrating before the old one finally carks it.
- I have to change my infusion site every 2-3 days, and the insulin reservoir every 5-6 days.
- Sometimes a site will fail, and I need to notice this and replace the site. Some educated guesses about which of the previous insulin deliveries in the system to mark as “failed” can make the recovery much faster (so it’s not assuming I received insulin which probably didn’t make it in).
- I suspend the system when disconnecting for a shower (again so the system knows not to assume I received insulin during that time).
- If I know I’m going to be exercising (for example I ride 18km each way to/from the office twice a week) I set a “temporary target” beforehand (and during) to raise the BG level the system aims at, and reduce the amount of insulin in my body (which helps avoid exercise hypos). When I finish the exercise I cancel that. These are just taps on my phone.
But I think of those things as “maintenance”, rather than making the loop “hybrid”. I might sometimes delay dessert because I can see that dinner is still kicking in, or I might decide to have a snack because I’ve just got back from a big walk/ride and my BG is heading down (even though I can see the pump insulin flow has already been shut off). But I have faith in the system, and apart from occasional decisions like those I just leave it to see where it goes.
The loop certainly feels “fully closed”!
A breakfast example
- At the top you can see the basal insulin flow from the pump being varied up and down. The dashed line shows the programmed default basals.
- The dots of (mainly green) Dexcom CGM lead up to the vertical line of “now”, with the coloured lines to the right indicating predictions of where I’m heading. The system is currently targeting 5.0 mmol/L.
- Along with the green/yellow BG dots, you can also see the “microboluses” the system has applied.
Shortly after 9am I ate breakfast. About 20g of carbs in a bowl of yoghurt, strawberries, etc. Keep in mind this is at the end of a long fast, and is thus the time of day I am most “carb-sensitive”. As soon as the system noticed my BG start to move up at 9:27, it started applying insulin, with more and more as it continued to rise. In fact both the basal rate and the boluses went into this dosing. And then it slowed down to avoid sending me into a rollercoaster (based on its predictions). Those predictions included the amount of food it had estimated I’d consumed (via OpenAPS’s “UnAnnounced Meals” UAM function).
In the end my BG peaked at 7.5 mmol/L before drifting back into range. Throughout this I didn’t even look at my pump or phone. I know if I’d dosed manually for this meal I would have probably stayed within range, but it wasn’t a big excursion, and I didn’t have to do anything!
Looser goals?
It may seem strange for me to refer to 7.5 as being “out of range”. I have kept the same goal ranges I’ve had for a long time, although I have loosened my expectations of time in range slightly as a trade-off for the convenience of not carb-counting/bolusing.
I have 3 “goal” ranges for my BG:
- 4.4-7.2 mmol/L is where I aim. I accept I’ll never stay in there 100% of the time, but I have that range coloured green on my CGM.
- 3.9-7.8 mmol/L is the range I’m actually hoping to hit.
- 3.9-10 mmol/L is a range I don’t feel uncomfortable extending into. For example if I ride up to 9.5 after a big meal, then as long as it comes down again I don’t feel like I’ve “failed”. I do think about how I can avoid it next time though.
I have the CGM alarms set outside those ranges, so I only get interrupted with alarms if something’s going way out of range.
Results
My CGM data for the last few weeks still seems respectable.
3.9-7.8 mmmol/L | 88% TIR |
3.9-10 mmol/L | 95% TIR |
HbA1c estimate | 5.3% (34 mmol/mol) |
CV (relative SD) | 24% |
My TIR numbers have loosened off a bit, but not by much. Similarly, my predicted HbA1c has not jumped up significantly. The SD/CV has increased slightly (showing my BG is varying a bit more than when I carefully pre-counted each meal, and pre-bolused for some of them) but it’s still at an acceptable level.
We’ll see what these statistics are saying in April (when I’m due for my next set of bloodwork, so an artificial goal boundary) if I’m still doing the fully-closed system by then. It’ll be a longer-term average for a start. But so far so good!
Not an instant system
The setup I’m using was not an instant “plug in, turn on, and everything’s fixed” solution. As I’ve said many times in the past, it has the benefit of years of tuning for my body.
Caveat: Everyone needs slightly different settings, starting with the fact that our insulin sensitivity and consumption is different. It may be that I’m in a sweet spot where my insulin needs are coped with well, and other people may have more trouble finding their own sweet spot. This is the nature of an “N=1” example.However, I’m not the only person having similar success with AndroidAPS/OpenAPS! Especially with Lyumjev in Europe more people are achieving “fully closed” loops. |
At any point I can declare carbohydrates to the system again, and I can get it to calculate and deliver boluses. That’s not a separate mode: it’s just that the extra information I provide through that will usually result in slightly better BG control than letting it work everything out for itself. Delivering the insulin earlier will always make a difference in matching up the timing of insulin and food, and if we get that right we can flatten the BG waves.
Gradual tuning
In 2019 when I started using Fiasp insulin I did immediately try the whole automated thing (faster insulin is supposed to help sort things, right?) but ended up with fairly high BGs. That experiment didn’t last long, and I went back to the “declare and dose” routine that had served me so well with Humalog. But I kept tuning.
There have been phases where I accounted for all the fat, protein, and carbs in my diet (they can all affect our BG) so that I could check the manual doses. With AndroidAPS I can use “eCarbs” to declare delayed carbs spread out over hours and thus model complex meals.
I started reducing the bolus I would apply for a meal (AndroidAPS lets me configure the bolus calculator to only deliver a percentage of the calculation up-front) letting the loop clean up the rest based on what my BG did. Occasionally this expanded to only declaring the carbs and not bolusing at all.
Eventually I got to the stage that I could skip announcing some snacks, letting the loop pick up the slack. Gradually this expanded to whole meals, etc. For larger meals (Christmas had some examples) it can help to at least give approximate announcements of carb intake to give the loop a head start. I’ve now managed to avoid doing even this for months, but I always have the option of declaring carbs.
I do keep tuning the system. And every month or so I end up tweaking the underlying basal rate and sensitivity info (based on observations of the data collected in my Nightscout site) to optimise for my body’s gradually-changing needs.
But on a daily basis usually when I glance at my CGM I just end up smiling.
Don’t get complacent
With the system “taking care of everything” for me, it would be easy to not pay any attention. It is liberating to be able to live more freely, but I do need to pay some attention.
Just as when using a CGM we can fall into the trap of always trusting its data and forgetting to take a BG meter out with us, I do need to keep an eye on the loop and adjust if necessary. It’s just very rarely necessary!
Not perfect, but hopefully a sign of the future
For anyone who says that we don’t have “actual” closed-loop insulin pump systems yet, I find myself cocking my head and asking “Really?”. I must admit it’s hard to not feel smug at that point!
It’s not perfect, but I find it continually impressive. I am looking forward to getting access to Lilly’s new Lyumjev insulin at some point to hopefully flatten the BG waves a bit more, but in the meantime Fiasp is working quite well for me.
A parting thought
I quoted Arthur C. Clarke earlier. It may be relevant to also point out his Second Law:
The only way of discovering the limits of the possible is to venture a little way past them into the impossible.
I look forward to discovering the actual limits of possibility!
I’m also looking forward to be able to travel again with my photography in a COVID world, and continue to see how systems like this stand up to more vigorous life!
Very inspiring David, congratulations on the work you put in paying off so well. The fact that this isn’t a theoretical system, or waiting for FDA/TGA approval, or just entering Phase II trials, or all of the other usual asterisks we see under an optimisic headline, but is actually providing relief in the here and now, is so encouraging.
Inspiring, demonstrating what can be achieved!
You are amazing, David! You continue to impress. Thanks for this post.
Seriously brilliant, David. Smug smiles are very well-deserved!
I am so impressed with the level of control that you manage to achieve David, well done. And yes, huge smug smiles all around. I just wish that I was technically adept enough to venture down this road. It just seems far too complicated for me to attempt. I’m really really struggling financially having updated my Tanden t;slim to the Basal IQ software. I’m now in the position where my finances have changed, and I seriously do not know how I can afford to continue on with the G6. I may have to return to Libre, and spend every waking and none sleeping moment monitoring my BGL. 4 weeks ago, my 58 year old cousin died from diabetic complications. We were diagnosed 2 days apart over 40 years ago. To say I am terrified would be an understatement at this stage. Thank you for your articles, they always continue to give me hope of staving off the inevitable consequences of this evil disease.
Thanks DB for all of your expertise, knowledge and motivation.
If I can get anywhere near what you have already achieved, ill be very happy.
Thanks also for your support.
David, another great article! What pump are you using these, still the Combo? and with the G6?
I’ve been working with some other pumps through my clinical trial work, but today yes I am using the Combo. The AndroidAPS implementation is the same though.
I have primarily used Dexcom G5 since 2017. I did use some G6s late last year, but just in the last weeks I’ve got back into the G6 as part of the Anubis testing (in parallel to my G5).
Great post again. I’d like to measure the same TIR within range 3.9-7.8 mmmol/L as you do. What do you use for it? Nightscout gives me only the ‘standard’ range 3.9 – 10.
Just change your Nightscout config.
In this article from 2019 when you get to the “Four goal posts” section you’ll see the names of the 4 config variables you need to tweak in Heroku (if you’re using that). Look in the red/yellow/green diagram.
Thanks. It wasn’t that hard. You can even change the value within the report UI.
I must have been confused with something else I saw once in a post by you: show several ranges in the distribution pie diagram by adding a colour. It has been a while that I saw that, but think it was here on your blog. Does it ring a bell?