custom nRF5340 board no bluetooth signal

Hi Community,

I designed a similar board asThingy53, espacially the antenna parts are almost the same, except the RF switch, we replace it with another one (BGS12WN6E6327XTSA1), then we found there is some issue to make the switch work properly, so I just removed the RF switch and short the RF output to the short range antenna, which means, now only one anntenna is connected to the RF, even so, I cannot see any RF signal on the mobile phone. 

but the output from UART seems no problem:

*** Booting nRF Connect SDK v3.5.99-ncs1 ***
[00:00:00.303,100] <inf> Custom_board: Starting Custom_board...

[00:00:00.309,020] <inf> fs_nvs: 8 Sectors of 4096 bytes
[00:00:00.309,020] <inf> fs_nvs: alloc wra: 0, fd0
[00:00:00.309,051] <inf> fs_nvs: data wra: 0, 1c
[00:00:00.334,167] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:00.334,197] <inf> bt_hci_core: HW Variant: nRF53x (0x0003)
[00:00:00.334,228] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
[00:00:00.336,456] <inf> bt_hci_core: No ID address. App must call settings_load()
[00:00:00.338,897] <inf> bt_hci_core: Identity: E6:BD:87:6D:09:49 (random)
[00:00:00.338,928] <inf> bt_hci_core: HCI: version 5.4 (0x0d) revision 0x218f, manufacturer 0x0059
[00:00:00.338,928] <inf> bt_hci_core: LMP: version 5.4 (0x0d) subver 0x218f
[00:00:00.342,742] <inf> Custom_board: Bluetooth initialized

[00:00:00.348,327] <inf> Custom_board: Advertising successfully started

the same code, if I compiled it for the nRF5340DK, the bluetooth signal can be observed. 

So I just curious if I did something wrong in my board files or something else? 

I have been strugled in this issue for a long time, please help me with it, thanks a lot!

Best regards

Danny

Parents
  • Have you hade the design fully reviewed by us? 


    My guess is that there is an issue with the antenna or RF path in some way and that this impacts the range, so maybe you need to be very close, try a few centimeters. And only have the PCB, if there is any casing or other material in the way or enclosing the antenna\PCB this might be a reason to why the RF is bad. 


    Alternatively it might be the the clock, the 32MHz might be off and that can contribute to the issue. Make sure it is loaded correctly. 

    Regards,
    Jonathan

  • Hi   

    1. it's not reviewed by you. I just checked the Thingy53 PCB file, found the followed differences:

    Thingy53 PCB:

    trace width: 0.6mm

    grounded vias around the clear area of antenna .

    My PCB:

    trace width: 0.18mm:

    I used this calculation, therefore I used 0.18mm RF trace width, is there anything wrong?

    forgot to put grounded vias around the clear area of antenna.

    I even put the PCB very close to the mobile phone, still can not see any siganl from my PCB.

    2. I think I checked the 32M Hz crystal before, it's running, and all the other peripherals are running correctly, I2C, SPI, PWM...


    Best regards
    Danny

  • Hi  

    "Another alterative is this setup we use here for testing https://github.com/bheiskel/rf_test , you need an extra DK in addition to the device but it is easier to use. "

    I got a USB dongle with nRF52840, I flashed  the rf_test_dongle_nrf52840_dongle.hex file with nRF Connect Programmer. how to use it in this case? 

    also compiled the dut_firmware with this configuration and flashed it into nRF5340DK, everything looks fine.

    Dependances for RF test GUI are also installed:

    But something is wrong here, could you please explain more how to make these things working together properly? Thanks.


    Best regards
    Danny

  • Have you done all the steps here in the Read me for requirements



    Might also need a restart of the computer, but once it runs you open the GUI while the dongle is plugged in. Connect the custom board or DK so that it can be flashed, then you select the device in GUI click the Flash button and wait. Once finished you can click on the Start button and the button should turn green if successful. 


    Regards,
    Jonathan

  • And also for more details use verbose logging. 

    "C:\rf_test-main>py rf_test.py -V" use the -V at the end to get extra detial.

    Regards,
    Jonathan



  • You can also use the empty_app_core hex from here on the nRF5340 DK. 


    Should look like this when it is working

  • so you mean empty_app_core.hex needs to be flashed on the app core of nRF5340DK and 
    nrf5340.hex on the net core of nRF5340DK? I did it like this:

    still not working, and no UART console is recognised on the nRF5340 USB port of nRF5340DK board.

    PS C:\nordic\rf_test> py rf_test.py -V
    2025-04-25 15:45:40.816 | DEBUG | __main__:<module>:31 - Starting GUI
    2025-04-25 15:45:40.841 | DEBUG | src.gui.logic:run:117 - Getting connected debuggers
    Error calling Python override of QThread::run(): Traceback (most recent call last):
    File "C:\nordic\rf_test\src\gui\logic.py", line 128, in run
    with Dongle() as dongle:
    ^^^^^^^^
    File "C:\nordic\rf_test\src\modules\rf_test_dongle_api.py", line 52, in __init__
    self.dev = usb.core.find(idVendor=VENDOR_ID, idProduct=PRODUCT_ID)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\qingc\AppData\Local\Programs\Python\Python312\Lib\site-packages\usb\core.py", line 1321, in find
    raise NoBackendError('No backend available')
    usb.core.NoBackendError: No backend available
    2025-04-25 15:45:41.611 | DEBUG | src.modules.nrfutil_wrapper:get_device_version:165 - 1050021434: Getting device version: NRF5340_xxAA_REV1
    2025-04-25 15:47:47.791 | DEBUG | src.modules.nrfutil_wrapper:get_device_version:165 - 1050021434: Getting device version: NRF5340_xxAA_REV1
    2025-04-25 15:47:47.792 | DEBUG | src.modules.nrfutil_wrapper:program:139 - 1050021434: Programming file: C:\nordic\rf_test\hex/nrf5340.hex Core: Core.NETWORK
    2025-04-25 15:47:48.188 | ERROR | src.modules.nrfutil_wrapper:handle_nrfutil_return:77 - Error: One or more program tasks failed:
    * 1050021434: Device error: QSPI is not a valid peripheral option for external flash programming (Generic)

