LTE_BLE_Gateway failed "bt_hci_core: No HCI driver registered" on various SDK

Hi,

1. 

I've been trying to get the lte_ble_gateway / let_sensor_gateway example wroking on the nrf9160dk v1.1.3.  The example keeps failing at the No HCI driver msg.  I've tried SDK 2.9, 2.8 and 2.7.

*** Booting nRF Connect SDK v2.9.0-7787b2649840 ***
*** Using Zephyr OS v3.7.99-1f8f3dc29142 ***
[00:00:00.300,292] <inf> lte_ble_gw: LTE Sensor Gateway sample started
[00:00:00.300,506] <inf> lte_ble_gw: Initializing Bluetooth..
[00:00:00.300,506] <err> bt_hci_core: No HCI driver registered
[00:00:00.300,537] <err> lte_ble_gw: Bluetooth init failed (err -19)
[00:00:00.540,618] <inf> lte_ble_gw: Establishing LTE link (this may take some time) ...
+CEREG: 2,"0C0C","0C6A210F",7

+CSCON: 1

+CEREG: 5,"0C0C","0C6A210F",7,,,"11100000","11100000"

[00:00:03.706,207] <inf> nrf_cloud_info: Device ID: nrf-351901936259237
[00:00:03.706,756] <inf> nrf_cloud_info: IMEI: 351901936259237
[00:00:03.707,153] <inf> nrf_cloud_info: Modem FW: mfw_nrf9160_1.3.7
[00:00:03.707,214] <inf> nrf_cloud_info: Protocol: MQTT
[00:00:03.707,244] <inf> nrf_cloud_info: Download protocol: HTTPS
[00:00:03.707,244] <inf> nrf_cloud_info: Sec tag: 16842753
[00:00:03.707,275] <inf> nrf_cloud_info: Host name: mqtt.nrfcloud.com
[00:00:03.897,308] <err> nrf_cloud_transport: Could not connect to nRF Cloud MQTT Broker mqtt.nrfcloud.com, port: 45858. err: -111

-----------------------------

2.

I have also tried manually changing the overlay file and prj.conf per 

github.com/.../7a5d1c66e82dd200801ef161ca1523c3d59acf95

But recieved a new set of error msg.

[00:00:10.382,690] <err> os: r0/a1: 0x00000003 r1/a2: 0x00000000 r2/a3: 0x00000002
[00:00:10.382,720] <err> os: r3/a4: 0x00000003 r12/ip: 0x0000000c r14/lr: 0x00010173
[00:00:10.382,720] <err> os: xpsr: 0x01000000
[00:00:10.382,720] <err> os: Faulting instruction address (r15/pc): 0x00010180
[00:00:10.382,781] <err> os: >>> ZEPHYR FATAL ERROR 3: Kernel oops on CPU 0
[00:00:10.382,812] <err> os: Current thread: 0x2000f9a0 (unknown)
[00:00:10.438,446] <err> os: Halting system

hci_lpuart used in each SDK was generated and compiled with examples that was supplied per each SDK.

-------------------------

3.

Additionally, LTE connect does not seem to happen.  See Error msg

[00:00:03.897,308] <err> nrf_cloud_transport: Could not connect to nRF Cloud MQTT Broker mqtt.nrfcloud.com, port: 45858. err: -111

The nrf9160dk used was verified to be functional and can connect to the nrf cloud.  I can roll the FW back to factory image and get a proper connection.

----------------------

4.

For the SDK 2.6.2  BLE HCI did connect, but hangs at the below msg.  No cloud connection was observed.

00:01:47.016,448] <inf> lte_ble_gw: button_handler: button 1: 0, button 2: 0 switch 1: 1, switch 2: 1
*** Booting nRF Connect SDK v3.5.99-ncs1-3 ***
[00:00:00.295,898] <inf> lte_ble_gw: LTE Sensor Gateway sample started
[00:00:00.296,112] <inf> lte_ble_gw: Initializing Bluetooth..
[00:00:00.298,004] <wrn> lpuart: req pin low when expected high
[00:00:00.298,126] <err> lpuart: Empty receiver state:4
[00:00:00.547,760] <inf> lte_ble_gw: Establishing LTE link (this may take some time) ...
[00:00:01.000,213] <wrn> bt_hci_core: opcode 0x0000 pool id 3 pool 0x2000d01c != &hci_cmd_pool 0x2000d084
[00:00:01.042,297] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:01.042,327] <inf> bt_hci_core: HW Variant: nRF52x (0x0002)
[00:00:01.042,358] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
[00:00:01.050,994] <inf> bt_hci_core: Identity: F9:BC:FB:02:72:DD (random)
[00:00:01.051,055] <inf> bt_hci_core: HCI: version 5.4 (0x0d) revision 0x118f, manufacturer 0x0059
[00:00:01.051,086] <inf> bt_hci_core: LMP: version 5.4 (0x0d) subver 0x118f
[00:00:01.051,086] <inf> lte_ble_gw: Bluetooth ready
[00:00:01.058,471] <inf> lte_ble_gw: Scanning...
+CEREG: 2,"0C0C","0C6A210F",7

