### Generate GATT Database from Configuration File Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld596-bluetooth-network-coprocessor-mode/08-adding-a-new-service-to-the-ncp-example-with-dynamic-gatt-api.md Run this command in the root folder of your example to generate source code (gatt_db.c / gatt_db.h) from a .btconf file. Ensure Python 3 and Jinja2 are installed. ```bash make gattdb ``` -------------------------------- ### Navigate to NCP Host Example Directory Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld596-bluetooth-network-coprocessor-mode/03-ncp-host-development.md Change the current directory to the NCP Host example folder. Replace with your specific SDK version. This step is crucial before exporting or building the project. ```bash cd c:\SiliconLabs\SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\v3.x\app\bluetooth\example_host\bt_host_empty\ ``` ```bash cd c:\Users\\SimplicityStudio\SDKs\gecko_sdk\app ``` -------------------------------- ### Export NCP Host Example Project Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld596-bluetooth-network-coprocessor-mode/03-ncp-host-development.md Create an exported copy of the example project. This detaches the project from the SDK, allowing for independent development and multiple instances. You can specify a custom export directory. ```bash make export ``` ```bash make export EXPORT_DIR=/my/custom/export/path ``` -------------------------------- ### ELF Section Header Output Example (GCC) Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld649-bluetooth-c-soc-dev-guide-sdk-v9x/08-application-elf-file.md Example output showing section details for a GCC-compiled ELF file. ```text Sections: Idx Name Size VMA LMA File off Algn 0 .vectors 00000170 08012000 08012000 00002000 2**9 CONTENTS, ALLOC, LOAD, READONLY, DATA 1 .stack 00000ac0 20000000 20000000 00060000 2**3 ALLOC 2 .bss 00001844 20000ac0 20000ac0 00060000 2**3 ALLOC 3 text_application_ram 000001ac 20002304 08012170 00002304 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 4 .text 000302a8 08012320 08012320 00012320 2**4 CONTENTS, ALLOC, LOAD, READONLY, CODE 5 .ARM.exidx 00000008 080425c8 080425c8 000425c8 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 6 .copy.table 0000000c 080425d0 080425d0 000425d0 2**0 CONTENTS, ALLOC, LOAD, DATA 7 .zero.table 00000000 080425dc 080425dc 0005269c 2**0 CONTENTS 8 .data 000001ec 200024b0 080425dc 000524b0 2**2 CONTENTS, ALLOC, LOAD, DATA 9 .memory_manager_heap 00000004 2000269c 080427c8 0005269c 2**0 ALLOC 10 .nvm 0000a000 080427c8 080427c8 0005269c 2**0 CONTENTS 11 .ARM.attributes 00000036 00000000 00000000 0005c69c 2**0 ``` -------------------------------- ### NVM3 Parse Output Example Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld272-bluetooth-system-performance/custom-address-production-approach.md Example output from the 'commander nvm3 parse' command, showing the NVM3 range and the details of stored objects, including keys, types, sizes, and data. ```text Parsing file nvm3_custom_mac.s37... Found NVM3 range: 0x00074000 - 0x0007E000 Using 4096 B as maximum object size, based on given size of NVM3 area. All NVM3 objects: KEY - TYPE - SIZE - DATA 0x4002c - Data - 6 B - 11 22 33 44 55 AA ``` -------------------------------- ### Install Python Packages on Windows Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld679-bluetooth-electronic-shelf-label/05-preparing-the-esl-network.md Installs required Python packages for the ESL access point using a requirements file on Windows. Ensure Python 3.9+ is installed. ```bash py -m pip install -r requirements.txt ``` -------------------------------- ### Example Token Dump Output Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld272-bluetooth-system-performance/custom-address-production-approach.md This is an example output from the `commander tokendump` command, showing the value of the `MFG_CUSTOM_EUI_64` token. It illustrates the expected format for byte-array tokens, including the hexadecimal representation of the custom Bluetooth address. ```text # # The token data can be in one of three main forms: byte-array, integer, or string. # Byte-arrays are a series of hexadecimal numbers of the required length. # Integers are BIF endian hexadecimal numbers. # String data is a quoted set of ASCII characters. # MFG_CUSTOM_EUI_64: 0000AABBCCDDEE11 ``` -------------------------------- ### Install Python Packages on Linux/Mac Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld679-bluetooth-electronic-shelf-label/05-preparing-the-esl-network.md Installs required Python packages for the ESL access point using a requirements file. Ensure Python 3.9+ is installed. ```bash python -m pip install -r requirements.txt ``` -------------------------------- ### Start Host Application with CPC Instance Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld596-bluetooth-network-coprocessor-mode/05-using-ncp-with-cpc.md Launch the host application, specifying the CPC instance name that was configured in the `cpcd.conf` file. ```bash ./bt_host_empty -C cpcd_0 ``` -------------------------------- ### Start Connectable Advertising Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld269-bluetooth-fundamentals-connections/multi-central-topology.md Initiates a connectable advertisement set. Ensure an advertisement set is created via sl_bt_advertiser_create_set() before calling this. ```c sl_bt_advertiser_start( advertising_set_handle, advertiser_general_discoverable, advertiser_connectable_scannable); ``` -------------------------------- ### Start CPC Daemon Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld596-bluetooth-network-coprocessor-mode/05-using-ncp-with-cpc.md Run the CPC daemon with the configuration file specified. Ensure the instance name matches the one set in `cpcd.conf`. ```bash cpcd -c ./cpcd.conf ``` -------------------------------- ### Enable Specific GATT Capabilities Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld221-bluetooth-gatt/polymorphic-gatt.md Example command to enable specific capabilities while disabling others. ```c sl_bt_gatt_server_set_capabilities (ota | temp_type, 0); ``` -------------------------------- ### Build NCP Host with Secure Mode Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld596-bluetooth-network-coprocessor-mode/04-secure-ncp.md Use this command to build the NCP Host project with security enabled. Ensure the openssl package is installed. ```bash make SECURITY=1 ``` -------------------------------- ### Handle OTA Control Commands Source: https://context7.com/siliconlabssoftware/docs-bluetooth/llms.txt Processes OTA control commands to start or end the firmware update process. It erases the storage slot on start and initiates the reboot to install on end. ```c // Handle OTA control commands void handle_ota_control(uint8_t command) { int32_t ret; switch (command) { case OTA_CTRL_START: // Erase storage slot before starting OTA ret = bootloader_eraseStorageSlot(0); if (ret == BOOTLOADER_OK) { ota_image_position = 0; ota_in_progress = true; app_log("OTA started, slot erased\n"); } break; case OTA_CTRL_END: if (ota_in_progress) { ota_in_progress = false; app_log("OTA completed, rebooting to install\n"); // Set bootloader to load from slot 0 bootloader_setImageToBootload(0); // Reboot to install new firmware bootloader_rebootAndInstall(); } break; } } ``` -------------------------------- ### Run Secure NCP Host with COM Port Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld596-bluetooth-network-coprocessor-mode/04-secure-ncp.md This example demonstrates running the secure NCP Host, specifying the COM port and enabling encryption. It shows the expected output upon successful initialization and connection. ```bash $ ./empty.exe -u COM21 -s [I] NCP host initialised. [I] Resetting NCP target... [I] Press Ctrl+C to quit [I] Start encryption [I] Communication encrypted [I] Bluetooth stack booted: v3.2.1-b216 [I] Bluetooth public device address: 00:0B:57:A7:84:15 [I] Started advertising. ``` -------------------------------- ### Initialize System and Bluetooth Stack Source: https://context7.com/siliconlabssoftware/docs-bluetooth/llms.txt Initializes the MCU, peripherals, and Bluetooth stack using sl_system_init() before entering the main event loop. ```c #include "sl_system_init.h" #include "sl_bluetooth.h" int main(void) { // Initialize system including clocks, peripherals, and Bluetooth stack sl_system_init(); // Application-specific initialization app_init(); // Main event loop while (1) { // Process Bluetooth stack events sl_bt_step(); // Application processing app_process_action(); } } void app_init(void) { // Application-specific initialization code // This runs after sl_system_init() completes } ``` -------------------------------- ### Install ctypesgen with pip Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld679-bluetooth-electronic-shelf-label/05-preparing-the-esl-network.md Installs the ctypesgen Python package, which is required for compiling the Access Point host software. ```bash pip install ctypesgen ``` -------------------------------- ### Initialize GBL Parser Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld271-bluetooth-bootloading-firmware-upgrade/adding-metadata-to-gbl-files.md Set up the parser context and callbacks required to process GBL data chunks. ```c #define BTL_PARSER_CTX_SZ 0x200 static uint8_t parserContext[BTL_PARSER_CTX_SZ]; static BootloaderParserCallbacks_t parserCallbacks; parserCallbacks.applicationCallback = NULL; parserCallbacks.bootloaderCallback = NULL; parserCallbacks.metadataCallback = metadataCallback; bootloader_init(); bootloader_initParser((BootloaderParserContext_t *)parserContext,BTL_PARSER_CTX_SZ); ``` -------------------------------- ### ELF Section Header Output Example (IAR) Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld649-bluetooth-c-soc-dev-guide-sdk-v9x/08-application-elf-file.md Example output showing section details for an IAR-compiled ELF file. ```text Sections: Idx Name Size VMA LMA File off Algn 0 application 0002f468 08012000 08012000 00000034 2**9 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 storage_regions 0000a000 08174000 08174000 0002f49c 2**13 ALLOC 2 application_ram 0000279c 20000000 20000000 0002f49c 2**3 ALLOC 3 application_heap 0003d860 200027a0 200027a0 0002f49c 2**3 ALLOC 4 .debug_abbrev 0000c8ba 00000000 00000000 0002f49c 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 5 .debug_aranges 00008de0 00000000 00000000 0003bd58 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 6 .debug_frame 000186fa 00000000 00000000 00044b38 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 7 .debug_info 00131969 00000000 00000000 0005d234 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 8 .debug_line 0008a871 00000000 00000000 0018eba0 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 9 .debug_loc 00028c5c 00000000 00000000 00219414 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 10 .debug_macinfo 0000d5be 00000000 00000000 00242070 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 11 .debug_pubnames 0000de9f 00000000 00000000 0024f630 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 12 .debug_ranges 00005b28 00000000 00000000 0025d4d0 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 13 .debug_types 0000461e 00000000 00000000 00262ff8 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 14 .iar.debug_frame 0001e0b7 00000000 00000000 00267618 2**0 CONTENTS, READONLY 15 .iar.debug_line 000413fd 00000000 00000000 002856d0 2**0 CONTENTS, READONLY 16 .comment 0015748a 00000000 00000000 002c6ad0 2**0 CONTENTS, READONLY 17 .iar.rtmodel 00000042 00000000 00000000 0041df5c 2**0 CONTENTS, READONLY 18 .ARM.attributes 00000032 00000000 00000000 0041dfa0 2**0 CONTENTS, READONLY ``` -------------------------------- ### Install OpenSSL for MSYS2 Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld596-bluetooth-network-coprocessor-mode/04-secure-ncp.md Install the openssl package in your MSYS2 environment if it is not already present. This is a prerequisite for building the secure NCP Host. ```bash pacman -S mingw-w64-x86_64-openssl ``` -------------------------------- ### Start ESL AP in Manual Mode Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld679-bluetooth-electronic-shelf-label/06-the-esl-network.md Use this command to start the ESL AP in manual mode, specifying the serial device. ```python python app.py --cmd ``` -------------------------------- ### Create Application GBL File Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld271-bluetooth-bootloading-firmware-upgrade/upgrading-gecko-bootloader.md Generates a .gbl upgrade file from the application .s37 output using the commander utility. ```bash commander gbl create application.gbl --app my_bluetooth_project.s37 ``` -------------------------------- ### Start ESL AP in Verbose Manual Mode Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld679-bluetooth-electronic-shelf-label/06-the-esl-network.md Start the ESL AP in manual mode with increased verbosity by specifying a debug level. ```python python app.py /dev/tty.usbmodem0004402847501 -l DEBUG ``` -------------------------------- ### Install MSYS2 Packages for Compilation Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld679-bluetooth-electronic-shelf-label/05-preparing-the-esl-network.md Installs necessary packages for compiling the access point software on MSYS2, including make, GCC, Python, pip, and pkgconf. ```bash pacman -S make mingw-w64-x86_64-gcc mingw-w64-x86_64-python mingw-w64-x86_64-python-pip mingw-w64-x86_64-pkgconf ``` -------------------------------- ### Install mingw-w64 GCC for MSYS2 Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld596-bluetooth-network-coprocessor-mode/03-ncp-host-development.md Install the necessary GCC toolchain for building C/C++ projects within the MSYS2 environment. This command ensures you have the 'make' utility and the 64-bit GCC compiler. ```bash pacman -S make mingw-w64-x86_64-gcc ``` -------------------------------- ### Configure System Boot Event Handler Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld129-bluetooth-fundamentals-system-performance/current-consumption.md Replace the default system_boot event handler to configure TX power, retrieve the device's identity address, create an advertising set, set advertising timing to 100ms, and start general discoverable and connectable advertising. ```cpp case sl_bt_evt_system_boot_id: // Set TX power sc = sl_bt_system_set_tx_power(0, 80, &pwr_min, &pwr_max); app_assert_status(sc); // Extract unique ID from BT Address. sc = sl_bt_system_get_identity_address(&address, &address_type); app_assert_status(sc); // Create an advertising set. sc = sl_bt_advertiser_create_set(&advertising_set_handle); app_assert_status(sc); // Set advertising interval to 100ms. sc = sl_bt_advertiser_set_timing( advertising_set_handle, 160, // min. adv. interval (milliseconds * 1.6) 160, // max. adv. interval (milliseconds * 1.6) 0, // adv. duration 0); // max. num. adv. events app_assert_status(sc); // Start general advertising and enable connections. sc = sl_bt_advertiser_start( advertising_set_handle, advertiser_general_discoverable, advertiser_connectable_scannable); app_assert_status(sc); break; ``` -------------------------------- ### Start Periodic Timer with Bluetooth API Source: https://context7.com/siliconlabssoftware/docs-bluetooth/llms.txt Starts a periodic software timer using sl_bt_system_set_soft_timer. Ensure the timer ID is defined and the interval is set correctly for periodic execution (0). ```c #include "sl_bt_api.h" #define TIMER_ID_SENSOR_READ 1 #define TIMER_ID_LED_BLINK 2 #define TIMER_ID_CONNECTION_TIMEOUT 3 // Start a periodic timer (32768 ticks = 1 second) void start_periodic_timer(void) { sl_status_t sc; // Start 1-second periodic timer for sensor reading sc = sl_bt_system_set_soft_timer(32768, // interval (1 second) TIMER_ID_SENSOR_READ, 0); // 0 = periodic, 1 = single-shot app_assert_status(sc); } ``` -------------------------------- ### Build and Flash Tool Scripts for Windows Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld648-amazon-freertos-architecture-examples/03-freertos-aws-test-sample-for-ble.md Batch scripts for automating project builds and firmware flashing on Windows environments. ```C @echo off echo Building project... set STUDIO_PATH="" set PROJECT_NAME="" start /B /wait %STUDIO_PATH:"=%\studio.exe -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild -printErrorMarkers -no-indexer -cleanBuild %PROJECT_NAME% exit 0 ``` ```C @echo off echo Flashing project... set STUDIO_PATH="" set PROJECT_BINARY="" start /B /wait %STUDIO_PATH:"=%\developer\adapter_packs\commander\commander.exe flash %PROJECT_BINARY% --address 0x0 start /B /wait %STUDIO_PATH:"=%\developer\adapter_packs\commander\commander.exe device reset ``` -------------------------------- ### Configure Legacy Advertising in Bluetooth SDK 3.x Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld595-bluetooth-efr32bg-smart-device-power-consumption/01-setup.md Update the sl_bt_legacy_advertiser_start function in app.c to enable connectable advertising. ```C sc = sl_bt_legacy_advertiser_start( advertising_set_handle, sl_bt_legacy_advertiser_connectable); ``` -------------------------------- ### Store Connection Handles Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld269-bluetooth-fundamentals-connections/multi-central-topology.md Example structure and event handler logic to track active connection handles and device addresses. Use this to differentiate between multiple simultaneous connections. ```c struct { bd_addr device_address; uint8_t address_type; uint8_t connection_handle; } connections[8]; uint8_t live_connections = 0; //... case sl_bt_evt_connection_opened_id: connections[live_connections].device_address = evt->data.evt_connection_opened.address; connections[live_connections].address_type = evt->data.evt_connection_opened.address_type; connections[live_connections].connection_handle = evt->data.evt_connection_opened.connection; live_connections++; break; ``` -------------------------------- ### Default OTA Advertising Data Example Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld271-bluetooth-bootloading-firmware-upgrade/ota-update-custom-advertising-data.md This is an example of the minimal raw advertising data used when a device boots into OTA DFU mode. It includes flags, device name, address, and TX power. ```c 0x02010604094F5441081B00428928E20A68020A00 ``` -------------------------------- ### Update Bootload Info Header Include Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld271-bluetooth-bootloading-firmware-upgrade/upgrading-gecko-bootloader.md Modify the include path in btl_storage.h to point to the correct plugin directory. ```c #include "bootloadinfo/btl_storage_bootloadinfo.h" ``` ```c #include "plugin/storage/bootloadinfo/btl_storage_bootloadinfo.h" ``` -------------------------------- ### Start One-Shot Timer with Bluetooth API Source: https://context7.com/siliconlabssoftware/docs-bluetooth/llms.txt Starts a one-shot software timer using sl_bt_system_set_soft_timer. The timeout is specified in milliseconds and converted to timer ticks. Ensure the timer ID is defined and the mode is set to single-shot (1). ```c void start_oneshot_timer(uint32_t timeout_ms) { sl_status_t sc; uint32_t ticks = (timeout_ms * 32768) / 1000; sc = sl_bt_system_set_soft_timer(ticks, TIMER_ID_CONNECTION_TIMEOUT, 1); // single-shot app_assert_status(sc); } ``` -------------------------------- ### Build and Flash Tool Scripts for Linux/MacOS Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld648-amazon-freertos-architecture-examples/03-freertos-aws-test-sample-for-ble.md Shell scripts for automating project builds and firmware flashing on Linux and macOS environments. ```C #!/bin/bash echo Building project… export ARM_GCC_DIR= make -C -f .Makefile ``` ```C #!/bin/bash echo Flashing project... COMMANDER_PATH="" PROJECT_BINARY="" $COMMANDER_PATH flash $PROJECT_BINARY --address 0x0 $COMMANDER_PATH device reset ``` -------------------------------- ### test_dtm_rx Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld646-bt-rf-phy-evaluation-using-dtm-sdk-v3x/03-testing-with-bgtool.md Starts a receiver test on a specific channel and PHY. ```APIDOC ## test_dtm_rx ### Description Starts a receiver test. The test is ended using test_dtm_end, and the resulting test_dtm_completed event contains the number of packets received. ### Parameters #### Request Body - **channel** (integer) - Required - Channel to receive on - **phy** (integer) - Required - PHY selection ``` -------------------------------- ### Merge Bootloader and Application Images Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld271-bluetooth-bootloading-firmware-upgrade/secure-ota-dfu.md Use the commander tool to combine the bootloader, apploader, and application images into a single .s37 file for flashing. ```bash $ commander convert bootloader-storage-internal-single.s37 apploader-signed.gbl application-signed.gbl --outfile bootloader+stack+app.s37 ``` -------------------------------- ### test_dtm_tx_v4 Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld646-bt-rf-phy-evaluation-using-dtm-sdk-v3x/03-testing-with-bgtool.md Starts a transmitter test with additional power level control. ```APIDOC ## test_dtm_tx_v4 ### Description Starts a transmitter test with extended parameters including power level control. ### Parameters #### Request Body - **packet_type** (integer) - Required - Type of packet to transmit - **length** (integer) - Required - Length of the packet - **channel** (integer) - Required - Channel to transmit on - **phy** (integer) - Required - PHY selection - **power_level** (integer) - Required - TX power level in dBm (-127 to +20) ``` -------------------------------- ### Create GBL with Metadata Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld271-bluetooth-bootloading-firmware-upgrade/adding-metadata-to-gbl-files.md Use the commander tool to include a binary metadata file when generating a GBL image. ```bash commander gbl create application.gbl --app application.s37 --metadata metadata.bin ``` -------------------------------- ### Initiate Receiver Test Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld646-bt-rf-phy-evaluation-using-dtm-sdk-v3x/03-testing-with-bgtool.md Starts a receiver test on a specific channel and PHY. ```BGAPI test_dtm_rx(channel, phy) ``` -------------------------------- ### Handle System Boot Event for OTA Configuration Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld271-bluetooth-bootloading-firmware-upgrade/ota-update-custom-advertising-data.md Processes the system boot event to retrieve SDK version information and initiate the configuration of OTA advertising data. Ensure the boot event is handled to dynamically populate advertising data. ```c case sl_bt_evt_system_boot_id: vSDK_t vSDK; vSDK.major = evt->data.evt_system_boot.major; vSDK.minor = evt->data.evt_system_boot.minor; vSDK.patch = evt->data.evt_system_boot.patch; vSDK.build = evt->data.evt_system_boot.build; // Build the advt packet and configures OTA Advt data. configure_OTA_adv(vSDK); ... break; ``` -------------------------------- ### Run NCP Host Executable with Help Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld596-bluetooth-network-coprocessor-mode/03-ncp-host-development.md Execute the compiled NCP Host application with the help flag to display available command-line parameters. This is useful for understanding how to pass COM port and IP address information. ```bash .\bt_host_empty.exe -h ``` -------------------------------- ### test_dtm_tx Source: https://github.com/siliconlabssoftware/docs-bluetooth/blob/main/sld646-bt-rf-phy-evaluation-using-dtm-sdk-v3x/03-testing-with-bgtool.md Starts a transmitter test with specified packet type, length, channel, and PHY. ```APIDOC ## test_dtm_tx ### Description Starts a transmitter test. The device returns a response indicating command receipt, followed by a test_dtm_completed event when the test starts. ### Parameters #### Request Body - **packet_type** (integer) - Required - Type of packet to transmit - **length** (integer) - Required - Length of the packet - **channel** (integer) - Required - Channel to transmit on - **phy** (integer) - Required - PHY selection (1M, 2M, 125k Coded, 500k Coded) ```