Bluetooth Low Energy (BLE) Protocol Engineering
Production BLE firmware and mobile integration — GATT profile design, connection parameter optimization, BLE Mesh, and regulatory certification for products where wireless performance directly determines product quality.

What We Build on This Platform
GATT Profile & Service Design
Custom GATT service and characteristic design for hardware peripherals, including descriptor configuration, notification and indication setup, and GATT caching management for profiles that survive firmware updates without mobile app breakage.
Connection Parameter Optimization
Connection interval, slave latency, and supervision timeout tuning for the product's specific latency and battery life requirements, validated against iOS and Android connection parameter enforcement floors.
BLE Mesh for Building Automation
Bluetooth Mesh provisioning, model implementation (Generic OnOff, Light HSL, Vendor Model), network configuration, and relay and proxy node topology design for lighting, HVAC, and access control deployments.
LE Secure Connections & Pairing
Numeric comparison, passkey entry, and OOB pairing method selection; MITM protection level determination; and bond management for multi-device pairing scenarios across mobile, tablet, and embedded central roles.
BLE 5.x Extended Advertising
Extended advertising for longer advertising payloads, multiple advertising sets, periodic advertising for connectionless broadcast, and Coded PHY for extended range applications in industrial and agricultural environments.
Nordic nRF5 SDK & Zephyr BLE
SoftDevice GATT server and client implementation on nRF52 series; Zephyr RTOS BLE stack configuration for nRF52, nRF53, and nRF91 targets with DFU bootloader integration.
iOS & Android BLE Integration
Core Bluetooth (iOS) and Android BLE API integration with connection management, GATT characteristic caching workarounds for Android fragmentation, and MTU negotiation for high-throughput file transfer profiles.
RF Certification & Coexistence
FCC Part 15, CE RED, and SRRC certification path for BLE products including antenna design review, conducted and radiated RF measurement, and coexistence validation with Wi-Fi in dual-mode products.
How Ankh Uses This Platform
Protocol Requirements & GATT Architecture
Data throughput requirements, notification latency requirements, and battery budget are defined before GATT design begins — because these constraints directly determine connection interval, which determines average current. Custom service UUID versus adopted service profile is selected based on interoperability requirements with third-party apps. Characteristic property selection — read versus notify versus indicate — is made for each data type based on whether the mobile app requires acknowledgment. The GATT attribute table is designed for the mobile app's access pattern, with stable attribute handles that survive firmware updates without invalidating the Android GATT cache.
Connection Parameter & Power Budget
Advertising interval is set for the target discovery time, with advertising current contribution calculated against the battery budget. Connection interval is set for the target notification latency, then validated against iOS and Android minimum enforced values for the application's foreground and background modes. Slave latency is configured for battery optimization in sensor-only peripheral roles where the peripheral rarely has data to send. Supervision timeout is set to balance reconnection detection speed against false disconnection events on a contested 2.4GHz channel. Power budget is calculated across advertising duty cycle and connected state at the enforced connection interval.
Security Model Design
Pairing method is selected for the product's physical UI capabilities: passkey entry for products with keypads, numeric comparison for products with displays, OOB for manufacturing provisioning workflows where a QR code or NFC tap delivers the OOB data. Bond storage is designed for the target number of bonded peers with a bond eviction policy for the case where all bond slots are full. MITM protection level is determined by the sensitivity of the GATT profile data — a heart rate monitor requires MITM protection; a temperature sensor broadcasting public data does not. Bond deletion and re-pairing flow is designed for the case where a user replaces their phone.
Mobile Integration & GATT Cache
iOS Core Bluetooth peripheral implementation is built with GATT service change indication to notify the mobile app when the GATT table changes after a firmware update. Android BLE GATT cache refresh workaround is implemented for the characteristic discovery-on-reconnect problem, using the most reliable technique available for the Android version range targeted by the companion app. MTU negotiation is initiated from the mobile central after connection establishment for high-throughput file transfer characteristics. Connection parameter update request from the peripheral is issued after the connection establishment delay required by iOS to avoid rejection.
RF Measurement & Certification
Conducted and radiated BLE RF measurements are performed on the final PCB in the final enclosure to capture enclosure attenuation effects. Antenna type — PCB trace, chip antenna, or external — is selected from measured radiated performance, not from datasheet gain figures. Pre-compliance FCC and CE measurements are taken before regulatory lab submission to identify issues early. RF coexistence measurement is performed for dual Wi-Fi and BLE products to validate that simultaneous Wi-Fi and BLE operation does not degrade BLE sensitivity below the product's range specification. FCC Part 15.247 and CE RED ETSI EN 300 328 certification submissions are managed from measurement through grant.
Deep Technical Capability
GATT Cache Invalidation and Android BLE Fragmentation
Android's BLE stack caches GATT service discovery results keyed by device Bluetooth address. When a device firmware update changes the GATT attribute table — adding a characteristic, reordering services, or changing a descriptor — the cached attribute handles become stale, and subsequent characteristic reads and writes target incorrect handles, producing silent failures or ATT error responses. The standard developer workaround is invoking BluetoothGatt.refresh() via Java reflection, which clears the internal cache. This approach works on stock Android but fails on a significant portion of OEM-modified GATT stack implementations from Samsung, Xiaomi, and Huawei, where the reflection target method name or access modifier differs. Ankh addresses this at the firmware design layer: GATT attribute handles are made stable across firmware updates by reserving fixed attribute offsets for all characteristics defined in the product roadmap, and the service changed indication (GATT Service Changed characteristic, handle 0x0004) is included in every firmware update to signal bonded centrals that service discovery must be re-run. This eliminates the dependency on the undocumented refresh API and produces a GATT profile that survives firmware evolution across the full Android device matrix.
BLE Connection Parameter Negotiation and Peripheral Battery Life
BLE connection parameters are a three-party negotiation: the peripheral requests preferred parameters via the L2CAP Connection Parameter Update procedure, the central may accept, modify, or reject the request, and the operating system hosting the central imposes its own enforcement floors that override both parties. iOS enforces a minimum connection interval of 15ms for foreground Core Bluetooth sessions and 30ms for background sessions, regardless of what the peripheral requests. Android's minimum enforced connection interval varies by OEM and Android version — some devices enforce 7.5ms minimum, others 45ms minimum. A sensor node designed for a 1600ms connection interval, which yields an average connected current of approximately 0.5mA on the nRF52840, may be forced to 75ms by an iOS device with an active foreground session, increasing the connected current by a factor of twenty and reducing battery life from two years to five weeks. Ankh characterizes actual connection parameter negotiation behavior for each target OS version and OEM device in the product's mobile app compatibility matrix, designs the power budget at the worst-case enforced interval, and implements an application-level indication that the mobile app should move to background to allow the peripheral's preferred interval to take effect when continuous high-frequency data is not needed.
BLE 5.x Coded PHY for Extended Range Industrial Applications
BLE Coded PHY (LE Coded) introduces forward error correction at the physical layer, providing two coding schemes: S=2 (500kbps, approximately 4dB sensitivity improvement over 1M PHY) and S=8 (125kbps, approximately 8dB sensitivity improvement). In free-space LOS conditions, S=8 theoretically extends range from approximately 100 meters at 1M PHY to over 1 kilometer — practically useful for agricultural field sensors and industrial yard monitoring where laying cabling is cost-prohibitive. The complication is that both the advertising PHY and the connected data PHY must be explicitly negotiated to Coded PHY for an end-to-end range benefit: a device advertising on Coded PHY but connecting at 1M PHY reverts to 1M PHY sensitivity for data transfer. PHY update procedure must be initiated after connection establishment if the initiating side doesn't support Coded PHY advertising scanning. Throughput at S=8 drops to 125kbps versus 1Mbps at 1M PHY, which requires the application protocol to be designed for low data rate. CE RED compliance requires testing on all advertised PHYs, so Coded PHY advertising adds test vectors to the certification matrix. Ankh validates Coded PHY range in the actual deployment environment — concrete buildings, metal enclosures, and channel congestion — rather than anechoic chamber conditions, ensuring the range specification reflects production reality.
Products Built on This Platform
Wearable Electronics
GATT profile design and power optimization for continuous biometric sensor streaming.
View ProductMedical Devices
LE Secure Connections and HIPAA-aligned GATT security model for clinical BLE peripherals.
View ProductSmart Home Automation
BLE Mesh provisioning and vendor model implementation for lighting and sensor nodes.
View ProductIoT Devices
Nordic nRF52 SoftDevice GATT server with iOS and Android companion app integration.
View ProductPatient Safety
BLE beacon and locator infrastructure for real-time patient and asset location.
View ProductWireless Communication
Extended advertising and Coded PHY for long-range industrial sensor networks.
View ProductGATT profiles engineered for production, not prototype demo
A BLE GATT profile that works in a developer bench demo can fail silently in production when Android caches stale attribute handles after a firmware update, when iOS enforces a connection interval that triples battery drain, or when a user's phone is already bonded to 20 other devices and the bond slot eviction policy deletes the product's bond without warning. Ankh designs GATT profiles from the beginning with stable attribute handles, service changed indication, explicit bond management, and connection parameter behavior validated against a device matrix representing the actual users' hardware — not a single test device on a developer's desk.
BLE power budgets calculated from physics, not copy-pasted from app notes
Nordic and Espressif application notes provide current figures for ideal conditions — specific connection intervals, specific advertising payloads, specific operating temperatures. Production hardware adds PCB trace losses, enclosure RF attenuation, higher retransmission rates on contested 2.4GHz channels, and iOS-enforced connection intervals that override the peripheral's request. Ankh builds power budgets from measured current profiles on the final PCB in the final enclosure at the iOS and Android-enforced connection intervals, accounting for retransmission overhead at realistic packet error rates. The battery life figure in the product specification reflects production operation, not datasheet operation.
Mobile BLE integration tested against real Android fragmentation
Android BLE fragmentation is not a theoretical concern — Samsung, Xiaomi, Motorola, and Google Pixel devices running the same Android version can exhibit different GATT cache behavior, different connection parameter enforcement, different MTU negotiation behavior, and different characteristic notification registration behavior due to OEM modifications to the BLE stack. Ankh tests companion app BLE integration against a physical device matrix covering the OEM and Android version distribution of the product's target market, identifies failure modes specific to high-market-share OEM stacks, and implements workarounds that are conditional on detected stack behavior rather than applying a lowest-common-denominator approach that degrades performance on well-behaved devices.
