
Release Notes
The latest updates from GluKaMon
-
GluKaMon 1.1
GluKaMon is now released. If you are happy with the 1.0 release there is no need to upgrade, but there are a few enhancements, fixes to some rarely occurring bugs, and some legal stuff to make sure that GluKaMon is fully compliant with privacy regulations in all major jurisdictions (GluKaMon takes your privacy seriously, release 1.1 just provides makes that more explicit)
To download and install GluKaMon 1.1, just:
- Go into the extensions menu on your Karoo and delete the current copy of GluKaMon
- Download the latest version from the Setup page
- Install as normal (instructions are on the Setup page)
You will have to re-enter your CGM credentials and any other settings
Enhancements
Find your xDrip / Juggluco server without typing its address
- Setting up the local xDrip / Juggluco connection over Wi-Fi used to mean finding your phone’s hotspot IP address yourself and typing it in — and if you got it wrong, the only sign was a generic “cannot reach server” when you pressed Authenticate. There is now a Find server button under the URL field (Wi-Fi transport only). Tap it and GluKaMon looks for xDrip / Juggluco on the network your Karoo is joined to, then fills in the address.
- It only fills in an address that actually answered, so if it finds something, it works. You can still type an address by hand, and nothing is saved until you press Authenticate and Save as usual.
- What it looks for. Find server looks for your phone — the device your Karoo is routing through — which is exactly right when you are on the phone’s own hotspot. If your Karoo and phone are instead both joined to a home or office Wi-Fi router, the phone is just another device on that network and Find server cannot pick it out; type its IP address in by hand and GluKaMon works out the rest, including the port. It deliberately does not scan every address on your network, which would be slow, drain the Karoo’s battery, and look like a port scan to anyone watching.
- One caveat worth knowing: many recent phones deliberately stop hotspot clients from reaching the phone itself. If yours does, nothing GluKaMon tries can get through — not Find server, and not an address you type either. The way around it is to install xDrip or Juggluco on the Karoo and pick the Loopback transport instead. See Troubleshooting in the README.
When a local server rejects your secret, it now says so.
- Setting up xDrip used to fail with a bare “authentication failed (HTTP 403)”, which looks the same whether the secret is wrong, the address is wrong, or the wrong app is answering. GluKaMon now passes along what the server actually said — for example “server said: secret_api wrong” — so you know to go fix the API Secret rather than hunt for a network problem.
- Your secret itself is never shown.
FreeStyle Libre: the patient’s name is now optional.
- If your LibreLinkUp account follows only one person, you can leave First name and Last name blank and GluKaMon will pick that person automatically. This matters if your name uses characters your Karoo’s keyboard cannot type — previously there was no way to finish setup at all.
- Fill the names in only if your account follows more than one person; if you do type a name it still has to match, so a typo is rejected rather than quietly ignored.
- Nothing changes for riders who already entered their name — and as a bonus, GluKaMon now remembers which person it resolved, so a name change in LibreLinkUp no longer stops your data. Both fields are now labelled optional, with a note above them explaining when you can skip them.
Bug Fixes
- The trend arrow no longer overlaps the timer in a tile’s heading. On the combined Value, Change & Trend tiles the arrow could, on rare occasions, be drawn touching the “⏲Xm” data-age indicator in the top-right corner, clearing itself a few seconds later. The arrow now always keeps clear of the heading, at every tile size.
- A local xDrip / Juggluco server with no recent readings no longer looks broken.
When your local server had nothing to report for the window GluKaMon asked about, it answered in a way GluKaMon mistook for a corrupted response — so your tiles showed?(“can’t reach your CGM”) and polling kept retrying as if something were wrong. It now correctly reads that as “reachable, just no readings yet” and shows—, exactly like every other source during a sensor warm-up. - “Cannot reach server” no longer names the wrong port. The message could report the port GluKaMon had already given up on rather than the one it actually tried last, sending you to check something that was never going to answer. It now names the address it really used.
Legal Notices
- [!] You will need to re-accept the disclaimer once. GluKaMon now asks for your explicit permission to process your glucose data, so the text on the CGM Account Settings screen has changed and your previous acceptance no longer counts. Open Settings → CGM Account Settings, read the disclaimer and the new data-handling note beneath it, tick the consent box and press Authenticate and Save. Until you do, GluKaMon will not poll and your tiles will stay empty — you will see the usual
“credentials missing” message at the start of a ride as a reminder. - [!] If you record glucose into your FIT files, you need to confirm that too. Display & Log settings now explains where those files can end up — FIT files containing your glucose may be uploaded to Hammerhead/SRAM and passed on to any activity service you have connected to your Hammerhead account, each of which handles the data under its own privacy policy — and asks you to consent explicitly before
GluKaMon writes glucose into them. Recording is paused until you answer, even if you had it switched on before, because consent to the old, shorter wording is not consent to this. Open Settings → Display & Log Settings, read the note, and choose Yes. Choosing No is recorded too, and stops future recording — but neither answer can remove glucose from FIT files you have already created or uploaded. - A plain-language note about what happens to your data. Above the consent box there is now a short paragraph explaining that GluKaMon connects from your Karoo straight to whichever CGM service you chose, that your CGM password never leaves this device and is encrypted with AES-256-GCM, that your credentials travel only to that service over HTTPS — the one exception being a local xDrip or Juggluco server on your own network, where the connection may be unencrypted but never leaves your LAN — and that neither your credentials nor your readings are ever sent to, or visible to, the developer of GluKaMon. The full privacy policy is at glukamon.com/privacy/. You can withdraw your consent at any time by deleting GluKaMon; there is no separate disconnect button, because without your CGM account the app has nothing to show.
-
GluKaMon in the Wild
I’ve had some great feedback from my beta testers, including:
- “It’s an absolute game changer for me! There’s really no comparison to the Dexcom app on the Garmin Edge, with its 10–15 minute old data and frustrating connection errors.”
- “The screen is clear, concise and faster than the Garmin watch to flash up the value”
- “I installed the app, set up my fields… worked great!! I did a big (4hr effort) over the alps from La Rosière France to La Thuile Italy and back yesterday. It was great not having to stop to take out my phone and I felt so much more comfortable being able to see my glucose trends!”
- “This is exactly what I needed. The blood glucose reading on the bike computer screen is clear and easy to read. I can view my glucose data on my bike computer! Thank you very much for creating it—it’s incredibly helpful for me.”
- “I installed it the other day and it works great. No problems so far. There are so many choices for the display.“
And some great pictures of GluKaMon running on a Hammerhead Karoo in Germany:



