Back to Wiki

Wiki / Development and Tools

Developer Ideas

Scratchpad for side projects and features I want to build. Each idea gets a short problem statement, why it matters, and a practical build plan so I can pick it back up later without starting from zero.

Ideas

Garmin watch: Libre 3 blood sugar on wrist

Goal: glance at my Garmin and see current glucose from my FreeStyle Libre 3 sensor, including trend, without digging through the phone. Useful for workouts, skiing, driving, and anything where the phone stays in a pocket while managing Type 1 Diabetes.

Hard constraint: Abbott does not offer an official Garmin integration or a public Libre 3 Bluetooth API for third-party developers. Anything we build goes through LibreLinkUp cloud sharing or community tooling, not a direct sensor handshake.

Architecture options

Recommended for me: A + C. Keep using the official Libre 3 app on iPhone, share to LibreLinkUp (follower can be myself), then build a custom Garmin Connect IQ view fed by that follower feed.

Tomorrow-night target

Definition of done by tomorrow night: glance at the Garmin and see a trustworthy glucose number, trend, and freshness without opening the phone. Prefer working over perfect. Custom Monkey C UI is a stretch; a working wrist display via an existing Connect IQ CGM app counts as a win if custom code slips.

Hour-by-hour plan

Block 0: Inventory (15 min)

Block 1: Unlock the data (45 to 90 min)

  1. In Libre 3 app: Connected Apps / Share → LibreLinkUp → Add Connection
  2. Use a second email you control (follower account). Do not reuse the primary Libre login as the follower password store.
  3. Accept the invite, open LibreLinkUp, confirm your own graph appears there
  4. Write down: follower email, password, region (US for me), units (mg/dL)

Block 2: Prove on wrist without writing code (1 to 2 hr)

  1. Install Garmin Connect IQ mobile app if missing
  2. Install an existing LibreLinkUp-compatible Connect IQ CGM app (examples: CGM+ GB, or similar current store apps)
  3. Settings: Libre / LibreLinkUp, enter FOLLOWER credentials (not primary Libre account)
  4. Sync to watch, wait for first reading
  5. Run a 20-minute reliability check: note update lag vs Libre 3 app, dropouts when phone locks, behavior with poor LTE

If Block 2 works, tomorrow-night goal is already met. Everything after is optional polish or custom build.

Block 3: Decide path for remaining time

Block 4: Custom build stretch (afternoon / evening)

  1. Install Connect IQ SDK + VS Code Monkey C extension + Garmin developer key
  2. Target ONE watch model in manifest.xml
  3. Do not call LibreLinkUp login from the watch directly for v1. Prefer a tiny phone bridge or serverless proxy that returns a simple JSON payload: glucose, trend, timestamp, stale flag.
  4. Watch only: Communications.makeWebRequest to that bridge every background cycle, render large number + trend + age
  5. Sideload to device; skip Store submission

Why a bridge: since late 2025 LibreLinkUp requires headers that are painful on-watch (version 4.16.0+, product llu.android, and Account-Id = SHA-256 of user id). Monkey C has no convenient crypto library, multi-step login+connections+graph is fragile inside a 30-second background slot, and Garmin makeWebRequest error handling is rough.

What v1 should show

Explicit non-goals for v1: insulin dosing advice, predictive algos, medical alarms that replace Libre's urgent low, or App Store distribution. This is a personal wrist glance tool.

Holes and failure modes

Checklist for tomorrow night

Useful references

Next action (tonight)

Do Blocks 0 to 2 tonight if possible: set up LibreLinkUp self-follower, install an existing Connect IQ LibreLinkUp CGM app, and get a number on the watch. Tomorrow is then either "use it" or "custom UI on a proven pipe," instead of debugging sharing and SDK at the same time.