Connect multiple drawing tab with Native iOS using Swift UI and bluetooth core functionality

14 hours ago 3
ARTICLE AD BOX

I am building a native iOS app (Swift, CoreBluetooth) that needs to connect to multiple BLE drawing devices (up to 4 simultaneously) and receive streaming drawing data.

Current State

Scanning works

Multiple peripherals connect successfully

didConnect is called for each device

Services and characteristics are discovered

However:

didUpdateValueFor characteristic is never triggered

readValue(for:) produces no response

writeValue(_:for:type:) does not produce any observable result

No streaming data is received from the devices

Important Context

The vendor provides an SDK, but:

It supports only one device at a time

It does not allow multiple simultaneous connections

Because of this limitation, we are implementing multi-device support directly using CoreBluetooth.

The device protocol appears to require sending HEX-based initialization commands before it begins streaming drawing data.

What We Are Doing

After discovering characteristics, we:

peripheral.setNotifyValue(true, for: characteristic) peripheral.readValue(for: characteristic) peripheral.writeValue(data, for: characteristic, type: .withResponse)

Despite this:

didUpdateValueFor is never called

didWriteValueFor is not triggered

No data is received

Questions

If a peripheral connects but no characteristic updates are received, what are the most common causes?

Is it mandatory that the characteristic has the .notify property for streaming data?

If the vendor SDK only supports one device, could the firmware restrict multiple active data streams?

How can we verify that we are writing to the correct characteristic without vendor documentation?

Can CoreBluetooth reliably handle multiple high-frequency streaming peripherals?

Core Issue

Connections succeed, but no characteristic communication (read/write/notify) works.

Any guidance on diagnosing this type of BLE communication failure would be appreciated.

Read Entire Article