I hope you find it helpful too! Happy riding
– Brennan
-
Why I built GluKaMon
When I started wearing a Dexcom CGM, I bought a Garmin, downloaded the official Dexcom widget from the Connect IQ store, and used that for several months. But it had very limited ways to visualize my blood glucose. Every time I went for a ride I had to remember not only to start the Dexcom widget on my Garmin, but also to start the Garmin Connect App on my phone. That made riding more complicated and added one more thing to forget and one more thing to break. After all that, it worked less than half of the time (sometimes the Garmin Connect app on my phone would crash or hang, sometimes the widget on the Garmin would hang…) When it did work, it was hard to read, and a lot of the time the data was stale.
Then I bought a Hammerhead Karoo, which I found a lot easier to set up and use, and has a much nicer color screen than any other bike computer. It didn’t have a Dexcom app, but I was able to sideload a browser (Firefox) and run a web-based app (Sugarmate) in the browser. That worked, but I had to switch back and forth between the Ride app with all the data fields I use (maps, speed, distance, etc.) and the browser app. What I really wanted was to have a data field (or two or three) with my CGM data alongside the rest of my ride data. And, since I’m not always looking at my bike computer, I wanted to get messages letting me know when my glucose is getting too high or too low.
I just wanted:
- An app that I could install on the Karoo
- That connects directly to Dexcom’s servers (with nothing in-between to configure or break)
- That works with all the standard Dexcom tools (e.g. Clarity, which my endocrinologist reviews at my appointments)
- That is easy to set up
- That starts automatically when I start a ride, with no extra steps
- With several ways to visualize my data, e.g.
- A small data field I can have at the top or bottom of my map page, so I can quickly monitor my glucose without changing screens
- Graphs that I can dedicate pages to, when I want to swipe left or right on the Karoo to get more detail / history
- etc
- That takes full advantage of my Karoo’s color screen
- That tells me when my glucose levels are changing, so I don’t have to watch it the whole time
- And that logs my glucose data along with my other ride data, so I can look at it after my ride to better understand how exercise (and drinking water or snacking) affects my glucose
- I also wanted it to follow all the other settings on my Karoo, e.g. work in both dark mode and light mode, align data fields according to my settings, etc.
That’s why I created GluKaMon: To help me better manage my blood glucose while riding my bike.
Along the way I got feedback from other rides with diabetes, so I added support for Freestyle Libre, Nightscout, and xDrip+. With xDrip+ or Juggluco you can even track your glucose when you are riding outside of mobile coverage!
When I built GluKaMon I set myself 5 engineering goals. I wanted GluKaMon to be:
- Reliable – When I am riding I want to be able to count on GluKaMon to work and to show me numbers that are correct. That seems obvious, but other apps just didn’t meet that standard.
- Fast – Glucose values can change quickly, so I wanted GluKaMon to deliver results as quickly as possible, not 10 or 20 minutes late.
- Easy to use and read – Diabetes is hard, monitoring it shouldn’t be. I wanted to make it as simple as possible to set up, integrate naturally with the Karoo, and be easy to read and understand what is happening with your glucose values. GluKaMon supports open source projects like Nightscout and xDrip+ and I applaud those communities for making them available. But for people with diabetes who don’t need that level of sophisticated and just want something simple, GluKaMon works with the standard Dexcom and Libre apps.
- Flexible – I’ve talked with a lot of cyclists with diabetes, and everyone has different needs and different preferences. So I made sure that GluKaMon is flexible. It works with Dexcom, Libre, Nightscout, xDrip+, Gluroo, and Juggluco. It has a wide choice of ways to visualize your data. And it lets you set up things like glucose zones and notices so they work for you.
- Lightweight – The Hammerhead Karoo is a sophisticated bike computer, but even it has a limited amount of memory and processing power, and internet connectivity on a mobile device can be limited. So I built GluKaMon to be as lightweight as possible, to minimize battery drain, memory and processing, and network bandwidth. And because CGM servers sometimes limit how often you poll them for data, I designed GluKaMon to avoid overloading those servers.
I hope I achieved those objectives. I’m making it available for free.
Contributions are optional and always appreciated!
Brennan
-
Connecting GluKaMon to the Internet
Unless you are running xDrip (or Juggluco) on your phone and connecting directly to that (which allows you to see your glucose values even when you are outside of mobile phone coverage) GluKaMon needs to connect to the internet to get your glucose readings from cloud based servers (Dexcom, Libre, Nightscout, Gluroo, etc)
Here are some common problems connecting the Karoo to the internet, and their solutions:
- You connect your Karoo to the internet by connecting to a WiFi hotspot on your phone, but the WiFi hotspot shuts down on long rides
- Android
- Some Android builds (Samsung, Pixel, Motorola) have an aggressive auto-timeout feature enabled by default. If the connection briefly drops or goes idle for even a minute, Android assumes no devices are using the network and kills the hotspot radio. Fix: Go to Settings > Network & Internet (or Connections) > Hotspot & Tethering > Wi-Fi Hotspot. Look for Turn off hotspot automatically or Hotspot timeout and switch it to Never. Additionally you might try to set polling to 1 minute instead of the default 5 minutes. The downside of 1 minute polling is that it uses more battery, but not a lot. Polling every minute can help keep the Karoo OS or your phone OS aware that there is wifi traffic going on, i.e. kicking it every minute might be enough to keep it alive.
- Android places system processes like Tethering or NetworkStack into deep sleep under Doze Mode, or throttles the radio if the phone heats up in a jersey pocket or bike mount. Fix: Go to Settings > Apps > Special App Access > Battery Optimization / Unrestricted Apps, find system processes related to Tethering or Hotspot, and set them to Unrestricted. Turn off generic Battery Saver Mode while riding.
- The Karoo relies strictly on standard 2.4 GHz Wi-Fi channels. Many Android phones default to 5 GHz or dynamic dual-band hotspot steering. If your phone automatically shifts the AP channel to 5 GHz to avoid local interference, the network will instantaneously vanish from the Karoo. Fix: In your phone’s Hotspot settings, force the AP Band to 2.4 GHz only.
- iPhone:
- If an iPhone determines that a Wi-Fi connection is “idle” or if the screen locks, it usually suspends broadcast of the Personal Hotspot after a period of time to preserve battery. Increasing polling to 1 minute instead of the default 5 minutes can help. The downside of 1 minute polling is that it uses more battery, but not a lot. Polling every minute can help keep the Karoo OS or your phone OS aware that there is wifi traffic going on, i.e. kicking it every minute might be enough to keep it alive.
- The Karoo relies strictly on standard 2.4 GHz Wi-Fi channels. Setting “maximize compatibility” on an iPhone forces it to 2.4Ghz, so that can help:
- Settings > WiFi Hotspot > Turn Maximize Compatibility ON
- Disabling “Low Power Mode” & “Low Data Mode” helps ensure iOS isn’t killing the hotspot to save battery:
- Settings > Battery > Turn Low Power Mode OFF
- Settings > Cellular > Cellular Data Options > Turn Low Data Mode OFF
- Android
- GluKaMon works on home WiFi, but not on a ride:
- On the K2 you either need to use the built-in cellular modem with a SIM chip and a data plan, or connect to a WiFI hotspot on your phone.
- On the K3 you can “tether” your Karoo to your phone, but you need to have the Karoo companion app running on your phone.
- You connect your Karoo to the internet by connecting to a WiFi hotspot on your phone, but the WiFi hotspot shuts down on long rides
-
Tips to Improve Sensor/Bluetooth Reliability
When I began testing GluKaMon on actual bike rides, I noticed that I would frequently get missing data, i.e. GluKaMon was connecting to the Dexcom servers but there was no data, indicated by a “—” on the GluKaMon data fields. At first I thought I had a bug, but when I stopped and looked at the Dexcom app on my phone, the Dexcom app showed “signal loss.” My phone wasn’t connecting to my sensor. GluKaMon was successfully connecting to Dexcom, but getting no current data, because the Dexcom app couldn’t read my sensor. When I tested with the Freestyle Libre 3, I saw similar behavior.
After some investigation, here is what I learned:
- There are limits to the number of bluetooth connections a phone can support at one time. While you can “pair” many devices to your phone, it can’t talk to them all at the same time. Newer phones seem to be better (mine is an iPhone 11) but they all have limits. If you ride with a sensor AND pair your phone with your Karoo AND have bluetooth headphones (or heart rate monitor or…) that may be too much for your phone to manage at one time, and the sensor may lose out.
- Even if your phone doesn’t have a lot of bluetooth connections, if you have other bluetooth devices, they all compete for the same limited bandwidth… like multiple people talking over each other on the same radio channel. If your Karoo is paired to your wireless bike components using bluetooth, that adds to the radio noise (my bike has SRAM Red components which talk to my Karoo using bluetooth.) Even if you don’t connect your Karoo to your wireless components, they communicate with each other using the same radio frequencies (SRAM wireless shift levers communicate with the derailleurs using a proprietary, non-bluetooth, protocol, but over the same radio frequencies used by bluetooth.)
- Even if a sensor is paired, but not present, if it is enabled in your ride profile on your Karoo, the Karoo will attempt to connect to it. This can also contribute to radio interference with your sensor.
- If your sensor isn’t close to your phone, or is blocked by your body (e.g. your phone is in the back pocket of your cycling jersey and your sensor is on your stomach) the signal from your sensor to your phone is weakened, adding to the problem.
- Note that the Dexcom web site says “keeping the display device in your back pocket (so that your body is between the sensor and your display device) can also cause Signal Loss.”
- When the Dexcom or Libre apps don’t get a response from the transmitter, they don’t retry, they just show messages like “signal loss.” This is probably because it doesn’t want to use up too much of the limited battery in the sensor, and the apps just waits for the next reading.
All of those things can add up and result in the Dexcom or Libre app showing “no signal” and no data for GluKaMon to retrieve. You might not notice it when you are riding, because normally you don’t look at your phone while you are on your bike, and by the time you get off your bike and look at your phone, the problem may be resolved (i.e. your Karoo will have been stopped, your derailleurs will have been stopped, etc.)
So, for best results, to ensure that you can see your glucose readings on GluKaMon, the lessons learned are:
- Minimize the number of devices you have with bluetooth turned on. Especially on your phone, but not just on your phone. Every bluetooth device causes competition for radio frequencies.
- Minimize the number of devices you have set for bluetooth pairing in the ride profile(s) on your Karoo.
- Keep your phone close to your sensor/transmitter.