Skip to content

Releases: decibelkaos/CYGM

v1.1.10 Release

Choose a tag to compare

@decibelkaos decibelkaos released this 15 Oct 21:01

Release Notes - CYGM v1.1.10 (2026-10-15)

Fixed

  • The background is black again. 1.1.9 put a dark navy field behind every screen; the cards and outlines keep their new look on the familiar black
  • In the full-screen glucose view the small clock in the top bar could break onto two lines. It stays on one line now

Sorry for the double update - these were missed before 1.1.9 shipped

v1.1.9 Release

Choose a tag to compare

@decibelkaos decibelkaos released this 15 Oct 14:07

Release Notes - CYGM v1.1.9 (2026-10-15)

A Fresh Look

  • Every screen now sits on a deep navy field with matching cards, so text and readings stand out more than before
  • Alarm tiers, settings rows and status cards carry their colour as a thin outline with a cut corner, instead of a bar down the side
  • A new on-screen keyboard laid out like a phone's, with two symbol pages so any WiFi or sign-in password can be typed
  • Sliders and switches have a brushed-metal knob; tapping rows and icons no longer flashes them
  • The weather icons are redrawn and gently move: the sun's rays turn, clouds drift, rain and snow fall
  • The trend graph shows your low and high thresholds as dashed lines with labels on the axis
  • Screens switch instantly; there are no fades

Time Zones

  • About sixty more places now get their correct clock and daylight-saving rule, including the Balkans, the Baltics, Iceland, Cyprus, the Gulf states, most of Africa, Central America and the Caribbean, Cuba, Mongolia and the Pacific islands. Before this, a location in one of them could show a clock an hour off through the summer

Fixed

  • If something kept the screen busy while a WiFi scan finished, the "Scanning" card could stay up for good. It now waits its turn
  • The trend graph's small captions no longer run into each other

A Small Surprise

  • On a clear night, when the weather icon shows the moon, tap it

v1.0.4 Release

Choose a tag to compare

@decibelkaos decibelkaos released this 09 Oct 07:30

Release Notes - CYGM v1.0.4 (2026-10-09)

Fixed: LibreLinkUp Sign-In Outside the US

  • Signing in to LibreLinkUp failed for a user in the UK with "The server refused the sign-in", while the same account worked everywhere else. The cause was on the device: the reply to a sign-in carries the whole account record, and a fuller account - one linked to a clinic, with a registered phone, or with a longer consent history - is larger than the space the device had set aside for it. The reply was cut short, could not be read, and the sign-in failed. Accounts in the UK and Europe tend to carry more of that record than the US accounts the device was tested with, which is why it showed up there first
  • The device now reads the reply as it arrives and keeps only the handful of fields it needs, so the size of the account record no longer matters. Confirmed working by the user who reported it, on their own account, before this release
  • A second fault found on the way is fixed too. When LibreLinkUp wants something from you first - new terms, a privacy policy, or an unverified email address - it answers a sign-in with a short-lived ticket meant only for its own app. The device used to take that as a successful sign-in and then show no data. It now says what is needed and points you to the LibreLinkUp app

Clearer Sign-In Messages

  • A wrong email or password is now reported as a wrong email or password
  • A pending step in the LibreLinkUp app is reported as that, with the step named
  • If the service ever stops accepting this firmware's version, the device says so and asks you to update, instead of failing with a generic message

Thank You

  • This release exists because someone took the time to open an issue, and then took the time again to test the fix on their own device. That is the whole loop, and it worked

v1.0.3 Release

Choose a tag to compare

@decibelkaos decibelkaos released this 21 Sep 02:56

Release Notes - CYGM v1.0.3 (2026-09-20)

1.0 - Thank You For Getting It Here

  • This is the first CYGM release that is not labelled Beta. Every build before this one carried that word, and it has earned its way off the label: the last six months went into the things that decide whether you can trust what the screen says - alarms that behave predictably, readings that are never older than they look, connections that are checked, and memory that does not quietly run out after a few days
  • It is not one person's milestone. Nearly every fix below began with somebody saying "this happened to me" - a parent left with an alarm that would not stop, families running battery-free builds, people who fitted an SD card that a computer read perfectly and a CYGM would not, testers who put an unreleased build on their own hardware and then sat down and wrote up what went wrong. That is a real favour to ask of anyone, and more of one to ask of people already managing diabetes at home. Thank you
  • If you are updating from v0.16.3, the last public release, this is six months of work arriving at once. Everything in between went only to a small group of invited testers, so almost all of it is new to you
  • What has not changed is the safety position, and 1.0 does not change it. CYGM is an experimental secondary display. It is not FDA-cleared and it has not been clinically validated. Keep your official CGM receiver or app switched on and make every treatment decision from that. CYGM is the number you can read from the other side of the room, not the one you dose from. A version number reading 1.0 instead of 0.23 does not move that line by a millimetre
  • One thing to know before you press update: there is no way back over the air. Once a device is on 1.0 it will refuse an older version as an update. Going back to a 0.x build means flashing it with a USB cable from cygm.me