+CSCON: 1

+CEREG: 5,"0C0C","0C6A210F",7,,,"11100000","11100000"

[00:00:06.538,055] <err> nrf_cloud_transport: Failed to save session state: -2
[00:00:06.538,970] <inf> lte_ble_gw: Initializing GNSS
[00:00:06.544,616] <inf> lte_ble_gw: GNSS initialized
[00:00:06.548,004] <inf> lte_ble_gw: Requesting A-GNSS Data
[00:00:06.548,400] <inf> lte_ble_gw: GNSS started with interval 30 seconds, and timeout 15 seconds

---------------------------

Yes, lots of attempts and nothing to show for.  Any assistance would be greatly appreciated.  Is there a non-zephry solution similar to the old nrf5 dev system that one can use?  So far this has been a nightmare.

John Yeh

  • Hi John,

    There seem to be 2 potential options for resolving this issue.
    First option is for you to try to use lte_ble_gateway sample from NCS v2.8.0 and hci_lpuart sample from NCS v2.7.0. In this case, you should add the following changes to lte_ble_gateway sample

    --- a/samples/cellular/lte_ble_gateway/boards/nrf9160dk_nrf9160_ns.overlay
    +++ b/samples/cellular/lte_ble_gateway/boards/nrf9160dk_nrf9160_ns.overlay
    @@ -3,6 +3,7 @@
    / {
            chosen {
                    zephyr,bt-uart=&lpuart;
    +               zephyr,bt-hci = &bt_hci_uart;
            };
    };
    
    @@ -23,6 +24,11 @@
                    status = "okay";
                    req-pin = <21>; /* <&interface_to_nrf52840 3 0>; */
                    rdy-pin = <19>; /* <&interface_to_nrf52840 2 0>; */
    +
    +               bt_hci_uart: bt_hci_uart {
    +                       compatible = "zephyr,bt-hci-uart";
    +                       status = "okay";
    +               };
            };
    };
    
    diff --git a/samples/cellular/lte_ble_gateway/prj.conf b/samples/cellular/lte_ble_gateway/prj.conf
    index ad2bfa98cf..59e09b386a 100644
    --- a/samples/cellular/lte_ble_gateway/prj.conf
    +++ b/samples/cellular/lte_ble_gateway/prj.conf
    @@ -53,6 +53,8 @@ CONFIG_CONSOLE_GETCHAR=y
    # Enable Bluetooth stack and libraries
    CONFIG_BT=y
    CONFIG_BT_H4=y
    +CONFIG_BT_HCI=y
    +CONFIG_BT_CTLR=n
    CONFIG_BT_WAIT_NOP=y


    Second option is to apply a workaround for hci_lpuart in NCS v2.8.0 by removing disable-rx; in the sample's devicetree overlay for uart0. There is also a proper fix which you can find in this PR.

    Best regards,
    Dejan

  • Hi Dejan,

    Using 2.7 hci_lpuart  and 2.8 lte_gateway + overlay mod worked for clearing BLE stack error.  However, now I'm getting connecton to nRF Cloud MQTT error

    [00:00:04.119,506] <err> nrf_cloud_transport: Could not connect to nRF Cloud MQTT Broker mqtt.nrfcloud.com, port: 45858. err: -111
    +CSCON: 0

    Is there a tutorial on what to do next?  

    John

  • Hi John,

    jyehab said:
    [00:00:04.119,506] <err> nrf_cloud_transport: Could not connect to nRF Cloud MQTT Broker mqtt.nrfcloud.com, port: 45858. err: -111

    Error -111 means connection refused. This could happen due to incorrect root CA certificate. Can you provide full error log?

    Best regards,
    Dejan

Related