Different build configurations giving different Bluetooth service results

For background, a few years ago our company had a contractor build up a simple peripheral button and I wanted to use that hardware to learn nRF SDK for VS Code and the Zephyr BLE environment as an excuse to update that project.  All this to say the hardware has already been proven out and works.  I created a new project based off the Zephyr Hello World example and made 2 build configurations:
1. nRF52840 DK nrf52840

2. nRF52832_xxAA: This is the chip on our custom board

I verified the device tree with LEDs, button handling, and logging everything seems to work as expected.  I then setup my Bluetooth service and on the dev kit everything works exactly as expected.  Using the nRF Connect for mobile Sniffer this is what I see and expect when I connect to the device:

However, when I flash my second configuration (the custom board) everything works exactly as expected except the service when connected to the Sniffer.

It seems to be still using the service from the old project I am working to replace.  I have fully erased the board multiple times using both the nRF Extension and J-Flash tool.  I am completely at a loss as to where the device is getting this service from considering the rest of the code is operating exactly as the dev kit.

Further Info:

OS: Windows 10

Toolchain: v2.7.0

SDK: v2.7.0

Sniffer: nRF Connect for iOS on an iPhone 15

Logs from dev kit:

 

SEGGER J-Link V7.94e - Real time terminal output
SEGGER J-Link (unknown) V1.0, SN=683541205
Process: JLink.exe
*** Booting nRF Connect SDK v2.7.0-5cb85570ca43 ***
*** Using Zephyr OS v3.6.99-100befc70c74 ***
[00:00:00.000,335] <inf> Halo: Hello World! nrf52840dk

[00:00:00.000,610] <inf> ble: the halo service has 4 attributes

[00:00:00.000,732] <inf> bt_sdc_hci_driver: SoftDevice Controller build revision: 
                                            d6 da c7 ae 08 db 72 6f  2a a3 26 49 2a 4d a8 b3 |......ro *.&I*M..
                                            98 0e 07 7f                                      |....             
[00:00:00.002,990] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:00.003,021] <inf> bt_hci_core: HW Variant: nRF52x (0x0002)
[00:00:00.003,051] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 214.51162 Build 1926957230
[00:00:00.003,875] <inf> bt_hci_core: Identity: D9:1C:07:6B:58:0C (random)
[00:00:00.003,906] <inf> bt_hci_core: HCI: version 5.4 (0x0d) revision 0x11f[0m
m
[00:00:15.811,187] <inf> IO: Button 1 pressed.

[00:00:15.811,218] <inf> battery_read: Battery Voltage: 2990 mV

[00:00:29.945,251] <inf> IO: Button 1 pressed.

[00:00:29.945,312] <inf> battery_read: Battery Voltage: 2996 mV

[00:00:33.792,358] <inf> IO: 3s press detected... starting advertising

[00:00:37.838,928] <inf> ble: Connected

[00:00:37.838,958] <inf> ble: Connection parameters: interval *float* ms, latency 0 intervals, timeout 720 ms

[00:00:38.388,641] <wrn> bt_l2cap: Ignoring data for unknown channel ID 0x003a
[00:00:43.098,571] <inf> ble: Connection parameters updated: interval *float* ms, latency 0 intervals, timeout 4000 ms

[00:00:51.235,687] <inf> ble: Disconnected. Reason 19

Logs from custom board:

SEGGER J-Link V7.94e - Real time terminal output
SEGGER J-Link V11.0, SN=601009459
Process: JLink.exe
*** Booting nRF Connect SDK v2.7.0-5cb85570ca43 ***
*** Using Zephyr OS v3.6.99-100befc70c74 ***
[00:00:00.000,640] <inf> Halo: Hello World! board_7413_14_aa

[00:00:00.000,793] <inf> ble: the halo service has 4 attributes

[00:00:00.000,946] <inf> bt_sdc_hci_driver: SoftDevice Controller build revision: 
                                            d6 da c7 ae 08 db 72 6f  2a a3 26 49 2a 4d a8 b3 |......ro *.&I*M..
                                            98 0e 07 7f                                      |....             
[00:00:00.003,326] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:00.003,356] <inf> bt_hci_core: HW Variant: nRF52x (0x0002)
[00:00:00.003,387] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 214.51162 Build 1926957230
[00:00:00.004,241] <inf> bt_hci_core: Identity: DE:97:33:71:09:06 (random)
[00:00:00.004,272] <inf> bt_hci_core: HCI: version 5.4 (0x0d) revision 0x11fm
[00:00:10.520,477] <inf> IO: Button 1 pressed.

[00:00:10.520,507] <inf> battery_read: Battery Voltage: 2572 mV

[00:00:13.570,037] <inf> IO: Button 1 pressed.

[00:00:13.570,068] <inf> battery_read: Battery Voltage: 2569 mV

[00:00:17.960,968] <inf> IO: 3s press detected... starting advertising

[00:00:26.551,757] <inf> ble: Connected

[00:00:26.551,818] <inf> ble: Connection parameters: interval *float* ms, latency 0 intervals, timeout 720 ms

[00:00:27.124,908] <wrn> bt_l2cap: Ignoring data for unknown channel ID 0x003a
[00:00:31.804,931] <inf> ble: Connection parameters updated: interval *float* ms, latency 0 intervals, timeout 4000 ms

[00:00:39.882,019] <inf> ble: Disconnected. Reason 19

Parents
  • Hello,

    Is the previous device bonded with mobile/central? You can try to remove the bond from Bluetooth setting form mobile?

  • Kazi,

    Thank you for the reply! Your theory seems to be correct, but the suggested fix is not working.  Here is the Bluetooth settings for the mobile/central in both a connected and disconnected state.

    bluetooth settings when peripheral is connectedbluetooth settings when peripheral is disconnected

    As you can see it is not behaving as a bonded device that must be removed.  But to test your theory I used the nRF52840DK as a sniffer and got my expected results as seen here:
    dev kit as sniffer

    I then verified this with a second phone running the nRF Connect app and it works properly on that phone as well:
    New phone showing the correct behavior

    I appreciate your guidance to prove to me that everything on the Peripheral side is working as expected. Now I am curious how to fix the mobile/central side on the first phone.

Reply
  • Kazi,

    Thank you for the reply! Your theory seems to be correct, but the suggested fix is not working.  Here is the Bluetooth settings for the mobile/central in both a connected and disconnected state.

    bluetooth settings when peripheral is connectedbluetooth settings when peripheral is disconnected

    As you can see it is not behaving as a bonded device that must be removed.  But to test your theory I used the nRF52840DK as a sniffer and got my expected results as seen here:
    dev kit as sniffer

    I then verified this with a second phone running the nRF Connect app and it works properly on that phone as well:
    New phone showing the correct behavior

    I appreciate your guidance to prove to me that everything on the Peripheral side is working as expected. Now I am curious how to fix the mobile/central side on the first phone.

Children
No Data
Related