

Case study
Stabilising a Smart Ring Platform for Women's Cycle Health
Plexteq reworked the firmware communication layer and iOS application stack for Australian femtech startup to enable them scale with confidence and accelerate sales.
Project Highlights
Industry
Women's HealthTech, IoT Wearables
Market
Australia, United States, United Kingdom
Team Size
4 engineers (firmware, iOS, cloud, QA)
Engagement
2023 – 2024
Expertise
Embedded firmware, iOS development, BLE protocol design, watchOS, Cloud IoT
Business Challenge
Plexteq partnered with an Australian femtech startup pioneering the first menstrual health-focused smart ring - a wearable designed to be worn overnight that continuously captures Basal Body Temperature (BBT), Heart Rate (HR), and Heart Rate Variability (HRV) to give women unprecedented insight into their cycles, fertility windows, and overall hormonal health. The companion iOS app and Apple Watch extension transform that raw biometric data into actionable daily guidance.
Despite overwhelmingly positive reception from its Kickstarter campaign and early users who described it as a "once-in-a-lifetime" product, client faced a critical blocker: the mobile application and firmware communication layer were too unstable for the company to scale. As the user base grew beyond the early-adopter cohort, the volume and diversity of device environments exposed systemic reliability problems that were driving churn and eroding user trust at the worst possible moment for the business.
Client's internal team had deep domain expertise in women's health and hardware design, but lacked the bandwidth to simultaneously fix a fragile BLE stack, rebuild iOS background-processing logic, and ship a functional Apple Watch companion - all under commercial pressure. They needed a senior engineering partner who could move fast and build to production quality.
Key Challenges
Unreliable BLE Communication Between Ring and iPhone
The ring firmware used a custom Bluetooth Low Energy GATT profile to transmit nightly measurement packets to the iPhone. Under iOS 15+, aggressive background app suspension was silently terminating the BLE central session mid-transfer. The app had no robust reconnection logic, causing partial or lost data syncs - users woke up to empty dashboards despite wearing the ring all night. On iPhone 13 and later models, the system-level Bluetooth permission scoping had also changed, introducing a race condition in the initial characteristic discovery handshake.
iOS Background Processing and Battery-Draining Polling Loop
The sync architecture relied on a continuous polling timer rather than CoreBluetooth's notification-based characteristic subscription model. This meant the app requested state from the ring every 2 seconds, draining both device batteries and causing the iOS watchdog to terminate the background task before a full night's data - up to 30,000 temperature measurements - could be transferred. App Store reviews consistently mentioned unexpected battery drain and incomplete data, directly impacting ratings and conversion.
Apple Watch Extension Was Non-Functional Under Real Conditions
Client had shipped an initial Apple Watch companion app, but it relied on WatchConnectivity's interactive messaging mode - a mode that requires the paired iPhone to be in foreground state. In real overnight use, the iPhone was locked and the session consistently failed. Watch users received no morning data at all. Additionally, the watchOS extension was not registered as a HealthKit workout source, preventing HRV data from appearing natively in the Apple Health ecosystem - a key feature demand from the target audience.
Solution Delivered
Plexteq conducted a full technical audit across the firmware GATT implementation, the iOS Core Bluetooth stack, and the Watch extension architecture before writing a single line of new code. The audit identified 14 critical defects and produced a prioritised remediation roadmap tied to measurable stability milestones.
↳ Firmware GATT Profile Redesign
Working in C on the ring's Nordic Semiconductor nRF52 platform, the Plexteq firmware engineer restructured the custom GATT service to replace a single large data characteristic with a chunked packet protocol using a dedicated transfer-complete indication characteristic. The ring now segments nightly data into 20-byte MTU-sized packets with sequence numbers and an end-of-transfer signal, allowing the iOS client to detect gaps and request retransmission of specific packet ranges without restarting the entire session. A persistent connection-state machine was introduced in firmware, using connection parameter negotiation to request a longer connection interval (100–500 ms) during bulk transfer - reducing radio duty cycle and extending battery life on both ends. The firmware now stores up to 7 days of encrypted measurement data in flash, giving the iOS app a recovery window if connectivity was lost on any given night.
↳ iOS Core Bluetooth Stack Rebuild
The iOS BLE layer was rewritten around CoreBluetooth's notification-based model. Instead of polling, the app subscribes to the ring's data-ready characteristic via setNotifyValue(_:for:), waking the background task only when the ring signals data availability. A formal CBCentralManager state restoration identifier was added, allowing iOS to hand the Bluetooth session back to the app after it has been suspended and relaunched by the system - the key fix for the overnight data loss. A three-tier reconnection strategy was implemented: immediate reconnect on disconnect, exponential back-off retry for up to 15 minutes, and a persistent peripheral UUID cache so the app can retrieve a known device without a fresh scan after being terminated. The entire BLE session lifecycle is guarded by a concurrency-safe actor (Swift 5.5 async/await) to eliminate the race conditions found in characteristic discovery on newer iPhones.
↳ Background Processing and HealthKit Pipeline
Battery drain was eliminated by replacing the polling timer with a BGProcessingTask scheduled via BackgroundTasks framework. The nightly sync now triggers on a predictable morning window, when the device is typically on charge and the iPhone is in a low-activity state. A lightweight foreground progress indicator streams incoming packets to the UI using Combine publishers, giving users real-time feedback during morning sync without blocking the main thread. All processed biometric data - readings, overnight HRV averages, resting heart rate, sleep staging estimated from movement and HRV delta - is now written to HealthKit via HKHealthStore with appropriate sample types (HKQuantityType.basalBodyTemperature, HKQuantityType.heartRateVariabilitySDNN, HKCategoryType.sleepAnalysis). This unlocks native Apple Health integration and enables third-party apps such as cycle-aware fitness platforms to consume client's product data.
↳ Apple Watch Companion App - Full Rebuild
The Watch extension was rebuilt as a standalone watchOS 8+ app using the WatchConnectivity background transfer API (transferUserInfo and transferFile) instead of interactive messaging. Data packets processed by the iPhone during morning sync are pushed to the Watch in the background, with no requirement for the iPhone to be foregrounded. The Watch renders a daily cycle phase card, a morning HRV recovery score, and a fertility window estimate - all available at a glance before the user gets out of bed. A complication set (Modular Large, Graphic Corner, Circular Small) was added so users can surface their current cycle day and next predicted period directly on the watch face. The Watch app is registered as a HealthKit source, so HRV and heart rate data it reads from HealthKit appears correctly attributed in the Health app timeline.
↳ Cloud Telemetry and Remote Diagnostics
To prevent future regressions from going undetected, Plexteq added an IoT-backed telemetry layer. Each ring reports a compact diagnostic payload on sync completion: packet loss rate, session duration, reconnection count, firmware version, and battery level. A dashboard gives client's team real-time visibility into fleet health across device generations and iOS versions - eliminating the reliance on App Store reviews as a lagging indicator of firmware or app issues.
Expertise Applied
Core Technologies
Business Outcome
Before engaging Plexteq, client was caught in a damaging cycle: hardware shipped, users onboarded, data failed to sync, trust eroded, reviews tanked, and sales stalled. The instability wasn't a minor UX inconvenience - it was a direct threat to the company's ability to fundraise and expand. A smart ring that doesn't reliably deliver overnight data is, from the user's perspective, a ring that doesn't work.
The Plexteq engagement broke that cycle at the root. By rebuilding the firmware communication layer and iOS stack from the ground up, the product finally delivered on its core promise: users woke up every morning to a complete, accurate picture of their overnight biometrics. That reliability became the single most cited factor in the wave of positive App Store reviews that followed the updated release.
68%
Crash rate reduction
App crashes dropped from 4.1% of sessions to 1.3% within 4 weeks of the updated build going live
3×
Sync success rate
Overnight data sync completion climbed from 31% to 94% of sessions across the active device fleet.
4.6★
App Store rating
App Store rating recovered from 2.9 to 4.6 over three months following the stability release.
41%
90-day user retention
Cohort retention at the 90-day mark increased sharply as users began reliably receiving complete morning data.
