Gazell for nRF5340

I am trying to run Gazell libraries on nRF5340. There have been some previous posts about this with answers either saying that the support does not exist, might be coming, or that it should be possible to compile the libraries also for nRF5340 even though the Gazell current samples are not for that platform.

SDK 2.6.1 Gazell libraries (quite new) fail to compile for nRF5340 at least due to PPI vs DPPI issues.

However, this change note from SDK 2.1 indicates that support for nRF5340 should already exist (https://developer.nordicsemi.com/nRF_Connect_SDK/doc/2.2.0-rc2/nrfxlib/gzll/CHANGELOG.html). The note says that "Added the library variant for the nRF5340 network core."

Since the code still does not compile I guess that the comment means that a pre-compiled library has been added (compiled from some other sources). And indeed, the SDK does include the Gazell library libgzll.a for nRF5340. But how can I take that into use in a practical way? Some other libraries have KCONFIG options to select a pre-compiled library instead of building from sources, but I did not find any such option. I am using the VS code environment of the SDK and would really hope to find a simple solution which does not include hacking the build scripts.

  • Hi Petri

    Did you try to build for the network core or the application core? 

    The radio is only available from the network core, and you need to build the Gazell application for this core specifically. 

    Best regards
    Torbjørn

  • Hi,

    I am building for the network core (target nrf5340dk_nrf5340_cpunet).

    I am attaching the build output from VS Code extension below (I did not find a way to make an attachment so the text is pasted at the end of this message). It has a bunch of gcc errors due to PPI vs DPPI which is already in compilation, apparently due to nRF5340 being different in this respect. I don't know if there would be some other problems later also since the build stops at these gcc errors.

    Petri

  •  I am not able to post the output. It is probably too long. Here are some key snippets. I have edited most of the output away.

    ---

    Executing task: nRF Connect: Generate config nrf5340dk_nrf5340_cpunet for c:\Code\foo\radio_char\gzll_ack_payload_hos

    -- Found BOARD.dts: C:/ncs/v2.6.1/zephyr/boards/arm/nrf5340dk_nrf5340/nrf5340dk_nrf5340_cpunet.dts

    -- Zephyr version: 3.5.99 (C:/ncs/v2.6.1/zephyr), build: v3.5.99-ncs1-1
    [131/139] Building C object modules/nrf/subsys/gazell/CMakeFiles/..__nrf__subsys__gazell.dir/gzll_glue.c.obj
    FAILED: modules/nrf/subsys/gazell/CMakeFiles/..__nrf__subsys__gazell.dir/gzll_glue.c.obj


    In file included from C:/ncs/v2.6.1/modules/hal/nordic/nrfx/drivers/include/nrfx_ppi.h:38,from C:/ncs/v2.6.1/nrf/subsys/gazell/gzll_glue.c:14:
    C:/ncs/v2.6.1/modules/hal/nordic/nrfx/hal/nrf_ppi.h:54:25: error: 'PPI_CHEN_CH0_Pos' undeclared here (not in a function); did you mean 'DPPIC_CHEN_CH0_Pos'?
    54 | NRF_PPI_CHANNEL0 = PPI_CHEN_CH0_Pos, /**< Channel 0. */

    [And then a lot of similar "undeclared" errors.]

    * The terminal process terminated with exit code: 1.

  • Hi Petri

    I tried building it myself and see the same issue. It seems there is a lib provided for the nRF5340 netcore, but the gzll_glue layer does not support DPPI, which is required by the nRF5340. 

    I will do some digging internally and try to figure out what the plans are for supporting Gazell in the nRF5340 properly. 

    Best regards
    Torbjørn

  • Thank you!

    If Gazell on nRF5340 is not happening I would be grateful of any tips about alternative *equally simple* 2.4GHz radio solutions (not BLE) that might exist as samples for nRF5340. For example, if there would exist some simple proprietary protocol for exchanging data packets with acknowledgement.

    Petri

Related