Reply
  • so you mean empty_app_core.hex needs to be flashed on the app core of nRF5340DK and 
    nrf5340.hex on the net core of nRF5340DK? I did it like this:

    still not working, and no UART console is recognised on the nRF5340 USB port of nRF5340DK board.

    PS C:\nordic\rf_test> py rf_test.py -V
    2025-04-25 15:45:40.816 | DEBUG | __main__:<module>:31 - Starting GUI
    2025-04-25 15:45:40.841 | DEBUG | src.gui.logic:run:117 - Getting connected debuggers
    Error calling Python override of QThread::run(): Traceback (most recent call last):
    File "C:\nordic\rf_test\src\gui\logic.py", line 128, in run
    with Dongle() as dongle:
    ^^^^^^^^
    File "C:\nordic\rf_test\src\modules\rf_test_dongle_api.py", line 52, in __init__
    self.dev = usb.core.find(idVendor=VENDOR_ID, idProduct=PRODUCT_ID)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users\qingc\AppData\Local\Programs\Python\Python312\Lib\site-packages\usb\core.py", line 1321, in find
    raise NoBackendError('No backend available')
    usb.core.NoBackendError: No backend available
    2025-04-25 15:45:41.611 | DEBUG | src.modules.nrfutil_wrapper:get_device_version:165 - 1050021434: Getting device version: NRF5340_xxAA_REV1
    2025-04-25 15:47:47.791 | DEBUG | src.modules.nrfutil_wrapper:get_device_version:165 - 1050021434: Getting device version: NRF5340_xxAA_REV1
    2025-04-25 15:47:47.792 | DEBUG | src.modules.nrfutil_wrapper:program:139 - 1050021434: Programming file: C:\nordic\rf_test\hex/nrf5340.hex Core: Core.NETWORK
    2025-04-25 15:47:48.188 | ERROR | src.modules.nrfutil_wrapper:handle_nrfutil_return:77 - Error: One or more program tasks failed:
    * 1050021434: Device error: QSPI is not a valid peripheral option for external flash programming (Generic)

Children
No Data
Related