nrf52840 Radio Co-Processor with STM32L486 host processor

I have the next system perfectly working:

  • nRF52840 working as NCP to get OpenThread protocol.
  • STM32L486 as a host with a FreeRTOS
  • The communication between both is via UART working with SPINEL

I want to implement multiprotocol support (OpenThread + BLE). I have discovered your nRF Connect SDK v2.1.2 but I have the next problems/questions:

1º) The only sample to implement NCP is with Zephyr

2º) Is this sample what i have to implement to support multiprotocol?

3º) Which BLE sample can I use to support multiprotocol?

4º) Is spinel implemented in any sample of the previously listed?

Thanks

  • Hi,

    See Multiprotocol support.

    1º) The only sample to implement NCP is with Zephyr

    I think so as well, yes. Our Thread: Co-processor sample only supports RCP.

    2º) Is this sample what i have to implement to support multiprotocol?

    Our Thread Coap Client and CLI samples support multi-protocol alongside Bluetooth Low Energy. I would start there.

    3º) Which BLE sample can I use to support multiprotocol?

    See the previous answer.

    4º) Is spinel implemented in any sample of the previously listed?

    I have not tested it, but from the Thread: Co-processors prj.conf:

    CONFIG_LOG_BACKEND_SPINEL=y

    So I am inclined to think that spinel is used here.

    Regards,
    Sigurd Hellesvik

  • Hi Sigurd!

    Our Thread Coap Client and CLI samples support multi-protocol alongside Bluetooth Low Energy. I would start there.

    Anyway I need an option with NCP and these don't support it, right?

    In the hypothetical case of being able to implement RCP, if I want to implement CLI sample... Do I need a linux host to stablish a command line communication with the co-processor?

    What option do Nordic offer to me if I need an NCP co-processor and my host is a microcontroller? 

  • Hi,

    JuanAlm said:
    Anyway I need an option with NCP and these don't support it, right?

    That is right, but you can use the multiprotocol-configurations from either of these to add multiprotocol to the Zephyr NCP sample.

    I built and flashed a nRF52840DK with the Zephyr NCP sample.
    I were able to control this using spinel-cli.py on a linux PC. But since it uses spinel, I would guess the microcontroller host would also be able to control it.

    I did not do the merge though, you will have to that yourself.

    JuanAlm said:
    What option do Nordic offer to me if I need an NCP co-processor and my host is a microcontroller? 

    See the above answer for my suggestion to do NCP.

    Another solution is to use the nRF52840 not as a co-processor, but as a fully functional microcontroller with OpenThread support. It has a Arm cortex-M4 core and a good selection of peripherals after all.
    Then you can use an interface of your choosing (SPI/I2C/UART) to communicate between the STM32 and nRF52840.

    JuanAlm said:
    In the hypothetical case of being able to implement RCP, if I want to implement CLI sample... Do I need a linux host to stablish a command line communication with the co-processor?

    I do not understand this question.
    Can you elaborate a bit?

    Regards,
    Sigurd Hellesvik

Related