Most BLE problems are not on the radio side. They are in the pairing flow, the iOS background reconnection, the OTA rollback path, and the timing of advertisement intervals. We have shipped enough BLE products to know where those problems hide.
We work on three shapes of BLE engagement: a clean-sheet BLE firmware build on new silicon; a BLE rescue on an existing firmware tree that is missing connection stability, OTA, or iOS background support; and a mobile-side rescue, where the firmware is fine but the iOS / Android side keeps losing the device. All three start with a written audit so you know exactly what we will do before any code changes.
BLE 5.x peripheral and central roles, GATT server / client, custom services, Notify / Indicate, MTU negotiation, PHY switching (1M / 2M / Coded).
Just Works, Numeric Comparison, Out-of-Band, LE Secure Connections. Bond list management, multi-phone bonding, and recovery when a user resets their phone.
MCUboot or Nordic Secure DFU. A/B partition, automatic rollback on boot failure, and OTA jobs orchestrated from your cloud.
Core Bluetooth state restoration, background scanning, app-kill survival, and the device-cache resets nobody warns you about. Yes, we have a checklist for App Review.
BLE Mesh, multi-peripheral connections, and BLE-to-Wi-Fi gateways for fleets that need cloud reach without cellular.
Connection interval / latency tuning, advertisement scheduling, and event-driven duty cycling — measured on a Nordic PPK II so the battery budget is grounded in real microamps.
| Layer | What we use |
|---|---|
| Silicon | Nordic nRF52832 / nRF52840 / nRF5340, ESP32 / ESP32-S3, Qualcomm QCC51xx, STM32WB |
| BLE stacks | Nordic SoftDevice, NimBLE, Zephyr Bluetooth, ESP-IDF Bluedroid / NimBLE |
| Bootloaders | MCUboot (signed, A/B), Nordic Secure DFU |
| Mobile | iOS Core Bluetooth (Swift), Android BluetoothGatt (Kotlin), Flutter (flutter_blue_plus), React Native (react-native-ble-plx) |
| Debug tools | nRF Connect Mobile, Wireshark over Ubertooth, Nordic PPK II for power, Saleae Logic for line capture |
Nordic nRF52832/40 and nRF5340, ESP32 and ESP32-S3, Qualcomm QCC51xx for combined audio+sensors, and STM32WB for Cortex-M4 + BLE in one chip. We pick for your power, range, and BoM.
Filter by service UUID during scan, present a single-tap pair flow, fall back to the OS-level pairing alert only when bonding is required. Core Bluetooth state restoration keeps the connection alive through backgrounding, app kill, and phone reboot.
Yes. MCUboot or Nordic Secure DFU with code-signed images, A/B partitions, automatic rollback on boot failure, and version-aware OTA jobs from the cloud.
Yes. iOS Core Bluetooth and Android BluetoothGatt are part of our weekly work. We can deliver the BLE plugin for your existing Flutter / React Native app or build the whole companion app.
Book a free 30-minute call. We will look at your stack, your pairing flow, or your OTA path and give you a written assessment within a week.
Book a free 30-min call