The Silicon Labs Bluetooth team maintains a number of mobile devices that we use for interoperability testing of our stack and mobile apps. The list of these devices is as follows
iPad, iPad mini2, iPad Air 2, iPad PRO,iPhone 4S, iPhone 6, iPhone 6S,
Samsung Galaxy Tab S, Nexus 5X, Huawei Mediapad M3, Samsung Galaxy S6, OnePlus One, HTC One M8, Samsung Galaxy Tab S3, Google Nexus 7 (by Asus), Galaxy Tab A, Huawei Nexus 6P, LG G6
This list isn't any sort of endorsement, it is only intended to be informative.
One of the new features added in Bluetooth 5 is the LE coded PHY which enables longer range connections. This article describes how advertising on the coded PHY works, as well how to establish a connection using the coded PHY.
Traditional Bluetooth low energy advertisements use channels 37, 38 and 39 only for advertising. The advertisement is identical on each channel and contains the advertiser’s address and advertising data payload. Starting in Bluetooth 5 it is possible to offload the advertising data payload onto one of the data channels. In this new type of advertisement, the same three advertising channels are used but instead of including the data payload, they include a pointer to the data channel and the offset time until the data payload is expected. This type of advertising is known as extended advertising. The following diagram is provided to illustrate
The common extended advertising format looks like this
The ADV mode field is shown below, note that is not permitted to be scannable and connectable at the same time
The extended header is laid out as follows, not all fields will be present in every advertisement
The aux pointer field provides information about the auxiliary advertisement as shown below
The channel index indicates which channel the auxiliary advertisement will come on. The CA field indicates the clock accuracy, the offset units indicate whether the offset (time until the auxiliary advertisement) is in units of 30 us or 300 us, the aux offset indicates the number of offset units until the auxiliary advertisement can be expected and the aux PHY indicates which PHY be used in the auxiliary advertisement.
The sync info field is not presently used. The Tx Power field indicates the transmitted power in dBm.
Another feature of these extended advertisements is that it is possible to specify the PHY used for the primary and secondary advertisements separately. To set the PHY used for advertisments, the following API function can be used
gecko_cmd_le_gap_set_advertise_phy(0, le_gap_phy_coded , le_gap_phy_coded);
The parameters indicate the advertisement set to be used, the PHY for primary advertisements and the PHY used for secondary advertisements
Advertisements on the coded PHY do not support active scanning. This means that is always necessary to use the new connectability mode le_gap_connectable_non_scannable.
To start advertising, the following API function can be used
Remaining advertising parameters can be set as they would with the traditional 1 Mbps PHY.
Please refer here for an article summarizing the changes to the API in version 2.8.
Source code for an example advertiser and observer are attached below. To use this code please do as follows