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

  • 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)

  • I suppose you also tested it on nRF5340DK.

    Could you please share me how you exactly flash the board?

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

    Make sure you run the requierments file.

    and also maybe try this: python3 -m pip install libusb-package



    As for the DK and flashing:
    If you are unsure use the nRF connect for desktop programmer app. 

    You can add both Hex files here and see them and then you can confirm if the DK has the same when you read its memory. 

    Regards,
    Jonathan

Reply
  • danny0007 said:
    still not working, and no UART console is recognised on the nRF5340 USB port of nRF5340DK board.

    Make sure you run the requierments file.

    and also maybe try this: python3 -m pip install libusb-package



    As for the DK and flashing:
    If you are unsure use the nRF connect for desktop programmer app. 

    You can add both Hex files here and see them and then you can confirm if the DK has the same when you read its memory. 

    Regards,
    Jonathan

Children
  • I cannot reproduce your results:
    1. python3 -m pip install libusb-package
    Requirement already satisfied: libusb-package in c:\users\qingc\appdata\local\programs\python\python312\lib\site-packages (1.0.26.3)
    Requirement already satisfied: importlib_resources in c:\users\qingc\appdata\local\programs\python\python312\lib\site-packages (from libusb-package) (6.5.2)
    PS C:\nordic\rf_test>
    2. Programm the both hex files for netcore and appcore via nRF connect:
    21:18:09.560
    Reading readback protection status for Network core completed
    21:18:25.552
    Recovering Application core
    21:18:25.552
    Recovering Application core 0%
    21:18:26.782
    Recovering Application core 100%
    21:18:26.783
    Recovering Application core completed
    21:18:26.835
    Recovering Network core
    21:18:26.838
    Recovering Network core 0%
    21:18:39.198
    Recovering Network core 100%
    21:18:39.199
    Recovering Network core completed
    21:18:39.233
    Writing HEX to Application core
    21:18:39.566
    Writing HEX to Application core 33%
    21:18:39.566
    Writing HEX to Application core 33%
    21:18:39.573
    Writing HEX to Application core 67%
    21:18:39.574
    Writing HEX to Application core 44%
    21:18:39.574
    Writing HEX to Application core 40%
    21:18:39.574
    Writing HEX to Application core 47%
    21:18:39.574
    Writing HEX to Application core 53%
    21:18:39.574
    Writing HEX to Application core 60%
    21:18:39.585
    Writing HEX to Application core 67%
    21:18:39.585
    Writing HEX to Application core 55%
    21:18:39.585
    Writing HEX to Application core 44%
    21:18:39.658
    Writing HEX to Application core 55%
    21:18:39.681
    Writing HEX to Application core 67%
    21:18:39.681
    Writing HEX to Application core 100%
    21:18:39.682
    Writing HEX to Application core completed
    21:18:39.724
    Writing HEX to Network core
    21:18:39.974
    Writing HEX to Network core 33%
    21:18:39.974
    Writing HEX to Network core 33%
    21:18:39.983
    Writing HEX to Network core 67%
    21:18:39.994
    Writing HEX to Network core 44%
    21:18:39.994
    Writing HEX to Network core 40%
    21:18:39.994
    Writing HEX to Network core 47%
    21:18:39.994
    Writing HEX to Network core 53%
    21:18:40.006
    Writing HEX to Network core 60%
    21:18:40.016
    Writing HEX to Network core 67%
    21:18:40.016
    Writing HEX to Network core 55%
    21:18:40.016
    Writing HEX to Network core 44%
    21:18:40.275
    Writing HEX to Network core 55%
    21:18:40.283
    Writing HEX to Network core 67%
    21:18:40.283
    Writing HEX to Network core 100%
    21:18:40.284
    Writing HEX to Network core completed
    21:18:40.313
    Loading core information for Application core
    21:18:40.313
    Loading core information for Application core 0%
    21:18:40.314
    Update files regions according to Application core
    21:18:40.314
    Parse memory regions for file
    21:18:40.314
    Update files regions according to Network core
    21:18:40.314
    Parse memory regions for file
    21:18:40.321
    Loading core information for Application core 100%
    21:18:40.321
    Loading core information for Application core completed
    21:18:40.322
    Update files regions according to Application core
    21:18:40.322
    Parse memory regions for file
    21:18:40.322
    Update files regions according to Network core
    21:18:40.322
    Parse memory regions for file
    21:18:40.365
    Loading core information for Network core
    21:18:40.365
    Loading core information for Network core 0%
    21:18:40.367
    Update files regions according to Application core
    21:18:40.367
    Parse memory regions for file
    21:18:40.367
    Update files regions according to Network core
    21:18:40.367
    Parse memory regions for file
    21:18:40.373
    Loading core information for Network core 100%
    21:18:40.373
    Loading core information for Network core completed
    21:18:40.374
    Update files regions according to Application core
    21:18:40.374
    Parse memory regions for file
    21:18:40.374
    Update files regions according to Network core
    21:18:40.374
    Parse memory regions for file
    21:18:42.692
    Reading readback protection status for Application core
    21:18:42.693
    Reading readback protection status for Application core 0%
    21:18:42.695
    Reading readback protection status for Application core 100%
    21:18:42.695
    Application core protection status 'NRFDL_PROTECTION_STATUS_NONE'
    21:18:42.695
    Reading readback protection status for Application core completed
    21:18:42.710
    Reading readback protection status for Network core
    21:18:42.711
    Reading readback protection status for Network core 0%
    21:18:42.713
    Reading readback protection status for Network core 100%
    21:18:42.713
    Network core protection status 'NRFDL_PROTECTION_STATUS_NONE'
    21:18:42.713
    Reading readback protection status for Network core completed

    3. start the rf_test.py
    get the same result:
    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
  • I cannot reproduce your results:
    1. python3 -m pip install libusb-package
    Requirement already satisfied: libusb-package in c:\users\xxx\appdata\local\programs\python\python312\lib\site-packages (1.0.26.3)
    Requirement already satisfied: importlib_resources in c:\users\xxx\appdata\local\programs\python\python312\lib\site-packages (from libusb-package) (6.5.2)
    PS C:\nordic\rf_test>
    2. Programm the both hex files for netcore and appcore via nRF connect:
    21:18:09.560
    Reading readback protection status for Network core completed
    21:18:25.552
    Recovering Application core
    21:18:25.552
    Recovering Application core 0%
    21:18:26.782
    Recovering Application core 100%
    21:18:26.783
    Recovering Application core completed
    21:18:26.835
    Recovering Network core
    21:18:26.838
    Recovering Network core 0%
    21:18:39.198
    Recovering Network core 100%
    21:18:39.199
    Recovering Network core completed
    21:18:39.233
    Writing HEX to Application core
    21:18:39.566
    Writing HEX to Application core 33%
    21:18:39.566
    Writing HEX to Application core 33%
    21:18:39.573
    Writing HEX to Application core 67%
    21:18:39.574
    Writing HEX to Application core 44%
    21:18:39.574
    Writing HEX to Application core 40%
    21:18:39.574
    Writing HEX to Application core 47%
    21:18:39.574
    Writing HEX to Application core 53%
    21:18:39.574
    Writing HEX to Application core 60%
    21:18:39.585
    Writing HEX to Application core 67%
    21:18:39.585
    Writing HEX to Application core 55%
    21:18:39.585
    Writing HEX to Application core 44%
    21:18:39.658
    Writing HEX to Application core 55%
    21:18:39.681
    Writing HEX to Application core 67%
    21:18:39.681
    Writing HEX to Application core 100%
    21:18:39.682
    Writing HEX to Application core completed
    21:18:39.724
    Writing HEX to Network core
    21:18:39.974
    Writing HEX to Network core 33%
    21:18:39.974
    Writing HEX to Network core 33%
    21:18:39.983
    Writing HEX to Network core 67%
    21:18:39.994
    Writing HEX to Network core 44%
    21:18:39.994
    Writing HEX to Network core 40%
    21:18:39.994
    Writing HEX to Network core 47%
    21:18:39.994
    Writing HEX to Network core 53%
    21:18:40.006
    Writing HEX to Network core 60%
    21:18:40.016
    Writing HEX to Network core 67%
    21:18:40.016
    Writing HEX to Network core 55%
    21:18:40.016
    Writing HEX to Network core 44%
    21:18:40.275
    Writing HEX to Network core 55%
    21:18:40.283
    Writing HEX to Network core 67%
    21:18:40.283
    Writing HEX to Network core 100%
    21:18:40.284
    Writing HEX to Network core completed
    21:18:40.313
    Loading core information for Application core
    21:18:40.313
    Loading core information for Application core 0%
    21:18:40.314
    Update files regions according to Application core
    21:18:40.314
    Parse memory regions for file
    21:18:40.314
    Update files regions according to Network core
    21:18:40.314
    Parse memory regions for file
    21:18:40.321
    Loading core information for Application core 100%
    21:18:40.321
    Loading core information for Application core completed
    21:18:40.322
    Update files regions according to Application core
    21:18:40.322
    Parse memory regions for file
    21:18:40.322
    Update files regions according to Network core
    21:18:40.322
    Parse memory regions for file
    21:18:40.365
    Loading core information for Network core
    21:18:40.365
    Loading core information for Network core 0%
    21:18:40.367
    Update files regions according to Application core
    21:18:40.367
    Parse memory regions for file
    21:18:40.367
    Update files regions according to Network core
    21:18:40.367
    Parse memory regions for file
    21:18:40.373
    Loading core information for Network core 100%
    21:18:40.373
    Loading core information for Network core completed
    21:18:40.374
    Update files regions according to Application core
    21:18:40.374
    Parse memory regions for file
    21:18:40.374
    Update files regions according to Network core
    21:18:40.374
    Parse memory regions for file
    21:18:42.692
    Reading readback protection status for Application core
    21:18:42.693
    Reading readback protection status for Application core 0%
    21:18:42.695
    Reading readback protection status for Application core 100%
    21:18:42.695
    Application core protection status 'NRFDL_PROTECTION_STATUS_NONE'
    21:18:42.695
    Reading readback protection status for Application core completed
    21:18:42.710
    Reading readback protection status for Network core
    21:18:42.711
    Reading readback protection status for Network core 0%
    21:18:42.713
    Reading readback protection status for Network core 100%
    21:18:42.713
    Network core protection status 'NRFDL_PROTECTION_STATUS_NONE'
    21:18:42.713
    Reading readback protection status for Network core completed

    3. start the rf_test.py
    get the same result:
    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\xxx\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
    my questions:
    a. which USB port on nRF5340DK will be used for this communicaton? IMCU USB or nRF5340 USB?
    b. " Use Zadig to install the driver: https://zadig.akeo.ie/", which device shall I choose to install the driver?
    Best regards
    Danny
Related