Skip to content

Update content SSv6 and tools screenshots - #31

Open
silabs-DonatL wants to merge 2 commits into
SiliconLabsSoftware:doccurator/26q2p2from
silabs-DonatL:IOTPA_BT-3415
Open

silabs-DonatL wants to merge 2 commits into
SiliconLabsSoftware:doccurator/26q2p2from
silabs-DonatL:IOTPA_BT-3415

Conversation

@silabs-DonatL

Copy link
Copy Markdown

Description

Related Issue

Closes #<issue_number>

Changes Made

Checklist

Screenshots (if applicable)

Additional Notes

@silabs-DonatL
silabs-DonatL requested a review from a team as a code owner September 25, 2026 08:12
NCP host examples are located in \<SiSDK-install-location>\bluetooth_le_app\example_host.

- **bt\_host\_empty:** Minimal host-side project structure, used as a starting point for NCP host applications. Use it with the **Bluetooth – NCP** target application flashed to the radio board.
- **bt\_aoa\_host\_locator:** A locator host sample app that works together with a **Bluetooth AoA – NCP Locator** target app. It receives IQ samples from the target and estimates the Angle of Arrival (AoA). For more information see [Application Development with Silicon Labs’ RTL Library](https://docs.silabs.com/rtl-lib/latest/direction-finding-solution-guide/).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update as follows:

  • works together with --> works with
  • Add a comma after 'more information'

- **bt\_aoa\_host\_locator:** A locator host sample app that works together with a **Bluetooth AoA – NCP Locator** target app. It receives IQ samples from the target and estimates the Angle of Arrival (AoA). For more information see [Application Development with Silicon Labs’ RTL Library](https://docs.silabs.com/rtl-lib/latest/direction-finding-solution-guide/).

- **bt\_host\_ota\_dfu:** Demonstrates how to perform an OTA DFU on a Silicon Labs Bluetooth Device. It requires a WSTK with a radio board flashed with NCP firmware to be used as the GATT client that performs the OTA.
- **bt\_cs\_host:** This is the host application for the Channel Sounding (CS) NCP target application.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove 'This is' and start the sentence with 'The'

- **bt\_cs\_host:** This is the host application for the Channel Sounding (CS) NCP target application.

- **bt\_host\_uart\_dfu:** Demonstrates how to perform a UART DFU on a Silicon Labs Bluetooth Device running NCP firmware.
- **bt\_host\_cpc\_hci\_bridge:** A background application to be run when HCI interface is exposed via CPC. This application retrieves the HCI commands/events from the CPC messages and forwards them toward the Bluetooth host running on the PC. Similarly, it forwards the HCI commands from the host toward the target over CPC.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update as follows:
A background application that runs when the HCI interface is exposed through CPC. The application retrieves HCI commands and events from CPC messages and forwards them to the Bluetooth host running on the PC. Similarly, it forwards HCI commands from the host to the target over CPC.

- **bt\_host\_cpc\_hci\_bridge:** A background application to be run when HCI interface is exposed via CPC. This application retrieves the HCI commands/events from the CPC messages and forwards them toward the Bluetooth host running on the PC. Similarly, it forwards the HCI commands from the host toward the target over CPC.

- **bt\_host\_voice:** On a WSTK programmed with NCP firmware, it to connects to the **Bluetooth – SoC Voice** example, sets the correct configuration on it, receives audio via Bluetooth, and stores audio data into a file.
- **bt\_host\_empty:** Minimal host-side project structure, used as a starting point for NCP host applications. Use it with the **Bluetooth – NCP** target application flashed to the radio board.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase: A minimal host-side project structure used as a starting point for NCP host applications. Use it with the Bluetooth – NCP target application flashed to the radio board.

- **bt\_host\_empty:** Minimal host-side project structure, used as a starting point for NCP host applications. Use it with the **Bluetooth – NCP** target application flashed to the radio board.

- **bt\_aoa\_host\_locator:** A locator host sample app that works together with a **Bluetooth AoA – NCP Locator** target app. It receives IQ samples from the target and estimates the Angle of Arrival (AoA). For more information see [Application Development with Silicon Labs’ RTL Library](https://docs.silabs.com/rtl-lib/latest/direction-finding-solution-guide/).
- **bt\_host\_esl\_ap:** This Python example implements the functionality of an Access Point as specified by the Bluetooth Electronic Shelf Label Profile specification using an NCP ESL AP target.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase: A Python example that implements Access Point functionality as specified in the Bluetooth Electronic Shelf Label Profile specification. Use it with an NCP ESL AP target.

- **bt\_host\_esl\_ap:** This Python example implements the functionality of an Access Point as specified by the Bluetooth Electronic Shelf Label Profile specification using an NCP ESL AP target.

- **bt\_host\_positioning:** Connects to multiple **bt\_aoa\_host\_locator** sample apps (via MQTT) and estimates a position from Angles of Arrival (AoA). For more information, see *QS175: Application Development with Silicon Labs’ RTL Library.*
- **bt\_host\_ncp\_test:** This Network Co-Processor (NCP) host application serves 2 purposes. It demonstrates (1) how to use user NCP commands and (2) how to implement a simple application to test NCP performance using the default user commands.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A Network Co-Processor (NCP) host application that serves two purposes. It demonstrates how to use user NCP commands and how to implement a simple application to test NCP performance using the default user commands.

- **bt\_host\_ncp\_test:** This Network Co-Processor (NCP) host application serves 2 purposes. It demonstrates (1) how to use user NCP commands and (2) how to implement a simple application to test NCP performance using the default user commands.

- **bt\_host\_positioning\_gui:** Connects to the **bt\_host\_positioning** sample app (via MQTT), reads out the position estimations and displays the tags and locators on a 3D GUI. This sample app is python based. For more information, see [Application Development with Silicon Labs’ RTL Library](https://docs.silabs.com/rtl-lib/latest/direction-finding-solution-guide/).
- **bt\_host\_ota\_dfu:** Demonstrates how to perform an OTA DFU on a Silicon Labs Bluetooth Device. It requires a WSTK with a radio board flashed with NCP firmware to be used as the GATT client that performs the OTA.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase: Demonstrates how to perform an OTA DFU on a Silicon Labs Bluetooth device. It requires a WSTK with a radio board flashed with NCP firmware. The WSTK acts as the GATT client that performs the OTA.

- **bt\_host\_positioning\_gui:** Connects to the **bt\_host\_positioning** sample app (via MQTT), reads out the position estimations and displays the tags and locators on a 3D GUI. This sample app is python based. For more information, see [Application Development with Silicon Labs’ RTL Library](https://docs.silabs.com/rtl-lib/latest/direction-finding-solution-guide/).
- **bt\_host\_ota\_dfu:** Demonstrates how to perform an OTA DFU on a Silicon Labs Bluetooth Device. It requires a WSTK with a radio board flashed with NCP firmware to be used as the GATT client that performs the OTA.

- **bt\_host\_positioning:** Connects to multiple **bt\_aoa\_host\_locator** sample apps (via MQTT) and estimates a position from Angles of Arrival (AoA). For more information, see *QS175: Application Development with Silicon Labs’ RTL Library.*

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase: Connects to multiple bt_aoa_host_locator sample apps through MQTT and estimates a position from Angles of Arrival (AoA). For more information, see QS175: Application Development with Silicon Labs’ RTL Library.

- **bt\_host\_cpc\_hci\_bridge:** A background application to be run when HCI interface is exposed via CPC. This application retrieves the HCI commands/events from the CPC messages and forwards them toward the Bluetooth host running on the PC. Similarly, it forwards the HCI commands from the host toward the target over CPC.
- **bt\_host\_uart\_dfu:** Demonstrates how to perform a UART DFU on a Silicon Labs Bluetooth Device running NCP firmware.

- **bt\_host\_voice:** On a WSTK programmed with NCP firmware, it to connects to the **Bluetooth – SoC Voice** example, sets the correct configuration on it, receives audio via Bluetooth, and stores audio data into a file.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase: On a WSTK programmed with NCP firmware, the application connects to the Bluetooth – SoC Voice example, configures it, receives audio over Bluetooth, and stores the audio data in a file.


- **bt\_host\_voice:** On a WSTK programmed with NCP firmware, it to connects to the **Bluetooth – SoC Voice** example, sets the correct configuration on it, receives audio via Bluetooth, and stores audio data into a file.

- **bt\_host\_positioning\_gui:** Connects to the **bt\_host\_positioning** sample app (via MQTT), reads out the position estimations and displays the tags and locators on a 3D GUI. This sample app is python based. For more information, see [Application Development with Silicon Labs’ RTL Library](https://docs.silabs.com/rtl-lib/latest/direction-finding-solution-guide/).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase: Connects to the bt_host_positioning sample app through MQTT, reads the position estimates, and displays the tags and locators in a 3D GUI. This sample app is Python-based. For more information, see ...


To get started with Bluetooth LE development, download the Simplicity Studio Development environment
as described in the [Simplicity Studio 5 User's Guide](https://docs.silabs.com/simplicity-studio-5-users-guide/latest/ss-5-users-guide-getting-started/). Simplicity Studio 5 includes everything needed for IoT product development with Silicon Labs devices including a resource and project launcher, software configuration tools, full IDE with GNU toolchain, and analysis tools.
as described in the [Simplicity Studio 6 User's Guide](https://docs.silabs.com/ssv6ug/latest/ssv6ug-overview/). Simplicity Studio 6 includes everything needed for IoT product development with Silicon Labs devices including a resource and project launcher, software configuration tools, full IDE with GNU toolchain, and analysis tools.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase the last sentence:
Simplicity Studio 6 includes everything you need to develop IoT products with Silicon Labs devices, including a resource and project launcher, software configuration tools, a full IDE with a GNU toolchain, and analysis tools.

See [Prerequisites](#prerequisites) for additional details.

These pages focus on use and development in the Simplicity Studio 5 environment. Alternatively, Gecko SDK may be installed manually by downloading or cloning the latest from GitHub. See the [GitHub site](https://github.com/SiliconLabs/gecko_sdk) for more information.
These pages focus on use and development in the Simplicity Studio 6 environment. Alternatively, Gecko SDK may be installed manually by downloading or cloning the latest from GitHub. See the [GitHub site](https://github.com/SiliconLabs/gecko_sdk) for more information.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
These pages focus on using and developing with Simplicity Studio 6. Alternatively, you can manually install the Gecko SDK by downloading or cloning the latest version from GitHub. For more information, see ...

as described in the [Simplicity Studio 5 User's Guide](https://docs.silabs.com/simplicity-studio-5-users-guide/latest/ss-5-users-guide-getting-started/). Simplicity Studio 5 includes everything needed for IoT product development with Silicon Labs devices including a resource and project launcher, software configuration tools, full IDE with GNU toolchain, and analysis tools.
as described in the [Simplicity Studio 6 User's Guide](https://docs.silabs.com/ssv6ug/latest/ssv6ug-overview/). Simplicity Studio 6 includes everything needed for IoT product development with Silicon Labs devices including a resource and project launcher, software configuration tools, full IDE with GNU toolchain, and analysis tools.

Once you have downloaded Simplicity Studio, you will be prompted to install the Gecko SDK (GSDK), which contains the Bluetooth Software Development Kit (SDK). The GSDK combines Silicon Labs wireless SDKs and Gecko Platform into a single, integrated package. The Bluetooth SDK comes with a number of example application that you can then modify to create your own applications.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you are prompted to install

- Purchased an EFR32BG Wireless Starter Kit or BGM220 Explorer Kit.
- Created an account at Silicon Labs. You can register at [https://siliconlabs.force.com/apex/SL_CommunitiesSelfReg?form=short](https://siliconlabs.force.com/apex/SL_CommunitiesSelfReg?form=short).
- Downloaded Simplicity Studio 5 and the Silicon Labs Gecko SDK containing the Bluetooth SDK and become generally familiar with the SSv5 Launcher perspective. SSv5 installation and getting started instructions along with a set of detailed references can be found in the online *Simplicity Studio 5 User’s Guide*, available on [https://docs.silabs.com/](https://docs.silabs.com/) and through the SSv5 help menu.
- Downloaded Simplicity Studio 6 and the Silicon Labs Simplicity SDK containing the Bluetooth SDK and become generally familiar with the SSv6 Launcher perspective. SSv6 installation and getting started instructions along with a set of detailed references can be found in the online *Simplicity Studio 6 User’s Guide*, available on [https://docs.silabs.com/](https://docs.silabs.com/) and through the SSv6 help menu.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
Downloaded Simplicity Studio 6 and the Silicon Labs Simplicity SDK, which contains the Bluetooth SDK, and become familiar with the Simplicity Studio 6 Launcher perspective. For installation and getting started instructions and detailed references, see the online Simplicity Studio 6 User’s Guide, available on https://docs.silabs.com/ and through the Simplicity Studio 6 Help menu.

## Documentation

Hardware-specific documentation may be accessed through links on the part Overview tab in Simplicity Studio 5.
Hardware-specific documentation may be accessed through links on the part Overview tab in Simplicity Studio 6.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Access hardware-specific documentation from the links on the part Overview tab in Simplicity Studio 6.

## Support

You can access the Silicon Labs support portal at [https://www.silabs.com/support](https://www.silabs.com/support) through Simplicity Studio 5’s Welcome view under Learn and Support. Use the support portal to contact Customer Support for any questions you might have during the development process.
You can access the Silicon Labs support portal at [https://www.silabs.com/support](https://www.silabs.com/support) through Simplicity Studio 6’s Welcome view under Learn and Support. Use the support portal to contact Customer Support for any questions you might have during the development process.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
You can access the Silicon Labs support portal at https://www.silabs.com/support from Learn and Support in the Simplicity Studio 6 Welcome view. Use the support portal to contact Customer Support if you have questions during development.

### Configuration

The *max_advertisers* in the Bluetooth configuration structure also configures the maximum number of periodic advertisers. You can set the number of advertisers by opening the Bluetooth Core configurator tab from the Software Components:
The *max_advertisers* in the Bluetooth configuration structure also configures the maximum number of periodic advertisers. You can set the number of advertisers by opening the Connection configurator tab from the Software Components:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase second sentence:
To set the number of advertisers, open the Connection Configurator tab from Software Components:

### Configuration

*max_periodic_sync* in the Bluetooth config configures the maximum number of synchronizations the Bluetooth stack needs to support. The value can be set in the Bluetooth Core configuration, as shown below:
*max_periodic_sync* in the Bluetooth config configures the maximum number of synchronizations the Bluetooth stack needs to support. The value can be set in the Periodic Advertising Synchronization configuration, as shown below:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
The max_periodic_sync setting in the Bluetooth configuration specifies the maximum number of synchronizations that the Bluetooth stack supports. To set this value, use the Periodic Advertising Synchronization configuration, as shown in the following figure:

By default, four simultaneous connections are enabled in the stack. To increase the number of supported connections, go to the configuration of the **Bluetooth Core** software component and increase the *Maximum number of connections*:

![Bluetooth Core Component](resources/bluetooth-core.png?darkModeUrl=resources/bluetooth-core.png)
By default, four simultaneous connections are enabled in the stack. To increase the number of supported connections, go to the configuration of the **Connection** software component and increase the *Max number of connections reserved for user*:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
By default, the stack supports four simultaneous connections. To increase the number of supported connections, open the Connection software component configuration and increase Max number of connections reserved for user:

By default, four simultaneous connections are enabled in the stack. To increase the number of supported connections, go to the configuration of the **Bluetooth Core** software component and increase the *Maximum number of connections*:

![Bluetooth Core Component](resources/bluetooth-core.png?darkModeUrl=resources/bluetooth-core.png)
By default, four simultaneous connections are enabled in the stack. To increase the number of supported connections, go to the configuration of the **Connection** software component and increase the *Max number of connections reserved for user*:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
By default, the stack supports four simultaneous connections. To increase the number of supported connections, open the Connection software component configuration and increase Max number of connections reserved for user:

Note that you cannot issue multiple *sl_bt_connection_open* commands immediately after each other even if you know all Bluetooth addresses you want to connect to. You always have to wait for the *sl_bt_evt_connection_opened* event to arrive before initiating a new connection. It is even better if you wait until the *sl_bt_evt_connection_parameters* event because at that moment the connection can be considered stable. To discover the GATT database of the remote device, do so before issuing the second *sl_bt_connection_open* command.

By default, four simultaneous connections are enabled in the stack. To increase the number of supported connections, go to the configuration of the **Bluetooth Core** software component and increase the *Maximum number of connections*:
By default, four simultaneous connections are enabled in the stack. To increase the number of supported connections, go to the configuration of the **Connection** software component and increase the *Max number of connections reserved for user*:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
By default, the stack supports four simultaneous connections. To increase the number of supported connections, open the Connection software component configuration and increase Max number of connections reserved for user:

@@ -88,23 +88,22 @@ Gecko Bootloader is included in the Gecko SDK Suite. A number of predefined conf
To create a new bootloader project:

1. Open Simplicity Studio and select your device in the Devices or Debug Adapters tab.

@silabs-ankayiti silabs-ankayiti Sep 30, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

on the Devices or Debug Adapters tab.

3. Click EXAMPLE PROJECTS & DEMOS tab, and select Bootloader under Technology Type section.
4. Select the appropriate Gecko Bootloader application type for your device **(e.g., Internal Storage Bootloader)**, click FINISH.
2. Check the Preferred SDK version.
3. Click **EXAMPLE PROJECTS & DEMOS** tab, and select Bootloader under MCU section.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and then select Bootloader in the MCU section.

2. Check the Preferred SDK version.
3. Click **EXAMPLE PROJECTS & DEMOS** tab, and select Bootloader under MCU section.
4. Select the appropriate Bootloader application type for your device **(e.g., Internal Storage Bootloader)**, click **CREATE**.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Select the appropriate bootloader application type for your device, such as Internal Storage Bootloader, and then select CREATE.

2. Click on **Bootloader Core**.
3. On the right side tick the checkboxes:
1. Open the **Software components** tab.
2. Select **Bootloader Core** and click **Configure**.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and then select Configure.

1. Open Simplicity Studio and select your device in the Devices or Debug Adapters tab.
2. Check the Preferred SDK under General Information in the OVERVIEW tab.
2. Check the Preferred SDK version.
3. Click EXAMPLE PROJECTS & DEMOS tab, and select Bluetooth under Technology Type section.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Select the EXAMPLE PROJECTS & DEMOS tab, and then select Bluetooth in the Technology Type section.

2. Check the Preferred SDK under General Information in the OVERVIEW tab.
2. Check the Preferred SDK version.
3. Click EXAMPLE PROJECTS & DEMOS tab, and select Bluetooth under Technology Type section.
4. Select **Bluetooth - SoC Empty** sample application, and click FINISH.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and then select Finish

> **Note**: Beginning with Bluetooth SDK version 2.7.0.0, all devices must be loaded with the Gecko Bootloader as well as the application. While you are getting started, the easiest way to do this is to load any of the precompiled demo images that come with the bootloader configured as part of the image. When you flash your application it overwrites the demo application, but the bootloader remains. Subsequently you may wish to build your own bootloader, as described in *UG266: Silicon Labs Gecko Bootloader User’s Guide for GSDK 3.2 and Lower*, [Silicon Labs Gecko Bootloader User's Guide for GSDK 4.0 and Higher (series 1 and 2 devices)](/bluetooth/{build-docspace-version}/bootloader-user-guide-gsdk-4), or [Silicon Labs Gecko Bootloader User’s Guide for Series 3 and Higher](/bluetooth/{build-docspace-version}/bootloader-user-guide-series3-and-higher).

New Project creation is done through three dialogs:
New Project creation is done through the following steps:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
To create a new project, follow these steps:

![Configurator view](resources/sld279-image37.png?darkModeUrl=resources/sld279-image37.png)

As you change component configurations, your changes are automatically saved and project files are automatically generated. You can see generation progress in the lower right corner of the Simplicity IDE. Wait until generation is complete before building the application image.
As you change component configurations, your changes are automatically saved and project files are automatically generated. You can see the **Saved Changes** noticitaion in the middle of the Simplicity Studio.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
As you change component configurations, Simplicity Studio automatically saves your changes and generates the project files. The Saved Changes notification appears in the middle of the Simplicity Studio window.

### The Pin Tool

Simplicity Studio 5 offers a Pin Tool that allows you to easily configure new peripherals or change the properties of existing ones. In the Project Configurator SOFTWARE COMPONENTS tab, expand the Advanced Configurators group and open the Pin Tool. The graphical view differs based on the chip.
Simplicity Studio 6 offers Pin Tool that allows you to easily configure new peripherals or change the properties of existing ones. In the Project folder, double-click on **\<project_name\>.pintool** file which opens the Pin Tool. The graphical view differs based on the chip.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase second sentence:
In the Project folder, double-click the <project_name>.pintool file to open the Pin Tool. The graphical view varies depending on the chip.

![Energy Profiler Perspective](resources/sld279-image44.png?darkModeUrl=resources/sld279-image44.png)

See *UG343: Multi-Node Energy Profiler User’s Guide* for details on how to use this tool. You can switch easily between Simplicity IDE and Energy Profiler perspectives using the Perspective buttons in the upper right corner of your current perspective.
See *UG343: Multi-Node Energy Profiler User’s Guide* for details on how to use this tool. You can open the Energy Profiler by selecting **Tools** and **Energy Profiler**

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For more information about using this tool, see UG343: Multi-Node Energy Profiler User’s Guide. To open the Energy Profiler, select Tools > Energy Profiler.

This page describes the available tools for compiling and flashing the NCP target firmware.

Before proceeding with compiling and flashing C-based firmware, install Simplicity Studio 5 (SSv5). You can download it from the Silicon Labs website: [http://www.silabs.com/simplicity](http://www.silabs.com/simplicity). Once Simplicity Studio is installed, follow the prompts to install the Gecko SDK Suite (GSDK) containing the Bluetooth SDK. See the online [Simplicity Studio 5 User's Guide](https://docs.silabs.com/simplicity-studio-5-users-guide/latest/ss-5-users-guide-overview/) for details on installation and using Simplicity Studio. See the [Bluetooth Getting Started Guide](https://docs.silabs.com/bluetooth/latest/bluetooth-getting-started-overview/) for additional details about the Bluetooth SDK.
Before proceeding with compiling and flashing C-based firmware, install Simplicity Studio 6 (SSv6). You can download it from the Silicon Labs website: [http://www.silabs.com/simplicity](http://www.silabs.com/simplicity). Once Simplicity Studio is installed, follow the prompts to install the Gecko SDK Suite (GSDK) containing the Bluetooth SDK. See the online [Simplicity Studio 6 User's Guide](https://docs.silabs.com/ssv6ug/latest/ssv6ug-overview/) for details on installation and using Simplicity Studio. See the [Bluetooth Getting Started Guide](https://docs.silabs.com/bluetooth/latest/bluetooth-getting-started-overview/) for additional details about the Bluetooth SDK.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before you compile and flash C-based firmware, install Simplicity Studio 6 (SSv6). Download it from the Silicon Labs website. After you install Simplicity Studio, follow the prompts to install the Gecko SDK Suite (GSDK), which contains the Bluetooth SDK. For information about installing and using Simplicity Studio, see the Simplicity Studio 6 User's Guide. For more information about the Bluetooth SDK, see the Bluetooth Getting Started Guide.

To develop in C, you not only need Simplicity Studio 6 but also a supported compiler. The Bluetooth SDK release notes and [Silicon Labs Bluetooth C Application Developers Guide](https://docs.silabs.com/bluetooth/latest/bluetooth-c-soc-dev-guide-sdk-v9x/) list the supported compilers.

The NCP target firmware comes with the Bluetooth SDK. It is available in a precompiled binary format and as a project file you can build. The following procedures describe how to install the precompiled binary image and how to build and install the example project. Note that Simplicity Studio only shows the relevant examples for the preferred SDK, so you have to select **Gecko SDK Suite vn.n.n** first, as shown in the following figure. (Note: Your SDK version may be different from the one shown in the figure.)
The NCP target firmware comes with the Bluetooth SDK. It is available in a precompiled binary format and as a project file you can build. The following procedures describe how to install the precompiled binary image and how to build and install the example project. Note that Simplicity Studio only shows the relevant examples for the preferred SDK, so you have to select **Simplicity SDK Suite vn.n.n** first, as shown in the following figure. (Note: Your SDK version may be different from the one shown in the figure.)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The NCP target firmware is included with the Bluetooth SDK. It is available as a precompiled binary and as a project that you can build. The following procedures describe how to install the precompiled binary image and how to build and install the example project.

Simplicity Studio shows only the examples relevant to the preferred SDK. Before you continue, select Simplicity SDK Suite vn.n.n, as shown in the following figure.

Note: Your SDK version might differ from the version shown in the figure.

![Bluetooth - NCP example](resources/an1259-v14-examples.png)

2. Name the project and click **Finish**.
2.Select the target device and click **Next**

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... device, and then select Next.


![Name the project](resources/an1259-v14-select-target-device.png)

3. Name the project, select the **Target IDE** and click **Finish**.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Name the project, select the Target IDE, and then select Finish.

![Name the project](resources/an1259-v14-create-project.png)

3. Now the project is ready to build and flash. Click **Debug** (bug icon) in the top left menu to do it in one step. You may also use the precompiled NCP demos in Simplicity Studio, which are shipped with bootloader included.
4. Now the project is ready to build and flash. The build process of the sample depends on the **Target IDE**. In **Visual Studio Code** click **Debug** (bug icon with play buttons) to do it in one step. You may also use the precompiled NCP demos in Simplicity Studio, which are shipped with bootloader included.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
The project is now ready to build and flash. The build process depends on the Target IDE. In Visual Studio Code, select Debug (the bug icon with play buttons) to build and flash the project in one step. You can also use the precompiled NCP demos in Simplicity Studio, which include a bootloader.

### Built-in Version

1. To open the built-in Bluetooth NCP Commander, select the target board in the **Debug Adapters** view, and check that the preferred SDK is set to **Gecko SDK Suite vn.n.n**. Select the **Compatible Tools** tab, and click **Launch** next to Bluetooth NCP Commander.
1. To open the built-in Bluetooth NCP Commander, select **Tools** tab on the left side, browse **Bluetooth NCP Commander** and click **Open Tool**.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...... Bluetooth NCP Commander, and then select Open Tool.

![Tools dialog](resources/an1259-v14-tools-menu.png)
![Compatible Tools](resources/an1259-launch-Bluetooth-NCP-Commander.png)

2. Select the target device, and click **Connect**.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Select the target device, and then select Connect.

13. Now you can connect to the device over Bluetooth.
9. The build output is created in a new *build/debug/* folder. Navigate to this folder, and then run`bt_host_empty.exe` with the interface as an argument.

10. Once the UART connection with the device is established, the following should appear:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
After the UART connection to the device is established, the following information appears:

```

Running the exe file without this option will start a normal NCP Host application without encryption.
Running the exe file without `-s` parameter will start a normal NCP Host application without encryption.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
Running the executable file without the -s parameter starts a standard NCP Host application without encryption.

The purpose of the Co-Processor Communication (CPC) Protocol is to act as a serial link multiplexer that allows data sent from multiple applications to be transported over a secure shared physical link. In CPC, data transfers between processors are segmented in sequential packets over endpoints. Transfers are guaranteed to be error-free and sent in order.

Find more information about the CPC at [https://docs.silabs.com/gecko-platform/4.1/service/cpc/overview](https://docs.silabs.com/gecko-platform/4.1/service/cpc/overview).
Find more information about the CPC at [https://docs.silabs.com/gecko-platform/latest/platform-cpc-overview/](https://docs.silabs.com/gecko-platform/latest/platform-cpc-overview/).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

![CPC daemon](resources/an1259-cpc-daemon.png)

The NCP host by default does not contain usage of CPC. You need to build the application with the command line option `CPC=1`.
The NCP host by default does not contain usage of CPC. You need to build the application with **Host NCP CPC adapter (Linux only)** component.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
By default, the NCP host application does not use CPC. Build the application with the Host NCP CPC adapter (Linux only) component to enable CPC support.

## NCP Target

This section focuses on the NCP-specific part of the **Bluetooth - NCP** SSv5 project. You can find a general project description in [Silicon Labs Bluetooth C Application Developers Guide](https://docs.silabs.com/bluetooth/latest/bluetooth-c-soc-dev-guide-sdk-v9x/).
This section focuses on the NCP-specific part of the **Bluetooth - NCP** SSv6 project. You can find a general project description in [Silicon Labs Bluetooth C Application Developers Guide](https://docs.silabs.com/bluetooth/latest/bluetooth-c-soc-dev-guide-sdk-v9x/).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase second sentence:
For a general project description, see the Silicon Labs Bluetooth C Application Developers Guide.

You can also double-click the *\<projectname>.pintool* file in the Project Explorer view, shown highlighted in the figure above.

2. Use this tool to modify the pin configuration of the device, for example, you can reassign the pins used for USART communication to the appropriate layout for a custom board design. You do this by selecting the desired pin in the list and then selecting its functionality from the drop-down list.
2. Use this tool to modify the pin configuration of the device, for example, you can reassign the pins used for USART communication to the appropriate layout for a custom board design. You do this by selecting the desired pin in the list and then selecting its functionality from the pop-up window.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
Use this tool to modify the device pin configuration. For example, you can reassign the pins used for USART communication to match a custom board design. Select the desired pin in the list, and then select its function from the pop-up window.

![code snippet of main function](resources/an1259-figure-4-8.png)

Once the USART and Bluetooth stack are initialized, the main loop continuously calls the component as well as the application state machine. The corresponding functions are `sl_system_process_action()` and `app_process_action()` respectively.
Once the USART and Bluetooth stack are initialized, the main loop continuously calls the component as well as the application state machine. The corresponding functions are `sl_main_process_action()` and `app_process_action()` respectively.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
After the USART and Bluetooth stack are initialized, the main loop continuously calls the component and application state machines. The corresponding functions are sl_main_process_action() and app_process_action(), respectively.

Once the USART and Bluetooth stack are initialized, the main loop continuously calls the component as well as the application state machine. The corresponding functions are `sl_main_process_action()` and `app_process_action()` respectively.

The `sl_system_process_action()` handles Silicon Labs tasks and routines. It must *not be removed* from the loop.
The `sl_main_process_action()` handles Silicon Labs tasks and routines. It must *not be removed* from the loop.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
The sl_main_process_action() function handles Silicon Labs tasks and routines. Do not remove it from the loop.

or, for GSDK 4.0 and higher:

*c:\Users\\<username\>\SimplicityStudio\gecko_sdk\app\bluetooth\example_host*
The PC host application project that comes with the SDK is written in C. The host-side source files for this project are copied / linked after a host project is generated from Simplicity Studio 6.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
The PC host application project included with the SDK is written in C. Simplicity Studio 6 copies or links the host-side source files after you generate a host project.

*\<SDK folder>\app\bluetooth\common_host\*

but the Bluetooth protocol folder is also heavily used as described later. To copy all the files related to the project into a single folder, take advantage of the export feature described in [Host Side](./04-secure-ncp.md#host-side).
The projects comprise only a few source and header files. Note, however, that many other files are referenced from the SDK in the makefile.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
The projects contain only a few source and header files. However, the makefile references many other files from the SDK.


but the Bluetooth protocol folder is also heavily used as described later. To copy all the files related to the project into a single folder, take advantage of the export feature described in [Host Side](./04-secure-ncp.md#host-side).
The projects comprise only a few source and header files. Note, however, that many other files are referenced from the SDK in the makefile.
For further details about the host side application please refer to [Host Side build](./04-secure-ncp.md#host-side).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
For more information about the host-side application, see Host Side build.

To enable the DTM 2-wire communication between a commercial Bluetooth tester device (that is, the Upper Tester with the included RF PHY measurement capability) and the DUT, the latter needs to run a special firmware where the protocol is included. This special DTM 2-wire-capable firmware is available as an example application project in Bluetooth SDK v3x through Simplicity Studio® 5 (SSv5). This section provides a summary of the project creation and use process. It assumes you are familiar with building and flashing applications using the Bluetooth SDK v3.x with SSv5. For more information about these processes, see the online SSv5 User's Guide, available through the SSv5 help menu, or [Getting Started with Silicon Labs Bluetooth LE Development](https://docs.silabs.com/bluetooth/latest/bluetooth-getting-started-overview/).

To create the project in SSv5, in the Launcher perspective, select the correct DUT in the Debug Adapter view. This correctly prepopulates the Target Board and Target Device (SoC or module) settings. In the **File** menu, select **New > Simplicity Studio Project Wizard**. The **Target, SDK and Toolchain Selection** dialog opens. Verify the target hardware, SDK version, and toolchain are correct. Click **NEXT**.
To create the project in SSv6, select **Devices** and **Example Projects & Demos**. This correctly prepopulates the **Target Board** and **Target Device** (SoC or module) settings. Use the **Wireless Technology** and **Keyword filters** to search for a specific example, in this case **Bluetooth - SoC DTM**. In the top right corner make sure that the correct SDK is selected then, click on **Create**.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To create the project in SSv6, select Devices > Example Projects & Demos. This selection automatically populates the Target Board and Target Device (SoC or module) settings. Use the Wireless Technology and Keyword filters to search for a specific example, in this case, Bluetooth - SoC DTM. In the upper-right corner, verify that the correct SDK is selected, and then select Create.

![Simplicity Studio 5 Example Project Selection Dialog](resources/simplicity-studio-5-example-project-selection-dialog.png)
![Simplicity Studio 6 Example Project Selection Dialog](resources/simplicity-studio-5-example-project-selection-dialog.png)

The Project Configuration dialog opens. You do not need to change any of the default values. Click **FINISH** to create the DTM example project.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
The Project Configuration dialog opens. Keep the default values, and then select FINISH to create the DTM example project.

Configuring the device to use other pins and UART settings for the 2-wire UART than the defaults is done by configuring the Software Component.

When you create a new project, the GATT Configurator is opened by default. To go to the Project Configurator, click the \<project>.slcp tab, or double-click the \<project>.slcp file in the Simplicity IDE Project Explorer view. Click the Software Components tab. Check the Configurable Components and Installed Components filters. Type "stream" in the search box. You should see only one IO Stream implementation named **exp**. Select **exp**.
When you create a new project, the GATT Configurator is opened by default. To go to the Project Configurator, click the \<project>.slcp tab, or double-click the \<project>.slcp file in the Simplicity IDE Project Explorer view. Click the Software Components tab. Check the Configurable Components and Installed Components filters. Type "stream" in the search box. You should see only one IO Stream implementation named **vcom**. Select **vcom**.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
When you create a new project, the GATT Configurator opens by default. To open the Project Configurator, select the .slcp tab or double-click the .slcp file in the Simplicity IDE Project Explorer view. Select the Software Components tab. Select the Configurable Components and Installed Components filters. Enter "stream" in the search box. Only one IO Stream implementation, vcom, appears. Select vcom.

![Pin Tool](resources/pin-tool.png)

You can change the pin position from the Configure editor Pins tab. Select a pin, click the function to display the **Function** dropdown list, and select a function. Click the Software Component symbol to open the Component Editor. Changes made in the Pin Tool are not autosaved.
You can change the pin position from the Configure editor Pins tab. Select a pin, click the function to display the **Function** pop-up window, and select a function. Click the Software Component symbol to open the Component Editor. Changes made in the Pin Tool are not autosaved.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
You can change the pin position on the Pins tab in the Configure editor. Select a pin, select the function to open the Function pop-up window, and then select a function. Select the Software Component symbol to open the Component Editor. Changes made in the Pin Tool are not saved automatically.

![Bootloader – NCP BGAPI UART DFU](resources/sld679-image9.png)

Build the **Bootloader - NCP BGAPI UART DFU** project, and program it to the EFR device to be used as an access point. For more information on how to build or program devices using Simplicity Studio v5, see the [**Simplicity Studio® 5 User's Guide**](https://docs.silabs.com/simplicity-studio-5-users-guide/latest/ss-5-users-guide-overview/).
Build the **Bootloader - NCP BGAPI UART DFU** project, and program it to the EFR device to be used as an access point. For more information on how to build or program devices using Simplicity Studio v5, see the [**Simplicity Studio® 6 User's Guide**](https://docs.silabs.com/ssv6ug/latest/ssv6ug-overview/).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase first sentence:
Build the Bootloader - NCP BGAPI UART DFU project, and program it to the EFR device that you want to use as the access point.

Build the **Bootloader - NCP BGAPI UART DFU** project, and program it to the EFR device to be used as an access point. For more information on how to build or program devices using Simplicity Studio v5, see the [**Simplicity Studio® 5 User's Guide**](https://docs.silabs.com/simplicity-studio-5-users-guide/latest/ss-5-users-guide-overview/).
Build the **Bootloader - NCP BGAPI UART DFU** project, and program it to the EFR device to be used as an access point. For more information on how to build or program devices using Simplicity Studio v5, see the [**Simplicity Studio® 6 User's Guide**](https://docs.silabs.com/ssv6ug/latest/ssv6ug-overview/).

More information about the bootloaders can be found in [Silicon Labs Gecko Bootloader User's Guide for GSDK 4.0 and Higher (series 1 and 2 devices)](/bluetooth/{build-docspace-version}/bootloader-user-guide-gsdk-4) or [Silicon Labs Gecko Bootloader User’s Guide for Series 3 and Higher](/bluetooth/{build-docspace-version}/bootloader-user-guide-series3-and-higher).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

- HCI CPC component (if CPC transport protocol is used)

Other components are required to make a reasonably functional application. For example, the **Connection** and **Advertiser** components are required (and installed by default) to make an application that can advertise and accept connections. If the application should be able to accept a large number of simultaneous connections, also including the **Even Connection Scheduling Algorithm** component is useful.
Other components are required to make a reasonably functional application. For example, the **Connection** and **Advertising Base Feature** components are required (and installed by default) to make an application that can advertise and accept connections. If the application should be able to accept a large number of simultaneous connections, also including the **Even Connection Scheduling Algorithm** component is useful.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rephrase:
Other components are required for a functional application. For example, the Connection and Advertising Base Feature components are required and installed by default for an application that advertises and accepts connections. To support a large number of simultaneous connections, also include the Even Connection Scheduling Algorithm component.

@silabs-ankayiti silabs-ankayiti left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added feedback comments. Please review and incorporate wherever required.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants