This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Not able to run the nrf Mesh SDK 3.0.0 for nrf52832 (PCA10040)

Hi All,

I have downloaded the nRF Mesh SDk 3.0.0 and tried to run. I am trying to run the default  nrf5SDKforMeshv300src\examples\light_switch\server for 

Here is my software setup.

1) nRF5_SDK_15.2.0_9412b96

2) nrf5SDKforMeshv300src

The above two folders are in the same path.

I am using Segger embedded studio for ARM 3.5.0.

I was able to build and flash the image onto PCA1004. However I can not provision the device.

When I tried t debug, I found the code is hanging in ,

ret_code = sd_softdevice_enable(&clock_lf_cfg, app_error_fault_handler);  which is at line number 214, file nrf_sdh.c.

I have not modified any of the code, just running the default one.

Can anyone let me know, where the problem is?

Thanks,

Ashok Y

Parents
  • Have you programmed the SoftDevice?

    I was able to build and flash the image

    What do you mean, "the image" ?

    You need at least three images:

    1. One development board for a client.
    2. One development board for the provisioner 
    3. One or more development boards for the servers.

    www.nordicsemi.com/.../md_examples_light_switch_README

  • Hi,

    Thanks for the reply.

    I am using Segger embedded studio to connect to target and flash both the Softdevice and image (light_switch_server_nrf52832_xxAA_s132_6.1.0.elf). Here I am using Light switch server example. Also, I am planning to use the nRF Mesh mobile app as provisioner .

    In mesh 2.2.0, I don't need one development board for client. Here in 3.0.0 is it mandatory to have separate client board?

    Thanks,

    Ashok Y

  • You can't have a MESH - of any sort - with just one one node!

  • Yes. To get Mesh topology I will add more nodes once I am OK with one.

    My question is in 3.0.0 I wanted to use the Light switch server (Proxy enables)  example and the Mobile app for both provsioning and latter on/off.

    Also I didn't understand why my code is hanging in

    ret_code = sd_softdevice_enable(&clock_lf_cfg, app_error_fault_handler);  which is at line number 214, file nrf_sdh.c.

    Thanks,

    Ashok. Y

  • Hi.

    AshokY said:
    Also I didn't understand why my code is hanging in

     What error do you get? You have to check that in order to know whats wrong.

    /**@brief Enables the SoftDevice and by extension the protocol stack.
     *
     * @note Some care must be taken if a low frequency clock source is already running when calling this function:
     *       If the LF clock has a different source then the one currently running, it will be stopped. Then, the new
     *       clock source will be started.
     *
     * @note This function has no effect when returning with an error.
     *
     * @post If return code is ::NRF_SUCCESS
     *       - SoC library and protocol stack APIs are made available.
     *       - A portion of RAM will be unavailable (see relevant SDS documentation).
     *       - Some peripherals will be unavailable or available only through the SoC API (see relevant SDS documentation).
     *       - Interrupts will not arrive from protected peripherals or interrupts.
     *       - nrf_nvic_ functions must be used instead of CMSIS NVIC_ functions for reliable usage of the SoftDevice.
     *       - Interrupt latency may be affected by the SoftDevice  (see relevant SDS documentation).
     *       - Chosen low frequency clock source will be running.
     *
     * @param p_clock_lf_cfg Low frequency clock source and accuracy.
                             If NULL the clock will be configured as an rc source with rc_ctiv = 16 and .rc_temp_ctiv = 2
                             In the case of XTAL source, the PPM accuracy of the chosen clock source must be greater than or equal to the actual characteristics of your XTAL clock.
     * @param fault_handler Callback to be invoked in case of fault.
     *
     * @retval ::NRF_SUCCESS
     * @retval ::NRF_ERROR_INVALID_STATE SoftDevice is already enabled, and the clock source and fault handler cannot be updated.
     * @retval ::NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION SoftDevice interrupt is already enabled, or an enabled interrupt has an illegal priority level.
     * @retval ::NRF_ERROR_SDM_LFCLK_SOURCE_UNKNOWN Unknown low frequency clock source selected.
     */
    SVCALL(SD_SOFTDEVICE_ENABLE, uint32_t, sd_softdevice_enable(nrf_clock_lf_cfg_t const * p_clock_lf_cfg, nrf_fault_handler_t fault_handler));
    

    Check which error code you have and match it to the errors listed in the API description.

    Best regards,

    Andreas

Reply
  • Hi.

    AshokY said:
    Also I didn't understand why my code is hanging in

     What error do you get? You have to check that in order to know whats wrong.

    /**@brief Enables the SoftDevice and by extension the protocol stack.
     *
     * @note Some care must be taken if a low frequency clock source is already running when calling this function:
     *       If the LF clock has a different source then the one currently running, it will be stopped. Then, the new
     *       clock source will be started.
     *
     * @note This function has no effect when returning with an error.
     *
     * @post If return code is ::NRF_SUCCESS
     *       - SoC library and protocol stack APIs are made available.
     *       - A portion of RAM will be unavailable (see relevant SDS documentation).
     *       - Some peripherals will be unavailable or available only through the SoC API (see relevant SDS documentation).
     *       - Interrupts will not arrive from protected peripherals or interrupts.
     *       - nrf_nvic_ functions must be used instead of CMSIS NVIC_ functions for reliable usage of the SoftDevice.
     *       - Interrupt latency may be affected by the SoftDevice  (see relevant SDS documentation).
     *       - Chosen low frequency clock source will be running.
     *
     * @param p_clock_lf_cfg Low frequency clock source and accuracy.
                             If NULL the clock will be configured as an rc source with rc_ctiv = 16 and .rc_temp_ctiv = 2
                             In the case of XTAL source, the PPM accuracy of the chosen clock source must be greater than or equal to the actual characteristics of your XTAL clock.
     * @param fault_handler Callback to be invoked in case of fault.
     *
     * @retval ::NRF_SUCCESS
     * @retval ::NRF_ERROR_INVALID_STATE SoftDevice is already enabled, and the clock source and fault handler cannot be updated.
     * @retval ::NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION SoftDevice interrupt is already enabled, or an enabled interrupt has an illegal priority level.
     * @retval ::NRF_ERROR_SDM_LFCLK_SOURCE_UNKNOWN Unknown low frequency clock source selected.
     */
    SVCALL(SD_SOFTDEVICE_ENABLE, uint32_t, sd_softdevice_enable(nrf_clock_lf_cfg_t const * p_clock_lf_cfg, nrf_fault_handler_t fault_handler));
    

    Check which error code you have and match it to the errors listed in the API description.

    Best regards,

    Andreas

Children
No Data
Related