Important: Alarms Sound Differently Now - please read this one

  • This release changes when an alarm stops making noise. If anyone in your household relies on a CYGM alarm sounding until somebody comes to it, read all six points below before you update
  • The tone now stops after three minutes on the High Alarm, High Warning and Low Warning tiers. An alarm on one of those that nobody silences falls quiet after three minutes instead of sounding indefinitely. The screen keeps flashing throughout on any tier you have left Screen Flash switched on, so the alert is quietened, never withdrawn
  • It comes back on its own. If your glucose is still out of range two readings later - roughly ten minutes - the tone sounds again, and it keeps coming back for as long as you are out of range. This behaviour exists because a user was left with an alarm that would not stop and took the trouble to tell me. Thank you!
  • The low end never goes quiet, and that is deliberate. The urgent-low safety alarm and the Low Alarm both sound until somebody answers them. There is no three-minute pause down there and there is not going to be one: a low that nobody hears is the thing this device exists to prevent
  • If you want a tier to sound until someone answers it, switch that on yourself. Each alarm's page now has a Keep Sounding switch, in the place where the Repeat switch used to be. A tier with it turned on ignores both the three-minute pause and the thirty-minute unattended stand-down. The three tiers that can pause start with it off, because an alarm that never stops should be something you chose
  • The Repeat switch is gone, and every alarm now repeats. Repeat used to decide whether an alarm sounded once or over and over; every alarm now repeats until it is answered, so the choice no longer exists. If you had Repeat switched off on a tier, that tier used to beep once and stop. After this update it will sound repeatedly instead, capped at three minutes as above. You do not have to do anything, but it is a real change to how that tier behaves, and it is the one setting of yours that this update overrides without asking. Check your alarm pages after updating
  • Silencing or snoozing an alarm by hand works exactly as it did, and a reading that crosses into a more serious level sounds straight away rather than waiting out a pause

Fixed: Alarms That Could Miss You

  • The urgent-low floor now fires even when the Low Alarm is switched off, as the guide always promised
  • Snoozing a warning no longer silences a later, more serious alarm in the same window
  • An alarm raised while you are in the settings can no longer be hidden by the return-to-home timer while the tone is still playing
  • A projected-low or data-gap card now closes itself after a minute. These cards show the reading from the moment they appeared, which is right when they are fresh and misleading when they are not: one sat on a test device overnight showing 118 while the real reading had moved to 103 and was still falling. They stand down after sixty seconds now, whatever the alarm settings say

Fixed: Old Readings Never Look Current

  • If the clock is not set yet, or a provider sends a reading with a broken timestamp, the display says so instead of showing "Just now" forever
  • LibreLinkUp timestamps are read in UTC, so a device in a different time zone from the phone no longer shows stale data as fresh, or fresh data as stale
  • Readings outside 20-600 mg/dL are rejected as server artefacts rather than displayed, charted and alarmed on. An older reading that arrives after a newer one is ignored
  • The reading history survives a reboot intact past 255 entries

New: A Trend Arrow You Can Read Across the Room

  • The countdown ring around the trend arrow is gone and the arrow has taken the space back. It is drawn as a solid head with a trail fading out behind it, so which way your glucose is moving reads from further away and at a glance. Knowing which way it is going from the bedroom doorway at three in the morning is most of what this device is for, so the arrow got the room it needed
  • A city name too wide for its slot now drifts slowly across and rests for twenty seconds at each end, instead of being cut off. Short names sit still, exactly as before

New: The Device Sets Itself Up

  • A new device now walks you through setup instead of leaving you to go looking for it. Accept the notice on first boot and a card appears for each of the three things the device needs: WiFi first, then your location, then your CGM. Tapping a card opens the right screen for it
  • Every card has a Skip setup button that ends the walkthrough for good, and anything you have already set up is passed over, so it gets out of the way the moment the device is ready. It only ever appears after a fresh install or a device reset, and each card says so
  • Alarm thresholds can be typed. Tap the number at the top of an alarm's page and a keypad opens, so the threshold lands on the exact value you wanted instead of wherever the slider stopped

Fixed: microSD Cards

  • Cheap cards work now. Most inexpensive 8 to 32GB cards decline an optional error-checking step during start-up. The SD specification allows that; the device was treating the refusal as a broken card, so a healthy card that mounted in any computer came up as nothing at all. If you bought a card, tried it, and gave up, try that same card again - it was never the card, and it was never you
  • A card put in later is found on its own. Fitting a card used to mean restarting the device. One pushed in while it is running is now picked up on the next reading cycle, usually inside two minutes, and a small card symbol appears on the home screen
  • The device says why a card was refused. "No card" used to be the answer to every card problem, including a card sitting right there. It now tells the three cases apart: nothing fitted, a card it can talk to but not read, and a card it cannot use at all. For the middle case it offers to format the card, warning first that this erases everything on it and cannot be undone. Formatting as FAT32 on a computer works just as well, and the device says so on the same card
  • Cards larger than 32GB are refused on purpose, with the reason given. They are sold in a format this device does not read, and a card that half-works is worse than one that says no
  • A card that stops answering is retried rather than written off, so logging comes back instead of staying dead until a restart, and a card taken out and put back into a running device resumes logging
  • A card that stops accepting writes pauses logging and says so once, instead of failing silently every cycle

