Skip to Content
DOC / SVC-03 - REV 01

BLE and Wi-Fi Connectivity

Pairing, provisioning, and reliable data flow between device, phone, gateway, and backend, including the failure cases that decide how the product is perceived.

SVC-03 / Overview

What connectivity engineering involves

Connectivity is the layer users notice first and forgive least. Pairing that fails once is a support ticket; pairing that fails intermittently is a returned product. Much of the perceived quality of a connected device is decided in the seconds between switching it on and seeing data.

The engineering is less about the radio than about the protocol running over it: how a device is identified, how a session starts and ends, what happens to readings recorded while nothing was listening, and how a command or a firmware image is delivered without being replayed or spoofed.

We design and implement those flows across BLE and Wi-Fi on both sides of the link, in device firmware and in the app, gateway, or backend it talks to, so that the two are built against one specification rather than reverse-engineered from each other.

SVC-03 / Capabilities

What this service covers

Capabilities
  • BLE pairing, bonding, and onboarding flows.
  • BLE service and characteristic design.
  • BLE session control and connection-parameter tuning.
  • Wi-Fi provisioning and credential handling.
  • UDP and TCP transport design.
  • HTTPS and JSON APIs for constrained devices.
  • Custom binary protocols and payload framing.
  • Device identity, registration, and key handling.
  • Data compression and batching strategy.
  • Offline-first synchronisation and duplicate handling.
  • Secure command and firmware update flows.
SVC-03 / Method

How we approach connectivity

Write the protocol down first

A protocol that exists only as code in two repositories is not a protocol, it is a pair of assumptions. We produce a written specification covering message framing, field semantics, error responses, and version negotiation, and both sides implement against it.

Versioning belongs in the first release, not the second. Retrofitting a version field once devices are deployed means supporting an unversioned legacy dialect indefinitely.

Design for the reconnect, not the connect

The interesting cases are all after the first successful connection: a phone that walks out of range mid-session, a gateway restarted during an upload, a device that has been logging for a week with nothing listening.

Sequence numbers, resumable transfers, and commands that are safe to repeat turn those situations into a short delay instead of lost data or a duplicated action.

Treat provisioning as a product feature

Onboarding is the first thing a customer experiences and the flow with the most ways to fail: permissions not granted, the device not advertising, credentials mistyped, the network unreachable. Each of those needs a distinct, recoverable state in the flow rather than one generic failure message.

Budget the payload

On a battery device, bytes cost energy, because transmit time is where the power goes. Batching, compression, and sending differences rather than full state are worth real engineering attention when the radio dominates the energy budget, and are unnecessary complexity when it does not.

SVC-03 / Output

What you receive

Deliverables

  • A written, versioned protocol specification covering both sides of the link.
  • Device-side communication implemented in firmware.
  • The counterpart implemented in the app, gateway, or backend.
  • Defined behaviour for reconnect, backfill, and duplicate delivery.
  • Device identity and secure update and command flow design.
  • An interoperability test procedure covering the failure cases.

When this fits

  • Pairing or provisioning is unreliable and the failures are hard to reproduce.
  • Data goes missing when devices drop out of range.
  • Two teams are building the two sides of one link and disagree about the contract.
FAQ

Questions we are asked about ble and wi-fi connectivity

BLE or Wi-Fi, how should we choose?

It usually follows the power source and whether a phone is present. Battery devices a user interacts with tend toward BLE; mains-powered devices that must reach a backend unattended tend toward Wi-Fi. Many products use both, BLE for setup and Wi-Fi or a gateway for ongoing data.

Can you use a standard protocol instead of a custom one?

Where a standard fits, yes. HTTPS and JSON are the default for anything not severely constrained. Custom binary framing is worth its cost only when payload size is directly limiting battery life or throughput.

What happens to data recorded while a device is offline?

It should be stored on the device and backfilled when the link returns, with sequence numbers so the backend can detect gaps and duplicates. Designing this in from the start is straightforward; retrofitting it after data loss has been observed is not.

Do you handle certification and regulatory testing?

We design with the certification path in view, since module choice, antenna placement, and transmit behaviour all affect it, and we work alongside the test house you select. We do not carry out the certification testing ourselves.

Sense more. Do more.

Have an IoT product idea or prototype that needs a professional architecture?

Tell us what you want to build. We help transform connected product ideas into systems that sense the real world and do useful work through hardware, firmware, apps, gateways, and backend systems.

Start a Project