This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Is it valid to advertise as connectable but without any services ?

I'm trying to conserve space in the advertising packet, and would like to free up the space used by the 128 bit (16 byte) service item list, as this takes a minimum of 18 bytes, if you include the Length and Type bytes. But I need to broadcast a lot of manufacturer data, and 18 bytes is over half the available space in the advertising packet.

So as an experiment, I removed the service, from

 static ble_uuid_t                       m_adv_uuids[] = {};//{{BLE_UUID_EBS_SERVICE, EBS_SERVICE_UUID_TYPE}};  /**< Universally unique service identifier. */

And checked using the Nordic nRFConnect app, and this seems to be a valid setup, because the service can be discovered when the app connects.

Is this a valid mode of operation ?

The only drawback I can see if that iOS will not scan in the background if a device does not advertise any services. But I could always just add the device information service, so that iOS has something to look for, as that would only take 4 bytes, as its a 16 bit service

Related