New: Your Readings, Off the Card

  • Each row the device writes to the card now carries the provider's own timestamp, which provider it came from, the reading's status and age, the battery, the signal, free memory, uptime and any alarm in force - behind the same three columns as before, so files already written stay readable. Every new day file gets a header explaining itself
  • The device can also hand a day's readings straight down the USB cable, so the card can be read without taking it out. cygm.me/tools does both, and will export a day as a report, a spreadsheet, a document, CSV or JSON
  • Reading a day down the cable is reliable now, and was not before. The USB link drops the odd byte during a long transfer - the computer reports it as a hardware receive overrun, and it is not something either end can prevent in software. Asking for a whole day in one go meant one dropped byte cost the entire transfer, so most attempts failed and trying again simply gambled the whole file a second time. The device now hands a file over in small pieces with a checksum on each, so a damaged piece is asked for again on its own. On the bench this took a day file that failed four times out of five to six days copied in a single go
  • Nothing identifying goes into that file. It is your readings and the health of the device, and the diagnostic diary is off unless you deliberately t...
Read more

v0.16.3 Beta

Choose a tag to compare

@decibelkaos decibelkaos released this 06 Sep 03:13

Release Notes — CYGM v0.16.3 Beta (2026-09-05)

NEW: Your Device on the World Map

  • cygm.me now has a live map of devices that are online. Click the "N online" counter in the site header to open it
  • Your device now includes the city from your weather settings in its regular check-in, so it appears in the right place. Without it the site can only guess from your internet connection, which lands on your provider's nearest hub — often ten miles or more from where you actually are
  • Only the city name and its coordinates are sent, rounded to about a kilometre. Nothing about your glucose, your CGM account, or your network is included
  • If you have not set a weather location, nothing extra is sent and the map falls back to the rough guess as before

v0.16.2 Beta

Choose a tag to compare

@decibelkaos decibelkaos released this 06 Sep 05:25

Release Notes — CYGM v0.16.2 Beta (2026-09-04)

Fixed: Celsius Weather Was Wildly Wrong

  • Anyone showing weather in Celsius saw temperatures far below reality (a 21° day displayed as -6°). The reading was being converted from Fahrenheit twice. Reported by users in Hunan and Shanghai. Thank you!
  • Switching between C and F on the home screen now updates instantly and correctly

Fixed: Rain Showers Showed as "Snow"

  • Showery rain was mapped to the snow icon and label. It is rain again.

NEW: Battery-Free Builds Get a Plug Icon

  • Devices running with no battery fitted used to show a made-up charge percentage (often 5%). The device now detects that no battery is present and shows a plug icon instead of the gauge
  • Low-battery warnings and the low-voltage shutdown are skipped when no battery is fitted

v0.16.0 — Nightscout persistence fix + What's New card

Choose a tag to compare

@decibelkaos decibelkaos released this 28 Aug 01:21

Fixed: Nightscout settings now survive a power loss

Nightscout users without an API token (public sites) were asked to re-enter
their settings after every reboot. The device was saving them correctly — the
boot-time check was the bug: it read the URL and the token into the same
buffer, so an empty token blanked the URL and the device concluded nothing was
saved. Anyone using a token never hit it, which is why it survived this long.

Reported by @SimonXuku in #1, who runs a battery-free build where every
power outage is a full reboot — meaning an overnight outage left the device
sitting at a setup screen with alarms dead until someone noticed. Exactly the
kind of report that makes this project better. Thank you.

If this was you: update, enter your Nightscout settings once more, and they
will stick from then on.

New: what changed, right on the device

After each firmware update the home screen shows a one-time card with the new
version number and a short list of what changed — no more guessing what an
update did. It waits its turn: never over an alarm, the night face, or the
display settings, and it returns after a reboot if it was never acknowledged.

Maintainers: the bullets live in main/whats_new.h and are updated with each
release alongside the version in main/shared_state.h.

Installing

  • Already running CYGM: the device offers this update over WiFi on its
    next check, or use gear → About → Check for Updates.
  • New build: use the browser flasher at cygm.me — no
    toolchain needed.
  • From source: ESP-IDF v5.5, then idf.py build flash.

Firmware binaries are served from cygm.me, which is also
what the on-device updater reads, so there is a single source of truth for
what "latest" means.