LE Audio Controller Subsystem for nRF53 Source Code

Hi there!

I am working on a project that uses a custom pcb with the nRF5340 based on the audio dk. So far everything has been running smoothly until I discovered a number of my inputs are not being read correctly. I seem to have isolated the problem to the gpios controlled by the network core (namely p01.08, p01.09, p01.10, and p01.11 for the uart, and p00.28, p00.29, and p00.30 for rgb 2).

Now I am not too experienced with Zephyr and the nRF Connect SDK, but I have thus far been successful creating an overlay on the app core to reroute my IO. Unfortunately, it seems because the firmware for the net core is pre-compiled, I don't have a way of disabling these gpios so my app core can read them.

It seems that it is based in some respect on the Zephyr hci_rpmsg sample, but when I built that for the net core and flashed it the app core was unable to connect to the net core. The only details I could find on the program for the net core is here.

I was wondering if there is place I can access the source for the net core, or some how otherwise get the Bluetooth working again without controlling these gpios. Thanks in advance for any help!

Parents Reply
  • Hi, 

    NCS v2.3.0 is quite old and it has many bugs and stability issues.

    Since there will NCS v2.6.0 release soon, I would suggest you wait a little bit for it or check NCS v2.6.0-rc1, which uses SDC as the default controller when using buildprog.py for building the project.

    Back to the topic:

    We improve the Nordic LE Audio solution all the time, and it is still marked as experimental - even in the upcoming NCS 2.6. (We may soon change that.)

    Please be aware of this, and are usually better off trying to stay up-to-date.

    Regards,
    Amanda H.

Children
  • Hi Amanda!

    Thank you for the detailed answer, and I will do better to stay up to date. I'm a little disappointed I didn't notice the gpio_fwd section of the dts myself, but oh well. This seems like the easiest way to fix it. Again, I'm fairly new to using Zephyr, so is there an easy way to to remove this using my overlay instead of modifying the file directly in ncs?

    Unfortunately, my hardware is not currently available, but once I have it back I will test this and hopefully mark this as the solution. Thanks again!

  • Hi, 

    Could you try adding this to your app overlay?

    /delete-node/ &gpio_fwd;
    
    ...Rest of your overlay's

    PS: remember to delete your build folder and regenerate it after adding/removing overlay files.

    -Amanda H.

  • Hi Amanda!

    I realize it has been a month, but I just finally got my hardware back. Unfortunately modifying the overlay (or the dts) was not successful. However, your second suggestion did work! I added the following to my init code for each of the GPIOs and that seemed to do the trick:


    #include <hal/nrf_gpio.h>
    
    enum {
    	GPIO_NAME = DT_GPIO_PIN(DT_ALIAS(alias), gpios),
    	...
    }
    
    
    // Reclaim GPIOs from the net core
    nrf_gpio_pin_control_select(GPIO_NAME, NRF_GPIO_PIN_SEL_APP);

Related