There are ~100 Knowledge Base Articles (KBAs) in the Bluetooth section of the forum on a diverse range of sub-topics. We know they are sometimes challenging to find, especially when you don't know what exists (and therefore you don't search for it).
To simplify this task we have created a Bluetooth Knowledge Base Article List which has all the KBAs divided into sub-topics. This list only contains KBAs which are meaningful today, so you won't find anything related with SDK 1.x, BGScript or anything else which has been deprecated. Most of those KBAs are still here but their title has been marked with a "[Deprecated]" prefix and a Note pointing for a more updated KBA where applicable. This is to avoid confusing our customers into reading material which is no longer applicable.
It would be great to hear if you find this list useful and any thoughts you might have on how to improve it.
This version has some feature improvements, but these improvements required that we make some changes to the GATT attributes. Because of this, some phones may experience connection problems after the BGX13 firmware is updated.
Reason for Problem
Some mobile devices remember the GATT attributes of devices that have been paired or bonded in the past. When the GATT attributes are changed after the 1.2 update, the mobile device cached GATT information is misaligned between the two devices. This causes invalid handles to bluetooth services and characteristics. As a result attempts to connect to the device may no longer work, or some feature may not work such as sending or receiving data between a phone and the specific BGX for which this invalid bonding exists.
Invalid/misaligned bonding data must be cleared and then the bond should be re-established using the correct GATT attributes.
Solution
The problem may manifest in the following ways.
On iOS, you may see a message on the device details screen reading "SOME_OTHER_MODE".
On either Android or iOS, you may also see a password dialog appear at an inappropriate time or when no password has been set. You might also see that data is not being sent from the phone to the BGX or from the BGX to the phone.
To solve this problem, perform the following operations:
If you have access to the BGX command line interface such as through a Terminal emulator connected to the serial interface, enter the command 'clrb' to clear the bonding information from the BGX.
On your phone, open the Bluetooth Settings and locate the BGX device. Click a "i" icon, gear icon, or other details icon for the device in the Bluetooth settings and choose "Forget" or "Unpair".
On your phone, turn Bluetooth off and then back on. This has been particularly noted as a necessary step on iOS 13. Alternatively, you could reboot the phone itself. However, rebooting is not a substitute for "forgetting" the device in the Bluetooth settings.
Kill the BGX Commander app as you would any app on your iOS or Android phone.
Restart BGX Commander and re-connect to the device. It should work correctly now.
I have OTA working with the new ebl documents on SDK 2.1.1. However, when I take a similar code to SDK 2.3.1, I can't reboot into DFU mode, and in this manner, none of the overhaul cycles works. Are there changes in this cycle between the two SDKs?
I can't get DFU to work during a full OTA stack redesign (none of my own application code running ometvbazoocamchathub). For instance: I start with the 2.1.1 stack, reboot to DFU, transfer the 2.3.1 stack.ebl, reboot and it isn't in DFU mode to begin tolerating the app.ebl?
Hello everyone, I am a hobbyist, and I recently bought an ESP32 (Wroom) board. I found the API to be the same as ESP8266's RTOS SDK, so getting started was no problem. I installed and set up the toolchain, and then I was able to do all the basics, drive GPIOs, connect to WiFi, sockets, etc.
Now I looked over at the examples which came with esp-idf, and there are many Bluetooth and BLE based examples which I would like to reverse engineer and learn about, but unfortunately I have minimal experience with Bluetooth.
How do I get started with Bluetooth? Should I read up all the theory on Bluetooth, or start by reading the documentation and then go about learning stuff I don't know. Or maybe start with the examples? How did you guys learn about Bluetooth?
Background: I have a CS degree, played around with AVRs, 8051/52s, STM32, ESP8266. Been programming for ~10 years
To bypass BGM210PB bootloader from application I'm doing this:
changed FLASH to start at address 0x0000 and removed .text_apploader and .text_signature from linker file.
I have created a custom board with BGM210PB32JIA2 (Schematic as per the Datasheet for the SoC implementation - BGM210PB32)
I was trying the soc-empty code after flashing the Bootloader code.
Here are the details of the implementation,
Module : BGM210PB32JIA2
BLE Stack : 3.1.0.0
Simplicity Studio Version : 5
Upon debugging found that it is getting stuck at BLE stack init and hence it was not advertising. I have shared all the screenshots and details in the attached document.
I noticed a strange behavior of the Lab_4 project from the Getting Started with SSv5 series on BGM220 Explorer Kit (BRD4314A). After establishing a connection with BT server, any button press causes disconnection, no matter if notifications are enabled or not. After disconnection the device does not re-start advertisements. The same code works just fine on Thunderboard Sense 2 and Thunderboard BG22 boards, but not on BGM220 Explorer Kit. The only way I made it working is adding a 1ms delay within the Simple Button event handler right after sending the signal to BT stack (line 46 in the attached project file app.c). If you uncomment this line, everything starts working fine. I use SSv5 SDK 3.1.0 on Windows 10. What is the reason and how to fix it without any fake delays?
I am trying to run the sample apps (NCP-locator-host-connectionless, NCP-target, Asset-tag-connectionless) provided by silabs. It builds successfully and the hex files are generated. First time when I flashed the respective codes in WSTK kit (BRD4001A) and asset tag(thunderboard), it was working properly. I have flashed the bootloader images too for both wstk and asset tag. After few days I tried testing the codes again but now it is just stuck on "Resetting NCP Target". I had updated the firmware to the latest version before second time testing. I am not able to figure out the problem. I have followed the same steps I did when I tested the code for the first time. It is not a hardware problem, because I tested in another kit and it is coming the same for it, also the hex files given for the demo code, when I flash it , it is working fine as well. I have attached the screenshots of first when I tested the codes and the current screenshot.
first time tested: system booted is showing up and displaying all the values
Second time testing: stuck on resetting NCP target... forever
I have some questions
the BG22 only works in LPN mode, which needs a friend node to connect (BG21)
May I have the following situation?
8 LPN
1 Friend node
That friend node would connect the 8 LPN nodes and is the one that would receive the data from them and send the requests
And I have the following question
1.With that would the entire infrastructure of the mesh network be created? Or do you need another module that is a proxy to connect from a mobile for example?
2. What is the maximum node that a friend node would support?
3. Forget about the mesh protocol and with a "classic" BLE connection, how many simultaneous devices can I connect to the bg22?
I'm using two BG22 one as client another one as server, I can successfully setup a connection between BG22 server and iPhone with bonding, but when I use my BG22 client to connect with BG22 server, it seems that doesn't have bonding request event generated in BG22 client, which event actually that I can catch for starting bonding process?
I tried to catch below event in BG22 client, but still no luck
Forum
Bluetooth Knowledge Base Article List
There are ~100 Knowledge Base Articles (KBAs) in the Bluetooth section of the forum on a diverse range of sub-topics. We know they are sometimes challenging to find, especially when you don't know what exists (and therefore you don't search for it).
To simplify this task we have created a Bluetooth Knowledge Base Article List which has all the KBAs divided into sub-topics. This list only contains KBAs which are meaningful today, so you won't find anything related with SDK 1.x, BGScript or anything else which has been deprecated. Most of those KBAs are still here but their title has been marked with a "[Deprecated]" prefix and a Note pointing for a more updated KBA where applicable. This is to avoid confusing our customers into reading material which is no longer applicable.
It would be great to hear if you find this list useful and any thoughts you might have on how to improve it.
Additionally please check out our Bluetooth training page -> https://www.silabs.com/support/training/bluetooth
BGX13 v1.2 Upgrade Issues
Problem
Some mobile devices may have connection problems after updating BGX13 to 1.2.2045.0.
SIlicon Labs recently updated the firmware for BGX13 to version 1.2.2045.0.
https://docs.silabs.com/gecko-os/1/bgx/latest/release-notes
This version has some feature improvements, but these improvements required that we make some changes to the GATT attributes. Because of this, some phones may experience connection problems after the BGX13 firmware is updated.
Reason for Problem
Some mobile devices remember the GATT attributes of devices that have been paired or bonded in the past. When the GATT attributes are changed after the 1.2 update, the mobile device cached GATT information is misaligned between the two devices. This causes invalid handles to bluetooth services and characteristics. As a result attempts to connect to the device may no longer work, or some feature may not work such as sending or receiving data between a phone and the specific BGX for which this invalid bonding exists.
Invalid/misaligned bonding data must be cleared and then the bond should be re-established using the correct GATT attributes.
Solution
The problem may manifest in the following ways.
On iOS, you may see a message on the device details screen reading "SOME_OTHER_MODE".
On either Android or iOS, you may also see a password dialog appear at an inappropriate time or when no password has been set. You might also see that data is not being sent from the phone to the BGX or from the BGX to the phone.
To solve this problem, perform the following operations:
Also refer to https://docs.silabs.com/gecko-os/1/bgx/latest/firmware-update#problems-after-upgrade
Tips for troubleshooting and asking questions
1. Clarify to yourself what the specific issue is.
2. Apply basic troubleshooting:
3. Consult the datasheets and reference manuals. Sources include:
4. Search to see if someone has asked the same question already.
5. Include the relevant parts of your development setup in the problem description. Examples include:
6. Include steps to reproduce the problem or specific conditions the problem occurs in.
7. Be patient and avoid making duplicates of your question.
For general community usage please refer to the Silicon Labs Community Guidelines.
OTA not chipping away at BLE SDK 2.3.1?
I have OTA working with the new ebl documents on SDK 2.1.1. However, when I take a similar code to SDK 2.3.1, I can't reboot into DFU mode, and in this manner, none of the overhaul cycles works. Are there changes in this cycle between the two SDKs?
I can't get DFU to work during a full OTA stack redesign (none of my own application code running ometv bazoocam chathub). For instance: I start with the 2.1.1 stack, reboot to DFU, transfer the 2.3.1 stack.ebl, reboot and it isn't in DFU mode to begin tolerating the app.ebl?
Can't find board in EFR Connect
Hello Im new to BGM220 Explorer Kit Board and Simplicity Studio 5.
I fellow this Lab 1 tutorial https://docs.silabs.com/bluetooth/3.0/lab-manuals/getting-started-with-bluetooth-in-simplicity-studio-v5, but nothing show up in EFR Connect.
I tried 2 examples and 1 demo in Example Projects & Demo SSv5
Bluetooth - SoC Empty,
Bluetooth - Soc Thermometer (Mock) and
Bluetooth - Soc Thermometer (Mock) Demo run
In 3 Cases, Demo was Only showed in EFR Connect and 2 examples weren't.
What's the problem in here
Help regarding Bluetooth and BLE
Hello everyone, I am a hobbyist, and I recently bought an ESP32 (Wroom) board. I found the API to be the same as ESP8266's RTOS SDK, so getting started was no problem. I installed and set up the toolchain, and then I was able to do all the basics, drive GPIOs, connect to WiFi, sockets, etc.
Now I looked over at the examples which came with esp-idf, and there are many Bluetooth and BLE based examples which I would like to reverse engineer and learn about, but unfortunately I have minimal experience with Bluetooth.
How do I get started with Bluetooth? Should I read up all the theory on Bluetooth, or start by reading the documentation and then go about learning stuff I don't know. Or maybe start with the examples? How did you guys learn about Bluetooth?
Background: I have a CS degree, played around with AVRs, 8051/52s, STM32, ESP8266. Been programming for ~10 years
Correct way to bypass bootloader - BGM210PB
Hi,
To bypass BGM210PB bootloader from application I'm doing this:
changed FLASH to start at address 0x0000 and removed .text_apploader and .text_signature from linker file.
I attached my linker file modifications.

