Re: NRF 802.15.4 driver without networking?


Lubos, Robert
 

Hi Axel,

 

I've found the following configuration to be the minimal needed to use the Zephyr ieee802154 radio driver w/o the networking stack:

    CONFIG_IEEE802154=y

    CONFIG_NETWORKING=y

    CONFIG_IEEE802154_RAW_MODE=y

 

I've tested it with nrf52840_pca10056, this configuration builds:

   * nRF 802.15.4 radio driver (https://github.com/zephyrproject-rtos/hal_nordic/tree/master/drivers/nrf_radio_802154),

   * Zephyr's shim layer for nRF5 radio driver, implementing Zephyr's ieee802154 radio API (https://github.com/zephyrproject-rtos/zephyr/blob/master/drivers/ieee802154/ieee802154_nrf5.c),

    * net_pkt/net_buf support from the networking stack (these are unavoidable as Zephyr's ieee802154 radio API depends on it)

 

Note, that when using `CONFIG_IEEE802154_RAW_MODE`, it's expected to implement the following function to collect the packets received:

    int net_recv_data(struct net_if *iface, struct net_pkt *pkt)

 

This configuration is used in samples like `wpanusb` or `wpan_serial`, you can check more about it here: https://docs.zephyrproject.org/latest/reference/kconfig/CONFIG_IEEE802154_RAW_MODE.html

 

 

If your intention is to use the nRF 802.15.4 radio driver directly and omit the Zephyr shim layer, I'm afraid that's not something we support right now. It should be doable of course, but it would require some custom CMake/Kconfig files, it's not something that could be achieved with the existing configuration. I'd recommend though to stick to the Zephyr API, and to propose improvements, if it does not fit your needs for any reason.

 

Regards,

Robert

 

 

From: users@... [mailto:users@...] On Behalf Of Axel Schlueter via Lists.Zephyrproject.Org
Sent: Friday, January 3, 2020 01:40
To: users@...
Cc: users@...
Subject: [Zephyr-users] NRF 802.15.4 driver without networking?

 

Hi,

I should probably start by saying that I’m brand new to Zephyr and that I’m pretty sure I’m missing something obvious or just overlooked parts of the (great!) documentation.

I’m trying to configure my project to use the NRF 802.15.4 radio driver coming with Zephyr (in the modules/hal/nordic/drivers/nrf_radio_802154) without any of the other Zephyr networking support, but I can’t figure out a project config that would help me achieve this. I played with various configs, and the most promising seems to be

CONFIG_NETWORKING=n
CONFIG_IEEE802154=y
CONFIG_IEEE802154_NRF5=y
CONFIG_IEEE802154_RAW_MODE=n
CONFIG_HAS_NORDIC_DRIVERS=y

but Kconfig won’t let me set CONFIG_HAS_NORDIC_DRIVERS manually (which is required to include the drivers subfolder, see modules/hal/nordic/CMakeLists.txt).

As a desperate measure I tried to set every CONFIG_IEEE802154_xxx config flag to no and instead include the driver as an extra module via

set(ZEPHYR_EXTRA_MODULES [some_directory]/modules/hal/nordic/drivers/nrf_radio_802154)

but no luck either.

Any ideas what else I could try?

Thanks,
Axel

Join users@lists.zephyrproject.org to automatically receive all group messages.