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

Using Zephyr and Bluetooth (and other peripherals)

I have an application that is running on using nRF52840 and FreeRTOS.   I am considering transitioning to nRF5340.  For now, it appears that this also means transitioning from FreeRTOS to Zephyr.

I'm attempting to evaluate the nRF5340 using the nRF5340-PDK (version 0.8.0).   Since I'm having some issues getting some of the sample applications to run on the nRF5340-PDK, I'm attempting to port (at least a portion of) my application to Zephyr using the nRF52840 board.   Using the documentation and some of the zephyr/samples/bluetooth examples, I have some basic functionality working, but have a number of questions:

  1. It appears that there are two options for using Bluetooth with Zephyr: either using the native BLE implementation or a SoftDevice (or is this just when using nRF5340?).  It appears that the default is to use the Zephyr native BLE implementation (which looks to be version 5.0).  My nRF52840 application uses S140 (which I believe is version 5.1).  If this is true, what are the tradeoffs, and how do you select one or the other (Zephyr vs. S140)? 
  2. In my nRF52840 application, I "extend" the data length (setting the MTU to 251 bytes), and prefer the 2MBPS Phy.  It is unclear to me from the documentation how to accomplish this when using Zephyr and nRF Connect SDK (I see some defines, but am unclear where they are applied).   Is there a sample program that uses these features?
  3. My application also uses I2C and SPI peripherals using nrfx drivers.   Zephyr has native drivers for both, but it appears that nrfx drivers can also be used within Zephyr.   Is there a comparison available somewhere that shows the pros/cons of each?    I also use the TWI/SPI transaction manager libraries (from nRF SDK) in my application.   Are these available in Zephyr using nRF Connect SDK?
  4. When using peripherals with nRF Connect SDK, is there a chart (or some other documentation) that explains which CONFIG_ options are needed with each driver?
  5. I expected some of the nRF Connect sample programs to work on either nRF52840 or nRF5340 boards (of course using the appropriate builds).   I got the peripheral_hr Bluetooth example to work on the nRF52840 board, but when configured for the nRF5340-PDK, it fails at line 455 of init.c (when I click Debug->Go).   Could this be because I have a very early version (0.8.0) of the PDK?   I'm using version 2.4.0  of Zephyr and version 1.4.0 of nRF Connect SDK.

Thanks!

Parents Reply Children
No Data
Related