CYGM
A dedicated continuous glucose monitor display you build yourself. Free and open source.
What it is
A bedside glucose display for about $40
A roughly $40 open-source glucose display you build yourself. CYGM puts shared readings from Dexcom Share, LibreLinkUp or Nightscout on a 2.8-inch colour touchscreen, with configurable bedside alerts, trend charts, weather, a night face built for 3am, and over-the-air updates. No account, no subscription.
CYGM is a secondary display. It reads what your CGM system publishes to its cloud, so you keep using your official app or receiver and keep its alerts switched on.
The device
Built, printed, running
Build
Hardware
| Board | JC2432W328C — the capacitive variant (ESP32-D0WD, 2.4 GHz WiFi) |
|---|---|
| Display | 2.8" 320×240 ST7789 TFT (SPI @ 40 MHz) |
| Touch | CST820 capacitive (I2C) |
| Audio | Amplified speaker output (8002A); an optional speaker makes alarms louder |
| Extras | RGB status LED, microSD slot, optional LiPo battery |
| Case | 3D-printable |
Watch the board you order. A visually identical resistive board is sold under nearly the same name and its touch will not work. Check that the listing says capacitive.
The easiest install is the browser flasher at cygm.me — no toolchain needed.
Features
What it does
-
Three data sources
Dexcom Share, LibreLinkUp and Nightscout. Pick one on-device and switch anytime. Nightscout is a data source rather than a CGM maker, so through it CYGM shows any CGM your Nightscout setup already handles.
-
Glanceable home screen
A big value with a signed delta, a trend arrow drawn as a solid head with a fading trail so direction reads from across the room, a second arrow alongside it when glucose is moving fastest, and stale readings that visibly grey out.
-
Polling, not magic
CYGM checks the cloud about every 90 seconds. How often a genuinely new reading appears is set by your CGM system: typically every five minutes for Dexcom, and as often as every minute for Libre 3 and 3 Plus.
-
Charts
1, 3, 6, 12 and 24 hour windows with Low, Average, High and Configured Range, the share of readings between your configured warning thresholds.
-
Alarm engine
Four threshold tiers, 28 tones including a randomised loud sequence designed to reduce habituation, escalating volume, quiet hours, a predictive low warning, a data-gap alert that suggests likely causes, and a non-disableable urgent-low safety floor with a full-screen takeover.
-
Alarm persistence
On the High Alarm, High Warning and Low Warning tiers an unanswered alarm goes quiet after three minutes and sounds again two readings later if you are still out of range. A per-tier Keep Sounding switch removes that pause. The low end never goes quiet at all: the urgent-low floor and the Low Alarm both sound until somebody answers them, and that is permanent by design.
-
Night face
A scheduled dim hands the screen to one huge zone-coloured number, with the time kept small in the top bar so it is not misread as a glucose value.
-
Over-the-air updates
Firmware updates are delivered over WiFi.
Configured Range is not clinical Time in Range. GMI and CV are shown as short-window estimates and are not comparable with a standard 14-day report.
The website
cygm.me
The project needed somewhere to live, so the site is part of the build rather than an afterthought. I designed, wrote and deployed all of it.
The job it has to do is narrow: get somebody from "I have a spare board" to "it is on my nightstand showing numbers" without a toolchain, a terminal or an account. Everything on the site is shaped around that path.
-
Browser-based flasher
The install path is a web page. The browser talks to the board over a serial port and writes the firmware, so there is nothing to download and no development environment to set up first.
-
Firmware release pipeline
Releases are published to the site as versioned builds behind JSON manifests. The device reads those manifests to find and apply over-the-air updates, so the website is also the update server.
-
Build and setup guides
Illustrated pages covering the parts to buy, the board variant to avoid, assembly, and first-run configuration for each supported data source.
-
Stack
PHP and static assets on Apache, with no framework and no build step for the pages themselves. Deploys are scripted, and every change is verified against the live URL rather than assumed.
Variants
Other builds
CYGM also exists in two other builds — a Mini variant pairing the same board with an M5Stack CardKB keyboard, and a Duo variant.