Juggluco is an app that receives glucose values via Bluetooth from Freestyle Libre 2, 2+, 3 and 3+, Sibionics GS1Sb, Dexcom G7/ONE+, Accu-Chek SmartGuide and CareSens Air sensors. In addition, Juggluco can scan NovoPen® 6 and NovoPen Echo® Plus and receive test results via Bluetooth from Contour Next glucose meters.
Juggluco can send glucose values to all kinds of smartwatches, see left menu→Watch→Help: https://www.juggluco.nl/Jugglucohelp/watchinfo.html
The phone version of Juggluco can talk out incoming glucose values, display it in a widget on the home screen and in floating glucose above other apps. Juggluco can display the usual glucose statistics. Other apps can receive data from Juggluco via glucose broadcasts and the web server in Juggluco. Juggluco can send data to Health Connect, Libreview and Nightscout. Data can also be exported to a file or send to another exemplar of Juggluco on another phone, tablet, emulator or watch.

Project Activity

See All Activity >

Follow Juggluco

Juggluco Web Site

Other Useful Business Software
$300 Free Credits for Your Google Cloud Projects Icon
$300 Free Credits for Your Google Cloud Projects

Start building on Google Cloud with $300 in free credits. No commitment, no credit card required until you're ready to scale.

Launch your next project with $300 in free Google Cloud credits—no strings attached. Test, build, and deploy without risk. Use your credits across the entire Google Cloud platform to find what works best for your needs. After your credits are used, continue with always-free tier services. Only pay when you're ready to scale. Sign up in minutes and start exploring.
Start Free Trial
Rate This Project
Login To Rate This Project

User Ratings

★★★★★
★★★★
★★★
★★
0
1
0
0
0
ease 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 0 / 5
features 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 0 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 0 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 0 / 5

