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

802.15.4 and BLE multiprotocol requirement

I have a requirement for BLE and 802.15.4 stacks in a multiprotocol environment. I have looked at the sample at NordicSemiconductor/nRF-IEEE-802.15.4-radio-driver on github.

I do however prefer to use one of the existing examples and found that the BLE and Zigbee Template Example looks like a  good starting point.

Am I correct in assuming that if I removed the references and dependencies to Zigbee from that project that i can use the template for my implementation.

Is the 802.15.4 library referenced by the project equivalent to the sample code within the github radio driver examples.

I have looked at the wireless uart example, but the state machine appears quite complex and I would prefer not to try and understand it.

Thank you

  • Hi,

    It looks like this example includes a precompiled library of the 802.15.4 radio driver with softdevice support, so I do not see why that should not work. However, note that I have not tested this myself. Please let me know if you face any issues with this approach and I will try to help you out!

    The 802.15.4 Wireless UART example in the SDK is using a 3rd party 802.15.4 MAC and PHY library and is not compatible with our multiprotocol solution.

    Best regards,
    Jørgen

  • Thank you for your reply. I tried the precompiled libraries, but ran into difficulties which I assumed was due to the fact that the precompiled library was done specifically for Zigbee.

    I then built a project using the example makefile I found on Github using the sources from the SDK. This ran fine and reliably.

    I substituted the softdevice RAAL arbiter for the Single-Phy arbiter in the example.

    I now have one issue, after a couple of hundred successful transmissions, nrf_802154_transmit fails and nrf_802154_transmit_failed is called with an error of 4, which seems to indicate the failure is due to an unsuccessful access to the radio.

    I assumed that one simply retries, but all subsequent calls to nrf_802154_transmit fail in the same manner and the code breaks on a critical error of sorts.

    Can you tell me how to recover gracefully from this type of error. I have searched and could not find any information on this.

    Regards

  • My apologies for the slow response from my side. I checked this with our developers and got the following feedback

    In Single-Phy RAAL no such error should appear. In SoftDevice RAAL it is possible. I would expect a problem with missing SoC event handler. It's briefly described here:

    https://github.com/NordicSemiconductor/nRF-IEEE-802.15.4-radio-driver/wiki/Multiprotocol-support :

    This arbiter depends on SoC events from the SoftDevice. They have to be supplied to the driver using the nrf_raal_softdevice_soc_evt_handler function. For more information about reading SoC events, refer to the SVC call sd_evt_get.

    Can you please check if you have implemented this correctly?

Related