Bluetooth IPC (network core)

Hello, I am new to using the nRF platform, and I appreciate your understanding. I am currently using SDK 2.8.0.

I have implemented a thread in the application core to acquire sensor data and transmit it via Bluetooth to a PC (Windows). This entire process is currently implemented in the application core.

Now, I would like to achieve the following:

  1. Implement Bluetooth in the network core and establish communication.
  2. Transfer the acquired data from the application core to the network core (IPC).
  3. Transmit the received data from the application core to the PC via Bluetooth from the network core.

I am using a custom board based on the nRF5340 QKAA. As mentioned earlier, I have already completed the implementation in the application core.

Now, I would like to learn how to program the network core.

Thank you!

Parents
  • Hi, 

    You can refer to Building and programming with nRF53 Series. You also can enable Sysbuild configs to select the network core image to build with your application. See Network core.

    Regards,
    Amanda H.

  • I successfully built both cores using the sysbuild.cmake file found in the ipc_service example. Additionally, I managed to build Bluetooth on the network core without any issues.

    However, when I tried to apply the same approach to my existing project, I encountered problems because my project does not include a sysbuild.cmake file. If I remember correctly, my project was originally based on the peripheral_uart example, which I have since modified extensively.

    I attempted to build the project similarly to ipc_service. I created a src/main.c file inside the sysbuild/ipc_radio folder and modified the prj.conf file within the same folder. However, I encountered a build error, even when I commented out the entire main function. The error occurs during the configuration file processing stage:


    C:/nrf5340/zephyr/include/zephyr/bluetooth/gatt.h:919:34: error: 'CONFIG_BT_MAX_PAIRED' undeclared here (not in a function); did you mean 'CONFIG_BT_RX_PRIO'?
    919 | #define BT_GATT_CCC_MAX (CONFIG_BT_MAX_PAIRED + CONFIG_BT_MAX_CONN)
    | ^~~~~~~~~~~~~~~~~~~~
    C:/nrf5340/zephyr/include/zephyr/bluetooth/gatt.h:937:36: note: in expansion of macro 'BT_GATT_CCC_MAX'
    937 | struct bt_gatt_ccc_cfg cfg[BT_GATT_CCC_MAX];

    This error occurs when I enable CONFIG_BT_NUS=y in the configuration file.

    The key difference between my approach and the ipc_service example is that in ipc_service, I added the src folder inside the remote directory and modified its prj.conf file. In contrast, in my current project, I modified the prj.conf file inside the sysbuild directory.

    Regards,

    MJ Park

Reply
  • I successfully built both cores using the sysbuild.cmake file found in the ipc_service example. Additionally, I managed to build Bluetooth on the network core without any issues.

    However, when I tried to apply the same approach to my existing project, I encountered problems because my project does not include a sysbuild.cmake file. If I remember correctly, my project was originally based on the peripheral_uart example, which I have since modified extensively.

    I attempted to build the project similarly to ipc_service. I created a src/main.c file inside the sysbuild/ipc_radio folder and modified the prj.conf file within the same folder. However, I encountered a build error, even when I commented out the entire main function. The error occurs during the configuration file processing stage:


    C:/nrf5340/zephyr/include/zephyr/bluetooth/gatt.h:919:34: error: 'CONFIG_BT_MAX_PAIRED' undeclared here (not in a function); did you mean 'CONFIG_BT_RX_PRIO'?
    919 | #define BT_GATT_CCC_MAX (CONFIG_BT_MAX_PAIRED + CONFIG_BT_MAX_CONN)
    | ^~~~~~~~~~~~~~~~~~~~
    C:/nrf5340/zephyr/include/zephyr/bluetooth/gatt.h:937:36: note: in expansion of macro 'BT_GATT_CCC_MAX'
    937 | struct bt_gatt_ccc_cfg cfg[BT_GATT_CCC_MAX];

    This error occurs when I enable CONFIG_BT_NUS=y in the configuration file.

    The key difference between my approach and the ipc_service example is that in ipc_service, I added the src folder inside the remote directory and modified its prj.conf file. In contrast, in my current project, I modified the prj.conf file inside the sysbuild directory.

    Regards,

    MJ Park

Children
No Data
Related