User Reviews

  • Bug Report Aidex X Sensor: Crash on "Исп. Bluetooth" checkbox Juggluco WearOS — Samsung Galaxy Watch 8 Summary On Samsung Galaxy Watch 8 (WearOS), enabling the "Исп. Bluetooth" / "Use Bluetooth" checkbox in the Sensor menu causes Juggluco to crash immediately with a StringIndexOutOfBoundsException in the native library. This prevents direct sensor-to-watch connection for the Aidex X CGM sensor. Environment Watch Samsung Galaxy Watch 8 (WearOS) Juggluco versions tested 10.9.5-wear and 10.7.2-wear — same crash on both Sensor Aidex X (BLE MAC: C0:9B:9E:01:82:42) Phone app JugglucoNG (fork of Juggluco), used for parent relay setup Server relay connection Working correctly via Mirror relay over TCP (not related to this bug) Steps to Reproduce 1. On the watch, open Juggluco → Left menu → Датчик (Sensor) 2. The screen shows: "Переключить" (Switch) button, "Вкл. Bluetooth" (Bluetooth: On) status text, a checkbox labeled "Исп. Bluetooth" (Use Bluetooth), and "Датчики" (Devices) / "Закрыть" (Close) buttons 3. Tap the "Исп. Bluetooth" checkbox 4. The app freezes for ~2-3 seconds, then crashes and returns to the watch face / app list Actual Result App crashes with a fatal exception. Expected Result Checkbox should enable Bluetooth scanning/usage mode for the sensor without crashing, allowing the watch to find and pair with the Aidex X sensor directly (Left menu → Датчики → Find devices → check "Aidex X"). Crash Log (via adb logcat) --------- beginning of crash 07-11 23:34:58.823 21167 21167 E AndroidRuntime: FATAL EXCEPTION: main 07-11 23:34:58.823 21167 21167 E AndroidRuntime: Process: tk.glucodata, PID: 21167 07-11 23:34:58.823 21167 21167 E AndroidRuntime: java.lang.StringIndexOutOfBoundsException: offset=0 length=11 string.length()=7 07-11 23:34:58.823 21167 21167 E AndroidRuntime: at tk.glucodata.Natives.getdataptr(Native Method) 07-11 23:34:58.823 21167 21167 E AndroidRuntime: at tk.glucodata.Applic.l(Unknown Source:421) 07-11 23:34:58.823 21167 21167 E AndroidRuntime: at tk.glucodata.Applic.q(Unknown Source:9) 07-11 23:34:58.823 21167 21167 E AndroidRuntime: at tk.glucodata.MainActivity.v(Unknown Source:24) Key detail: the exception indicates the native code (Natives.getdataptr) expects a string of length 11 but received a string of length 7. This looks like a fixed-length string/buffer mismatch, possibly related to how a previously-paired device identifier, sensor serial number, or MAC address is stored/parsed (note: the sensor's Bluetooth MAC address C0:9B:9E:01:82:42 is 17 characters including colons — neither 11 nor 7 — so the mismatched string may be some other stored identifier, e.g., a truncated serial number or a leftover value from a prior sensor/pairing). Also noted just before the crash in the same session: 07-11 23:34:55.314 21356 21383 E WFReceiverService: Unhandled exception while adding a watch face. 07-11 23:34:55.320 21167 21167 E WfActivation: Caused by: com.google.wear.services.watchfaces.watchfacepush.WatchFacePushManager$AddException: Failed to add watch face with error code 1 (This may be unrelated — a separate watch face push issue — but is included for completeness since it occurred in the same logcat session shortly before the crash.) What We Tried (all unsuccessful in preventing the crash) 1. Granting additional runtime permissions via ADB before opening the app: adb shell pm grant tk.glucodata android.permission.BLUETOOTH_CONNECT adb shell pm grant tk.glucodata android.permission.BLUETOOTH_SCAN adb shell pm grant tk.glucodata android.permission.SYSTEM_ALERT_WINDOW adb shell pm grant tk.glucodata android.permission.ACCESS_FINE_LOCATION adb shell pm grant tk.glucodata android.permission.ACCESS_COARSE_LOCATION Result: permissions granted successfully, but checkbox still crashes identically. 2. Clearing app data (adb shell pm clear tk.glucodata) and reconfiguring from scratch — same crash persists after fresh setup. 3. Downgrading from 10.9.5-wear to 10.7.2-wear — identical crash and identical stack trace on both versions. 4. Programmatic tap via ADB (adb shell input tap X Y at the checkbox's screen coordinates, confirmed via adb shell screencap) instead of a manual finger tap — produced the exact same crash, confirming the issue is triggered by the action itself (the code path executed when the checkbox is toggled), not by how the tap is delivered (touch vs. synthetic input). 5. Attempting to bypass the UI entirely via a broadcast Intent (adb shell am broadcast -a tk.glucodata.CONNECT_SENSOR --es address ... --es type "aidex") — broadcast completed with result=0, indicating no receiver is registered for this action (this was our own guess at a possible internal API, not documented — noted here only to confirm the app does not expose an external Intent-based way to configure the sensor connection, so this is not a bug, just a dead end on our side). Additional Context The phone-side app (JugglucoNG) works correctly with the same Aidex X sensor, receiving data over Bluetooth without issue. We are trying to set up direct sensor-to-watch connection for Aidex X specifically (bypassing the phone), as documented at juggluco.nl/Juggluco/sensors/, using the "Исп. Bluetooth" checkbox as instructed for watches without a camera (cannot use Left menu → Photo to scan the sensor's data matrix QR code, since this watch model has no camera). The alternative documented method — enabling "Direct sensor-watch connection" from the phone's Left menu → Watch → WearOS Config — has not yet been fully tested as a workaround at time of writing, but is suspected to use a different code path and may avoid this crash. Request Could you please check the native getdataptr function in Natives for the length assertion/parsing that expects a fixed length of 11 characters? It appears something (possibly a stored sensor identifier or leftover pairing data) is being passed in with only 7 characters, causing an out-of-bounds read that crashes the whole app rather than failing gracefully. Reference Related GitHub issue: j-kaltes/Juggluco #297 ("support for chinese aidex sensor")
    Reply from Juggluco
    Edited 2026-07-12
    I consider your bug report unreadable. Are you saying that you are trying to connect the WearOS version of Juggluco with the phone version of Juggluco NG? Juggluco NG is not Juggluco. Juggluco NG has maybe a sensor identifier that is less that 11 characters long, which will never happen in Juggluco. If you send rubbish to Juggluco, you can expect the app to crash. For the WearOS to phone connection you even need to sign the apks with the same key. If you compile one yourself, you also need to build the other yourself. They also need to have the same application ID: "tk.glucodata" (for every apk here except the dub version). You need to run my Juggluco on both the phone and WearOS. Could you e-mail me the pure logcat.txt and better run a logging version of Juggluco and e-mail me also trace.log as described at: https://www.juggluco.nl/Juggluco/download.html#bugreport E-mail to jaapkorthalsaltes@gmail.com
Read more reviews >

Additional Project Details

Registered

2026-01-14