I'd like to check if I'm doing right.
BLE Stack init stuck - BGM210P32
I have created a custom board with BGM210PB32JIA2 (Schematic as per the Datasheet for the SoC implementation - BGM210PB32)
I was trying the soc-empty code after flashing the Bootloader code.
Here are the details of the implementation,
Module : BGM210PB32JIA2
BLE Stack : 3.1.0.0
Simplicity Studio Version : 5
Upon debugging found that it is getting stuck at BLE stack init and hence it was not advertising. I have shared all the screenshots and details in the attached document.
Error: Automatic email loop has been terminated.
Hi Guys,
I am trying to download the Bluetooth Mesh SDK but keep getting the message
"Error:
Automatic email loop has been terminated."
I have tried it across 2 browser platforms without joy, has the SDK been removed??
Fab
Button interrupt on BGM220 causes disconnect
BGM210PB stuck at II_radioInit()
Hi,
I'm working on BGM210PB module and I'm having some issues with initialization.
It falls at II_radioInit() and don't exits anymore.
Hardware:
- custom PCB with BGM210PB module
- no external LF XTAL
Firmware:
- example project "soc_empty" for BGM210PB32JIA
- DEBUG disabled
- no drivers init (gpio, uart)
- init clocks (default from soc_empty)
IDE:
- Simplicity 5 with lastest SDK version
Regards,
Denis
Aoa Sample app not working: stuck on "Resetting NCP target..."
Hello,
I am trying to run the sample apps (NCP-locator-host-connectionless, NCP-target, Asset-tag-connectionless) provided by silabs. It builds successfully and the hex files are generated. First time when I flashed the respective codes in WSTK kit (BRD4001A) and asset tag(thunderboard), it was working properly. I have flashed the bootloader images too for both wstk and asset tag. After few days I tried testing the codes again but now it is just stuck on "Resetting NCP Target". I had updated the firmware to the latest version before second time testing. I am not able to figure out the problem. I have followed the same steps I did when I tested the code for the first time. It is not a hardware problem, because I tested in another kit and it is coming the same for it, also the hex files given for the demo code, when I flash it , it is working fine as well. I have attached the screenshots of first when I tested the codes and the current screenshot.
Thank you in Advance!
Difference between two radio boards
Hello, is there any difference between these two radio boards? In addition to flash memory, ram memory and power.
1. EFR32BG1P232F256GM48
2. EFR32BG13P632F512GM48
Thanks in advance
Create a mesh network with 8 devices bg22 and 1device BG21
I have some questions
the BG22 only works in LPN mode, which needs a friend node to connect (BG21)
May I have the following situation?
8 LPN
1 Friend node
That friend node would connect the 8 LPN nodes and is the one that would receive the data from them and send the requests
And I have the following question
1.With that would the entire infrastructure of the mesh network be created? Or do you need another module that is a proxy to connect from a mobile for example?
2. What is the maximum node that a friend node would support?
3. Forget about the mesh protocol and with a "classic" BLE connection, how many simultaneous devices can I connect to the bg22?
A greeting.
BG22 client bonding event
Hello,
I'm using two BG22 one as client another one as server, I can successfully setup a connection between BG22 server and iPhone with bonding, but when I use my BG22 client to connect with BG22 server, it seems that doesn't have bonding request event generated in BG22 client, which event actually that I can catch for starting bonding process?
I tried to catch below event in BG22 client, but still no luck
gecko_evt_sm_passkey_display_id
gecko_evt_sm_passkey_request_id
gecko_evt_sm_confirm_passkey_id
gecko_evt_sm_confirm_bonding_id
gecko_evt_sm_bonded_id
gecko_evt_sm_bonding_failed_id
Thanks and regards,
Kevin