Member | Action | Date |
---|---|---|
![]() |
Replied
to
Difference between attribute permissions 'bonded_read' and 'encrypted_read' ?
Hi,
You are setting no input no output capability, which can only support "Just works" in the pairing process. However, if you need authentication, you can't use this, you need display or input keyboard. For more information, I would suggest you to go through the security section of below link. https://docs.silabs.com/bluetooth/latest/general/security/pairing-processes
Thanks, Kevin |
Nov 06 2020, 2:32 AM |
![]() |
Replied
to
Static libraries linking
Hi,
You need to add more include paths, the easiest way is to copy all the include path settings from Simplicity Studio, or the output of "make" to the target_include_directories command. E.g, if you build any example, you will see console output information like below: arm-none-eabi-gcc -g -gdwarf-2 -mcpu=cortex-m4 -mthumb -std=c99 '-D__StackLimit=0x20000000' '-DHAL_CONFIG=1' '-D__STACK_SIZE=0x800' '-D__HEAP_SIZE=0xD00' '-DEFR32BG13P632F512GM48=1' -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/service/sleeptimer/config" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/emlib/src" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/protocol/bluetooth/ble_stack/inc/common" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/CMSIS/Include" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/Device/SiliconLabs/EFR32BG13P/Include" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/emlib/inc" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/hardware/kit/common/halconfig" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/hardware/kit/common/bsp" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/hardware/kit/common/drivers" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/service/sleeptimer/src" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/radio/rail_lib/protocol/ieee802154" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/emdrv/uartdrv/inc" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/emdrv/gpiointerrupt/inc" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/Device/SiliconLabs/EFR32BG13P/Source" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/emdrv/common/inc" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/radio/rail_lib/common" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/emdrv/sleep/inc" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/protocol/bluetooth/ble_stack/inc/soc" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/emdrv/sleep/src" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/radio/rail_lib/protocol/ble" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/service/sleeptimer/inc" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/hardware/kit/EFR32BG13_BRD4104A/config" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/radio/rail_lib/chip/efr32/efr32xg1x" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/app/bluetooth/common/util" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/bootloader/api" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/halconfig/inc/hal-config" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/common/inc" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/Device/SiliconLabs/EFR32BG13P/Source/GCC" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se" -I"/Users/zhfu/SimplicityStudio/v4_workspace/bg13_se/platform/bootloader" -O2 -Wall -c -fmessage-length=0 -ffunction-sections -fdata-sections -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -MMD -MP -MF"platform/emlib/src/em_gpio.d" -MT"platform/emlib/src/em_gpio.o" -o "platform/emlib/src/em_gpio.o" "../platform/emlib/src/em_gpio.c" then put all the paths with "-I" flag to the target_include_directories
Thanks, Kevin
|
Nov 05 2020, 6:53 AM |
![]() |
Replied
to
Difference between attribute permissions 'bonded_read' and 'encrypted_read' ?
Hi,
Yes, if any attempt to access the attribute which requires encryption, the stack will try to initiate pairing. You can also explicitly call the gecko_cmd_sm_increase_security to force pairing any time you want.
Thanks, Kevin |
Nov 04 2020, 2:44 AM |
![]() |
Replied
to
BLE Mesh - Get Generic OnOff state from server (client request from server)
Hi,
You can use the gecko_cmd_mesh_test_get_local_model_pub to get the publication information including the address, just be noted you need to initialize the mesh test class in the beginning.
Thanks, Kevin |
Nov 02 2020, 11:51 AM |
![]() |
Replied
to
Bluetooth Knowledge Base Article List
Merged the KBA_BT_0503 and KBA_BT_0504 into single KBA - KBA_BT_0503: Bluetooth Mesh Advertising Sets, original ones are deleted.
Show more
|
Oct 29 2020, 6:33 AM |
![]() |
Updated
Bluetooth Knowledge Base Article List on Bluetooth Wireless Knowledge Base
NOTE
IntroductionThis Knowledge Base Article (KBA) aims to act as a “master” KBA which keeps a curated index of all the Bluetooth related KBAs divided into logical categories for an easier and more convenient look-up. It may also include non-KBA content which is relevant for designing your Bluetooth application (e.g. app notes or web pages). If you are just getting started with Silicon Labs Bluetooth solutions then your starting point should be QSG139: Getting Started with Bluetooth® Software Development. At the end of that document you are presented with the flowchart below which shows what documents should be read and in which order. Additionally you can check out our Bluetooth Training page for more training material. Knowledge Base Articles ListThe content listed below is grouped together into categories to make it easier for you to find what you are looking for. Want to know more about security, or looking for a peripheral example, then head down to the right section and see what KBAs or other relevant content has been created under those topics. Each category has an associated index number and each individual KBA has its own index number within the category. The KBA's are prefixed with KBA_BT_AABB where AA is the category index and BB is the KBA index within that category. The category index numbers are as follows:
Note: Do you want to get automatic notifications when new content is added to the list? Just click the Follow button in upper right corner to subscribe to email notifications. We will make comments when new content is created to trigger those notifications. [01] Bluetooth General
[02] Bluetooth - Advertising
[03] Bluetooth - Stack features
[04] Bluetooth - Performance
[05] Bluetooth - Bluetooth Mesh
[06] Bootloading - General
[07] Bootloading - UART DFU
[08] Bootloading - OTA DFU
[09] Application Examples
[10] Peripheral Examples
Additional Resources
[11] Security
[12] Tools
Additional Resources[13] Hardware
Additional Resources
[14] Migration
[15] Mobile
[16] NCP
|
Oct 29 2020, 6:29 AM |
![]() |
Posted
KBA_BT_0503: Bluetooth Mesh Advertising Sets on Bluetooth Wireless Knowledge Base
This article describes:
Advertising SetsAdvertising Sets are defined in Section 4.4.2.10, Part B, Vol 6, Bluetooth Specification Version 5.2. With advertising sets supported, Bluetooth stack actually provides a way to interleave multiple advertising events. Each advertising set has its own parameters, payload, timing etc. and is independed to the other advertising sets. For example, if you want to send a connectable advertisement and a non-connectable beacon simultaneously, you don't necessarily need to send the connectable advertisement once then modify the content and parameters to send the non-connectable beacon repeatedly, this will easy to achieve by using 2 advertising sets. Advertising Sets Used by Bluetooth Mesh StackWhen the Bluetooth stack initializes, user application needs to configure the number of the maximum advertising sets used by both the stack and application. Other than the regular BLE examples, which typically don't use any advertising set, the Bluetooth Mesh stack uses some advertising sets to send data. You can find below inline description of the advertising sets used by Bluetooth Mesh stack in the main.c file of all Bluetooth Mesh examples.
Here is a more verbose explanation for each set: Advertising Set 0 - Reserved for Application This advertising set is reserved for regular BLE advertising. It's created when the stack initializes by default and ready to be used by the application. For example, you can call the API gecko_cmd_le_gap_start_advertising with handle 0 to start advertising with this advertising set. This is NOT used by the Bluetooth Mesh stack, but has to be counted into the maximum number of the advertising sets. Advertising Set 1 - Bluetooth Mesh Data This advertising set is used for Bluetooth Mesh data traffic, which is the traffic happens on the Advertising bearer (section 3.3.1 of Mesh Profile v1.0.1) and PB-ADV (section 5.2.1 of Mesh Profile v1.0.1) . The stack is in control of the advertising data and the advertising parameters for this set, and the user application MUST NOT override the parameters or use this set for any other purpose. Advertising Set 2 - Bluetooth Mesh Unprovisioned Device Beacon Without URI This advertising set is used for sending the Unprovisioned Device Beacon (section 3.9.2 of Mesh Profile v1.0.1) when devices are in unprovisioned state. The Bluetooth Mesh stack will construct the advertising payload according to the definition of the Unprovisioned Device beacon format. User application shall not modify the advertising payload to this advertising set. What the user application can control in this case is the cadence for sending the Unprovisioned Device beacon, call the API - gecko_cmd_le_gap_set_advertise_timing with handle 2 BEFORE starting the Unprovisioned Device beacon. Advertising Set 3 - Bluetooth Mesh Unprovisioned Device Beacon With URI This advertising set is also used for sending the Unprovisioned Device Beacon (section 3.9.2 of Mesh Profile v1.0.1) when devices are in unprovisioned state. The only difference is there are 4-byte of URI hash appended to the data payload. See below lines from the Mesh Profile.
The latest Bluetooth Mesh stack doesn't support sending Unprovisioned Device beacon with URI, so this is reserved for future use. Advertising Set 4 to N - Bluetooth Mesh Proxy Service Advertising The usage of this advertising set is device state dependent. If a device is in unprovisioned state, this advertising set will be used to advertise the Mesh Provisioning Service (section 7.1 of Mesh Profile v1.0.1) if the application call gecko_cmd_mesh_node_start_unprov_beaconing with PB-GATT bit set in the bearer parameter. If a device is in provisioned state and supports Proxy feature, it shall start advertising the Mesh Proxy Service (section 7.2 of Mesh Profile v1.0.1) if the given situations are met. Alternatively, user application can start the advertising munally whenever the device is expected to connect to a proxy client. Because a provisioned device could belong to multiple subnets, it could advertise multiple Mesh Proxy Service advertisements simultaneously. The maximum network key number that the device supports decides the maximum number of subnets the device can be in, so N is calculated to be 4 + the maximum network key on the device. Adding Customized Advertising Sets to Bluetooth Mesh ApplicationsThis example shows how to add your custom BLE advertising into a Bluetooth Mesh project. Step 1: Increase the MAX_ADVERTISERS macro by the number of your custom advertising sets. The .bluetooth.max_advertisers parameter in the gecko_configuration_t structure decides the maximum number of the advertising sets in the application. In all examples of the Bluetooth Mesh SDK, this value is feed by MAX_ADVERTISERS macro. So, modify the MAX_ADVERTISERS macro like below to add your own advertising sets.
Step 2: Configure the advertising sets if needed. You can use the advertising configuration related APIs (gecko_cmd_le_gap_set_advertise_xxx) to configure the advertising sets specifically by the advertising set ID (handle), as well as the gecko_cmd_le_gap_bt5_set_adv_data to set the advertising payload. For more details about the advertising parameters and data payload format, you can check Bluetooth Advertising Data Basics. For constructing the advertising data in a much easier way, you can use the code example - Advertisement or Scan Response Constructor. Step 3: Start the advertising sets This is the final step to send your own advertisement, call gecko_cmd_le_gap_start_advertising with advertising set ID (handle) specified to start advertising the specific advertisement. There is basically no difference compared to regular (non-mesh) BLE case. The key thing to take into account here is configuring the number of advertising sets and selecting the right advertising handle to use. |
Oct 29 2020, 6:28 AM |
![]() |
Replied
to
rail_config.h: No such file or directory
Hi,
It's very weird that you got the error because 154_rx_ci.c is not expected to be part of the Bluetooth application. I just tried creating the soc-empty project based on the part number you provided, but I didn't get any error by compiling the project. Project is attached, could you try to import and see how it works?
Thanks, Kevin |
Oct 23 2020, 11:22 AM |
![]() |
Replied
to
Difference between attribute permissions 'bonded_read' and 'encrypted_read' ?
Hi,
The difference is "if bonding is required for reading the attribute". Yes, you all understanding is correct, both needs encryption, and in your case, MITM protection is not provided. Just imagine one case where you don't bond with the device, you only pair with the device, attributes with encryption read can be read in this case, but not for bonded read.
Thanks, Kevin |
Oct 23 2020, 1:53 AM |
![]() |
Replied
to
IV Index Update State Trasition
Hi,
The stack will do the transition automatically.
Thanks, Kevin |
Oct 22 2020, 7:25 AM |