How to FOTA only mcuboot over BLE

Hi,

I'm trying to FOTA over BLE firmware of mcuboot using NRF52840DK.
The project is based on the sample from Intermediate course - Lesson 8, exercise 3 (without the steps relevant to nrf53 - steps 6 to 9).
also, the project uses the NSIB, and the external flash to host the mcuboot_secondary partition.

My main goal is to be able use the dfu_mcuboot.zip file in order to not mess with the management of which slot and which bin file to flash.

With that said, I tried follow some guidelines from this ticket, where someone replied: "What I found out is that the dfu_mcuboot.zip currently doesn't work with the Device Manager App."
this ticket is old, and I hope that till then things changed, but unfortunately I still can't use the zip file. (I did use the bin files and it works well, but that is not what I need).

First question: Regarding the above ticket's answer, is there another application besides Device Manager App that can handle the zip files?

Back to my project and my attempts:
I checked the manifest.json file (inside dfu_mcuboot.zip) on both "versions" (using the CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION, and by modifying BOOT_LOG_INF inside /ncs/v2.6.1/bootloader/mcuboot/boot/zephyr/main.c - to be able to see the change between versions)

the results was:

  1. First build -
    prj.conf file:
    CONFIG_GPIO=y
    CONFIG_SECURE_BOOT=y
    
    # Enable MCUboot
    CONFIG_BOOTLOADER_MCUBOOT=y
    
    # Enable MCUMGR 
    CONFIG_MCUMGR=y
    
    # Enable MCUMGR management for both OS and Images
    CONFIG_MCUMGR_GRP_OS=y
    CONFIG_MCUMGR_GRP_IMG=y
    
    # Configure dependencies for CONFIG_MCUMGR  
    CONFIG_NET_BUF=y
    CONFIG_ZCBOR=y
    CONFIG_CRC=y
    
    # Configure dependencies for CONFIG_MCUMGR_GRP_IMG  
    CONFIG_FLASH=y
    CONFIG_IMG_MANAGER=y
    
    # Configure dependencies for CONFIG_IMG_MANAGER  
    CONFIG_STREAM_FLASH=y
    CONFIG_FLASH_MAP=y
    
    CONFIG_MAIN_STACK_SIZE=2048
    
    CONFIG_PRINTK=y
    CONFIG_NORDIC_QSPI_NOR=y
    CONFIG_NORDIC_QSPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096
    
    
    
    CONFIG_SB_SIGNING_KEY_FILE="{mypath}/custom_priv.pem"
    CONFIG_BUILD_S1_VARIANT=y
    CONFIG_SB_NUM_VER_COUNTER_SLOTS=120
    CONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY=y
    
    
    
    
    # Configure MCUMGR transport to UART
    CONFIG_MCUMGR_TRANSPORT_UART=y
    
    # Configure dependencies for CONFIG_MCUMGR_TRANSPORT_UART 
    CONFIG_BASE64=y
    
    
    CONFIG_DFU_MULTI_IMAGE=y
    
    CONFIG_NCS_SAMPLES_DEFAULTS=y
    
    CONFIG_BT=y
    CONFIG_BT_PERIPHERAL=y
    CONFIG_BT_DEVICE_NAME="NRF52840DK_LBS"
    
    # Enable the LBS service
    CONFIG_BT_LBS=y
    CONFIG_BT_LBS_POLL_BUTTON=y
    CONFIG_DK_LIBRARY=y
    
    CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096
    
    CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y
    CONFIG_MCUMGR_TRANSPORT_BT_AUTHEN=n
    CONFIG_BT_SMP=y
    CONFIG_BT_DIS=y
    CONFIG_BT_DIS_PNP=n
    CONFIG_BT_BAS=y
    CONFIG_BT_HRS=y
    CONFIG_BT_DEVICE_APPEARANCE=833
    
    CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="0.1.5+5"

    mcuboot.conf:
    CONFIG_LOG=y
    CONFIG_MCUBOOT_LOG_LEVEL_INF=y
    
    CONFIG_UART_CONSOLE=y
    
    CONFIG_SINGLE_APPLICATION_SLOT=n
    
    CONFIG_BOOT_MAX_IMG_SECTORS=256
    
    CONFIG_FW_INFO_FIRMWARE_VERSION=1
    CONFIG_BOOT_SIGNATURE_TYPE_ECDSA_P256=y
    CONFIG_BOOT_SIGNATURE_KEY_FILE="{mypath}/priv.pem"
    
    CONFIG_NORDIC_QSPI_NOR=y

    dfu_mcboot.zip -> manifest.json:
    {
        "format-version": 0,
        "time": 1721127692,
        "files": [
            {
                "version_MCUBOOT": "0.1.5+5",
                "version_B0": "1",
                "type": "mcuboot",
                "board": "nrf52840dk_nrf52840",
                "soc": "nRF52840_QIAA",
                "load_address": 36864,
                "size": 38962,
                "file": "signed_by_mcuboot_and_b0_s0_image_update.bin",
                "modtime": 1721127692
            },
            {
                "version_MCUBOOT": "0.1.5+5",
                "version_B0": "1",
                "type": "mcuboot",
                "board": "nrf52840dk_nrf52840",
                "soc": "nRF52840_QIAA",
                "load_address": 90112,
                "size": 38963,
                "file": "signed_by_mcuboot_and_b0_s1_image_update.bin",
                "modtime": 1721127692
            }
        ],
        "name": "testFOTAmcuboot",
        "firmware": {
            "zephyr": {
                "revision": "b045fa5b336a77839a3c539d345a1b17655ba475-dirty"
            },
            "nrf": {
                "revision": "eef645c4a31201df353fdff5447262d7675fa1c1-dirty"
            }
        }
    }
  2. Second code - only changed CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="0.1.6+6" in prj.conf
    dfu_mcboot.zip -> manifest.json:
    {
        "format-version": 0,
        "time": 1721128086,
        "files": [
            {
                "version_MCUBOOT": "0.1.6+6",
                "version_B0": "1",
                "type": "mcuboot",
                "board": "nrf52840dk_nrf52840",
                "soc": "nRF52840_QIAA",
                "load_address": 36864,
                "size": 38962,
                "file": "signed_by_mcuboot_and_b0_s0_image_update.bin",
                "modtime": 1721128086
            },
            {
                "version_MCUBOOT": "0.1.6+6",
                "version_B0": "1",
                "type": "mcuboot",
                "board": "nrf52840dk_nrf52840",
                "soc": "nRF52840_QIAA",
                "load_address": 90112,
                "size": 38964,
                "file": "signed_by_mcuboot_and_b0_s1_image_update.bin",
                "modtime": 1721128086
            }
        ],
        "name": "testFOTAmcuboot",
        "firmware": {
            "zephyr": {
                "revision": "b045fa5b336a77839a3c539d345a1b17655ba475-dirty"
            },
            "nrf": {
                "revision": "eef645c4a31201df353fdff5447262d7675fa1c1-dirty"
            }
        }
    }

which makes me wonder if there is a problem/missing argument when building the project - all the attempts ended with manifest that is not aware of the old version.

Note that I tried multiple build ways:
1. new build configuration -> Pristine build for version 0.1.5+5, Pristine build for version 0.1.6+6
2. new build configuration -> Pristine build for version 0.1.5+5, normal build for version 0.1.6+6
Also, I tried to increment the CONFIG_FW_INFO_FIRMWARE_VERSION in mcuboot.conf, using the same build attempts as above.

All the attempts yield the same manifest behavior, and on the Device Manager App I got the next error when trying to FOTA - Hash not found (8)

screenshots from the Device Manager App:
after selecting the file:

after uploading:


Thanks,
Udi.

Parents
  • Hello,

    I wanted to inform you that I have been assigned to this case and have started investigating it. Could you please try using the nRF Connect mobile application to see if the same issue occurs? In the nRF Connect mobile application, you can find a DFU button in the top right corner after establishing a connection.

    Additionally, could you check the log from the nRF device and let me know if there are any error messages? Please share those logs as well.

    Kind regards,

    Abhijith

  • I tried to DFU with nRF Connect mobile application, and it's not working as well.

    I've added prints for the mcuboot_secondary partition memory - I had a bad feeling that it writes the new firmware to that partition (although it is not s0 or s1).
    with that print, I can see that it puts data into the mcuboot_secondary partition after the upload via mobile app.

    mcumgr image list:
    first command - after flash and build
    second command - after using nRF Connect application to upload dfu_mcuboot.zip

    Log file from nRF Connect app:

    nRF Connect, 2024-07-17
    NRF52840DK_LBS (MAC_ADDRESS)
    D	16:07:55.086	gatt.close()
    D	16:07:55.087	wait(200)
    V	16:07:55.291	Connecting to MAC_ADDRESS...
    D	16:07:55.291	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
    D	16:07:59.646	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
    D	16:07:59.667	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
    I	16:07:59.667	Connected to MAC_ADDRESS
    V	16:07:59.674	Discovering services...
    D	16:07:59.674	gatt.discoverServices()
    I	16:08:00.078	Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
    I	16:08:00.134	PHY updated (TX: LE 2M, RX: LE 2M)
    D	16:08:00.576	[Callback] Services discovered with status: 0
    I	16:08:00.576	Services discovered
    V	16:08:00.596	Generic Attribute (0x1801)
    - Service Changed [I] (0x2A05)
       Client Characteristic Configuration (0x2902)
    - Client Supported Features [R W] (0x2B29)
    - Database Hash [R] (0x2B2A)
    Generic Access (0x1800)
    - Device Name [R] (0x2A00)
    - Appearance [R] (0x2A01)
    - Peripheral Preferred Connection Parameters [R] (0x2A04)
    Battery Service (0x180F)
    - Battery Level [N R] (0x2A19)
       Client Characteristic Configuration (0x2902)
    Device Information (0x180A)
    - Model Number String [R] (0x2A24)
    - Manufacturer Name String [R] (0x2A29)
    Heart Rate (0x180D)
    - Heart Rate Measurement [N] (0x2A37)
       Client Characteristic Configuration (0x2902)
    - Body Sensor Location [R] (0x2A38)
    - Heart Rate Control Point [W] (0x2A39)
    Nordic LED Button Service (00001523-1212-efde-1523-785feabcd123)
    - Button [N R] (00001524-1212-efde-1523-785feabcd123)
       Client Characteristic Configuration (0x2902)
    - LED [W] (00001525-1212-efde-1523-785feabcd123)
    SMP Service (8d53dc1d-1db7-4cd3-868b-8a527460aa84)
    - SMP Characteristic [N WNR] (da2e7828-fbce-4e01-ae9e-261174997c48)
       Client Characteristic Configuration (0x2902)
    D	16:08:00.597	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
    D	16:08:00.598	gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true)
    D	16:08:00.599	gatt.setCharacteristicNotification(00002a37-0000-1000-8000-00805f9b34fb, true)
    D	16:08:00.600	gatt.setCharacteristicNotification(00001524-1212-efde-1523-785feabcd123, true)
    I	16:08:00.659	Connection parameters updated (interval: 48.75ms, latency: 0, timeout: 5000ms)
    I	16:08:04.947	Connection parameters updated (interval: 40.0ms, latency: 0, timeout: 420ms)
    V	16:08:18.717	[McuMgr] Connecting...
    D	16:08:18.722	[McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
    D	16:08:18.796	[McuMgr] [Callback] Connection state changed with status: 0 and new state: 2 (CONNECTED)
    I	16:08:18.800	[McuMgr] Connected to MAC_ADDRESS
    D	16:08:18.803	[McuMgr] wait(300)
    V	16:08:19.108	[McuMgr] Discovering services...
    D	16:08:19.114	[McuMgr] gatt.discoverServices()
    I	16:08:19.149	[McuMgr] Services discovered
    V	16:08:19.173	[McuMgr] Primary service found
    V	16:08:19.178	[McuMgr] Requesting new MTU...
    D	16:08:19.182	[McuMgr] gatt.requestMtu(498)
    I	16:08:19.226	[McuMgr] MTU changed to: 498
    D	16:08:19.231	[McuMgr] gatt.setCharacteristicNotification(da2e7828-fbce-4e01-ae9e-261174997c48, true)
    V	16:08:19.235	[McuMgr] Enabling notifications for da2e7828-fbce-4e01-ae9e-261174997c48
    D	16:08:19.237	[McuMgr] descriptor.setValue(0x01-00)
    D	16:08:19.240	[McuMgr] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb)
    I	16:08:19.381	[McuMgr] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
    I	16:08:19.386	[McuMgr] Notifications enabled
    V	16:08:19.395	[McuMgr] Waiting for value change...
    V	16:08:19.399	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	16:08:19.404	[McuMgr] characteristic.setValue(0x000000010000FF06A0)
    D	16:08:19.407	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	16:08:19.411	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	16:08:19.421	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	16:08:19.501	[McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-19-00-00-FF-06-BF-68-62-75-66-5F-73-69-7A-65-19-09-AB-69-62-75-66-5F-63-6F-75-6E-74-04-FF
    I	16:08:19.506	[McuMgr] Wait for value changed complete
    A	16:08:19.514	[McuMgr] Received Header (Version: 0, Op: 1, Flags: 0, Len: 25, Group: 0, Seq: 255, Command: 6) CBOR {"buf_size":2475,"buf_count":4}
    I	16:08:19.529	[McuMgr] SMP reassembly supported with buffer size: 2475 bytes and count: 4
    A	16:08:19.536	[McuMgr] Sending (10 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 2, Group: 0, Seq: 0, Command: 8) CBOR {}
    V	16:08:19.541	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	16:08:19.545	[McuMgr] characteristic.setValue(0x0800000200000008BFFF)
    D	16:08:19.549	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	16:08:19.553	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	16:08:19.592	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	16:08:19.659	[McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 09-00-00-15-00-00-00-08-BF-6A-62-6F-6F-74-6C-6F-61-64-65-72-67-4D-43-55-62-6F-6F-74-FF
    A	16:08:19.662	[McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 21, Group: 0, Seq: 0, Command: 8) CBOR {"bootloader":"MCUboot"}
    A	16:08:19.668	[McuMgr] Sending (21 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 13, Group: 0, Seq: 1, Command: 8) CBOR {"query":"mode"}
    V	16:08:19.671	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	16:08:19.674	[McuMgr] characteristic.setValue(0x0800000D00000108BF657175657279646D6F6465FF)
    D	16:08:19.676	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	16:08:19.678	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	16:08:19.695	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	16:08:19.833	[McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 09-00-00-08-00-00-01-08-BF-64-6D-6F-64-65-03-FF
    A	16:08:19.842	[McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 8, Group: 0, Seq: 1, Command: 8) CBOR {"mode":3}
    I	16:08:19.864	Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
    I	16:08:19.893	[McuMgr] Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
    A	16:08:19.906	[McuMgr] Sending (10 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 2, Group: 1, Seq: 2, Command: 0) CBOR {}
    V	16:08:19.909	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	16:08:19.911	[McuMgr] characteristic.setValue(0x0800000200010200BFFF)
    D	16:08:19.913	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	16:08:19.915	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	16:08:19.942	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	16:08:19.970	[McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 09-00-00-86-00-01-02-00-BF-66-69-6D-61-67-65-73-9F-BF-64-73-6C-6F-74-00-67-76-65-72-73-69-6F-6E-65-31-2E-30-2E-30-64-68-61-73-68-58-20-3B-A1-D9-70-06-48-24-68-A4-DB-99-41-9C-F6-BC-FA-86-69-9D-D2-E0-22-C6-CD-FE-68-44-52-8F-A6-7F-1C-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F5-66-61-63-74-69-76-65-F5-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-FF-6B-73-70-6C-69-74-53-74-61-74-75-73-00-FF
    A	16:08:19.975	[McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 134, Group: 1, Seq: 2, Command: 0) CBOR {"images":[{"slot":0,"version":"1.0.0","hash":"O6HZcAZIJGik25lBnPa8+oZpndLgIsbN/mhEUo+mfxw=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false}],"splitStatus":0}
    V	16:08:19.990	[McuMgr] Uploading firmware...
    A	16:08:21.913	[McuMgr] 36562 bytes sent in 1698 ms (21.53 kB/s)
    A	16:08:23.497	[McuMgr] 36563 bytes sent in 1370 ms (26.69 kB/s)
    A	16:08:23.540	[McuMgr] Sending (10 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 2, Group: 63, Seq: 35, Command: 0) CBOR {}
    V	16:08:23.547	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	16:08:23.550	[McuMgr] characteristic.setValue(0x0A000002003F2300BFFF)
    D	16:08:23.554	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	16:08:23.558	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	16:08:23.568	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	16:08:23.593	[McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-06-00-3F-23-00-BF-62-72-63-08-FF
    A	16:08:23.640	[McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 6, Group: 63, Seq: 35, Command: 0) CBOR {"rc":8}
    W	16:08:23.646	[McuMgr] Error: NOT_SUPPORTED (8)
    V	16:08:23.662	[McuMgr] New state: TEST
    A	16:08:23.667	[McuMgr] Sending (58 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 50, Group: 1, Seq: 36, Command: 0) CBOR {"confirm":false,"hash":"AWxMOBPlaUJJ7uzVaiRd8hPNjSdDFczrTfF+aYJCTlQ="}
    V	16:08:23.671	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	16:08:23.674	[McuMgr] characteristic.setValue(0x0A00003200012400BF67636F6E6669726DF464686173685820016C4C3813E5694249EEECD56A245DF213CD8D274315CCEB4DF17E6982424E54FF)
    D	16:08:23.676	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	16:08:23.678	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	16:08:23.688	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	16:08:23.726	[McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-13-00-01-24-00-BF-63-65-72-72-BF-65-67-72-6F-75-70-01-62-72-63-08-FF-FF
    A	16:08:23.736	[McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 19, Group: 1, Seq: 36, Command: 0) CBOR {"err":{"group":1,"rc":8}}
    V	16:08:23.750	[McuMgr] Disconnecting...
    D	16:08:23.754	[McuMgr] gatt.disconnect()
    D	16:08:23.778	[McuMgr] [Callback] Connection state changed with status: 0 and new state: 0 (DISCONNECTED)
    I	16:08:23.781	[McuMgr] Disconnected
    D	16:08:23.785	[McuMgr] gatt.close()
    I	16:08:28.838	Connection parameters updated (interval: 40.0ms, latency: 0, timeout: 420ms)
    

    Please note that I made change to the application too (only changed CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="4.0.0+0")

    Please also help me understand why the mcuboot_secondary partition changes when it should be written to s1.
    logs from the board:

    after build and flash via vscode-

    *** Booting nRF Connect SDK v3.5.99-ncs1-1 ***
    Attempting to boot slot 0.
    Attempting to boot from address 0x9200.
    Verifying signature against key 0.
    Hash: 0x12...7d
    Firmware signature verified.
    Firmware version 1
    *** Booting nRF Connect SDK v3.5.99-ncs1-1 ***
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Image index: 0, Swap type: none
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Image index: 1, Swap type: none
    I: Bootloader chainload address offset: 0x23000
    �*** Booting nRF Connect SDK v3.5.99-ncs1-1 ***
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    Starting Bluetooth Peripheral LBS example
    I: SoftDevice Controller build revision: 
    I: 36 f0 e5 0e 87 68 48 fb |6....hH.
    I: 02 fd 9f 82 cc 32 e5 7b |.....2.{
    I: 91 b1 5c ed             |..\.    
    I: HW Platform: Nordic Semiconductor (0x0002)
    I: HW Variant: nRF52x (0x0002)
    I: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
    I: Identity: E1:3A:77:B2:AE:2F (random)
    I: HCI: version 5.4 (0x0d) revision 0x118f, manufacturer 0x0059
    I: LMP: version 5.4 (0x0d) subver 0x118f
    Bluetooth initialized
    Advertising successfully started

    after trying to upload via mobile app-
    Connected
    I: Image index: 0, Swap type: none
    I: Image index: 0, Swap type: none
    I: Image index: 0, Swap type: none
    I: Image index: 0, Swap type: none
    I: Image index: 0, Swap type: none

    then reset the board:
    *** Booting nRF Connect SDK v3.5.99-ncs1-1 ***
    Attempting to boot slot 0.
    Attempting to boot from address 0x9200.
    Verifying signature against key 0.
    Hash: 0x12...7d
    Firmware signature verified.
    Firmware version 1
    *** Booting nRF Connect SDK v3.5.99-ncs1-1 ***
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Image index: 1, Swap type: none
    I: Bootloader chainload address offset: 0x23000
    �*** Booting nRF Connect SDK v3.5.99-ncs1-1 ***
    0x3D 0xB8 0xF3 0x96 0x00 0x00 0x00 0x00
    0x00 0x02 0x00 0x00 0xA0 0x95 0x00 0x00
    0x00 0x00 0x00 0x00 0x04 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xC0 0x5D 0x00 0x20 0xA9 0x87 0x01 0x00
    0x29 0xDD 0x01 0x00 0x95 0x87 0x01 0x00
    0x95 0x87 0x01 0x00 0x95 0x87 0x01 0x00
    0x95 0x87 0x01 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0xA9 0x88 0x01 0x00
    0x95 0x87 0x01 0x00 0x00 0x00 0x00 0x00
    0x95 0x87 0x01 0x00 0x95 0x87 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0xDE 0xE6 0x1E 0x28 0x4C 0xBB 0xCE 0x8F
    0x02 0x34 0x00 0x00 0x3C 0x00 0x00 0x00
    0xF0 0x94 0x00 0x00 0x05 0x00 0x00 0x00
    0x00 0x62 0x01 0x00 0x00 0x62 0x01 0x00
    0xFF 0xFF 0x02 0x91 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x53 0xB9 0x4A 0xB9
    0x00 0x29 0x08 0xBF 0x00 0x28 0x1C 0xBF
    0x4F 0xF0 0xFF 0x31 0x4F 0xF0 0xFF 0x30
    0x00 0xF0 0x0C 0xB8 0xAD 0xF1 0x08 0x0C
    0x6D 0xE9 0x04 0xCE 0x00 0xF0 0x08 0xF8
    0xDD 0xF8 0x04 0xE0 0xDD 0xE9 0x02 0x23
    0x04 0xB0 0x70 0x47 0x70 0x47 0x00 0xBF
    0x2D 0xE9 0xF0 0x47 0x86 0x46 0x8C 0x46
    0x08 0x46 0x08 0x9E 0x15 0x46 0x74 0x46
    0x19 0x46 0x00 0x2B 0x40 0xF0 0xC2 0x80
    0x85 0x42 0xB2 0xFA 0x82 0xF2 0x45 0xD9
    0x4A 0xB1 0xC2 0xF1 0x20 0x03 0x00 0xFA
    0x02 0xFC 0x2E 0xFA 0x03 0xF3 0x95 0x40
    0x43 0xEA 0x0C 0x0C 0x94 0x40 0x4F 0xEA
    0x15 0x4E 0xA8 0xB2 0xBC 0xFB 0xFE 0xF8
    Starting Bluetooth Peripheral LBS example
    I: SoftDevice Controller build revision: 
    I: 36 f0 e5 0e 87 68 48 fb |6....hH.
    I: 02 fd 9f 82 cc 32 e5 7b |.....2.{
    I: 91 b1 5c ed             |..\.    
    I: HW Platform: Nordic Semiconductor (0x0002)
    I: HW Variant: nRF52x (0x0002)
    I: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
    I: Identity: E1:3A:77:B2:AE:2F (random)
    I: HCI: version 5.4 (0x0d) revision 0x118f, manufacturer 0x0059
    I: LMP: version 5.4 (0x0d) subver 0x118f
    Bluetooth initialized
    Advertising successfully started

Reply
  • I tried to DFU with nRF Connect mobile application, and it's not working as well.

    I've added prints for the mcuboot_secondary partition memory - I had a bad feeling that it writes the new firmware to that partition (although it is not s0 or s1).
    with that print, I can see that it puts data into the mcuboot_secondary partition after the upload via mobile app.

    mcumgr image list:
    first command - after flash and build
    second command - after using nRF Connect application to upload dfu_mcuboot.zip

    Log file from nRF Connect app:

    nRF Connect, 2024-07-17
    NRF52840DK_LBS (MAC_ADDRESS)
    D	16:07:55.086	gatt.close()
    D	16:07:55.087	wait(200)
    V	16:07:55.291	Connecting to MAC_ADDRESS...
    D	16:07:55.291	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
    D	16:07:59.646	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
    D	16:07:59.667	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
    I	16:07:59.667	Connected to MAC_ADDRESS
    V	16:07:59.674	Discovering services...
    D	16:07:59.674	gatt.discoverServices()
    I	16:08:00.078	Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
    I	16:08:00.134	PHY updated (TX: LE 2M, RX: LE 2M)
    D	16:08:00.576	[Callback] Services discovered with status: 0
    I	16:08:00.576	Services discovered
    V	16:08:00.596	Generic Attribute (0x1801)
    - Service Changed [I] (0x2A05)
       Client Characteristic Configuration (0x2902)
    - Client Supported Features [R W] (0x2B29)
    - Database Hash [R] (0x2B2A)
    Generic Access (0x1800)
    - Device Name [R] (0x2A00)
    - Appearance [R] (0x2A01)
    - Peripheral Preferred Connection Parameters [R] (0x2A04)
    Battery Service (0x180F)
    - Battery Level [N R] (0x2A19)
       Client Characteristic Configuration (0x2902)
    Device Information (0x180A)
    - Model Number String [R] (0x2A24)
    - Manufacturer Name String [R] (0x2A29)
    Heart Rate (0x180D)
    - Heart Rate Measurement [N] (0x2A37)
       Client Characteristic Configuration (0x2902)
    - Body Sensor Location [R] (0x2A38)
    - Heart Rate Control Point [W] (0x2A39)
    Nordic LED Button Service (00001523-1212-efde-1523-785feabcd123)
    - Button [N R] (00001524-1212-efde-1523-785feabcd123)
       Client Characteristic Configuration (0x2902)
    - LED [W] (00001525-1212-efde-1523-785feabcd123)
    SMP Service (8d53dc1d-1db7-4cd3-868b-8a527460aa84)
    - SMP Characteristic [N WNR] (da2e7828-fbce-4e01-ae9e-261174997c48)
       Client Characteristic Configuration (0x2902)
    D	16:08:00.597	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
    D	16:08:00.598	gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true)
    D	16:08:00.599	gatt.setCharacteristicNotification(00002a37-0000-1000-8000-00805f9b34fb, true)
    D	16:08:00.600	gatt.setCharacteristicNotification(00001524-1212-efde-1523-785feabcd123, true)
    I	16:08:00.659	Connection parameters updated (interval: 48.75ms, latency: 0, timeout: 5000ms)
    I	16:08:04.947	Connection parameters updated (interval: 40.0ms, latency: 0, timeout: 420ms)
    V	16:08:18.717	[McuMgr] Connecting...
    D	16:08:18.722	[McuMgr] gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, LE 1M)
    D	16:08:18.796	[McuMgr] [Callback] Connection state changed with status: 0 and new state: 2 (CONNECTED)
    I	16:08:18.800	[McuMgr] Connected to MAC_ADDRESS
    D	16:08:18.803	[McuMgr] wait(300)
    V	16:08:19.108	[McuMgr] Discovering services...
    D	16:08:19.114	[McuMgr] gatt.discoverServices()
    I	16:08:19.149	[McuMgr] Services discovered
    V	16:08:19.173	[McuMgr] Primary service found
    V	16:08:19.178	[McuMgr] Requesting new MTU...
    D	16:08:19.182	[McuMgr] gatt.requestMtu(498)
    I	16:08:19.226	[McuMgr] MTU changed to: 498
    D	16:08:19.231	[McuMgr] gatt.setCharacteristicNotification(da2e7828-fbce-4e01-ae9e-261174997c48, true)
    V	16:08:19.235	[McuMgr] Enabling notifications for da2e7828-fbce-4e01-ae9e-261174997c48
    D	16:08:19.237	[McuMgr] descriptor.setValue(0x01-00)
    D	16:08:19.240	[McuMgr] gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb)
    I	16:08:19.381	[McuMgr] Data written to descr. 00002902-0000-1000-8000-00805f9b34fb
    I	16:08:19.386	[McuMgr] Notifications enabled
    V	16:08:19.395	[McuMgr] Waiting for value change...
    V	16:08:19.399	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	16:08:19.404	[McuMgr] characteristic.setValue(0x000000010000FF06A0)
    D	16:08:19.407	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	16:08:19.411	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	16:08:19.421	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	16:08:19.501	[McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 01-00-00-19-00-00-FF-06-BF-68-62-75-66-5F-73-69-7A-65-19-09-AB-69-62-75-66-5F-63-6F-75-6E-74-04-FF
    I	16:08:19.506	[McuMgr] Wait for value changed complete
    A	16:08:19.514	[McuMgr] Received Header (Version: 0, Op: 1, Flags: 0, Len: 25, Group: 0, Seq: 255, Command: 6) CBOR {"buf_size":2475,"buf_count":4}
    I	16:08:19.529	[McuMgr] SMP reassembly supported with buffer size: 2475 bytes and count: 4
    A	16:08:19.536	[McuMgr] Sending (10 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 2, Group: 0, Seq: 0, Command: 8) CBOR {}
    V	16:08:19.541	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	16:08:19.545	[McuMgr] characteristic.setValue(0x0800000200000008BFFF)
    D	16:08:19.549	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	16:08:19.553	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	16:08:19.592	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	16:08:19.659	[McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 09-00-00-15-00-00-00-08-BF-6A-62-6F-6F-74-6C-6F-61-64-65-72-67-4D-43-55-62-6F-6F-74-FF
    A	16:08:19.662	[McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 21, Group: 0, Seq: 0, Command: 8) CBOR {"bootloader":"MCUboot"}
    A	16:08:19.668	[McuMgr] Sending (21 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 13, Group: 0, Seq: 1, Command: 8) CBOR {"query":"mode"}
    V	16:08:19.671	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	16:08:19.674	[McuMgr] characteristic.setValue(0x0800000D00000108BF657175657279646D6F6465FF)
    D	16:08:19.676	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	16:08:19.678	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	16:08:19.695	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	16:08:19.833	[McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 09-00-00-08-00-00-01-08-BF-64-6D-6F-64-65-03-FF
    A	16:08:19.842	[McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 8, Group: 0, Seq: 1, Command: 8) CBOR {"mode":3}
    I	16:08:19.864	Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
    I	16:08:19.893	[McuMgr] Connection parameters updated (interval: 11.25ms, latency: 0, timeout: 420ms)
    A	16:08:19.906	[McuMgr] Sending (10 bytes) Header (Version: 1, Op: 0, Flags: 0, Len: 2, Group: 1, Seq: 2, Command: 0) CBOR {}
    V	16:08:19.909	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	16:08:19.911	[McuMgr] characteristic.setValue(0x0800000200010200BFFF)
    D	16:08:19.913	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	16:08:19.915	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	16:08:19.942	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	16:08:19.970	[McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 09-00-00-86-00-01-02-00-BF-66-69-6D-61-67-65-73-9F-BF-64-73-6C-6F-74-00-67-76-65-72-73-69-6F-6E-65-31-2E-30-2E-30-64-68-61-73-68-58-20-3B-A1-D9-70-06-48-24-68-A4-DB-99-41-9C-F6-BC-FA-86-69-9D-D2-E0-22-C6-CD-FE-68-44-52-8F-A6-7F-1C-68-62-6F-6F-74-61-62-6C-65-F5-67-70-65-6E-64-69-6E-67-F4-69-63-6F-6E-66-69-72-6D-65-64-F5-66-61-63-74-69-76-65-F5-69-70-65-72-6D-61-6E-65-6E-74-F4-FF-FF-6B-73-70-6C-69-74-53-74-61-74-75-73-00-FF
    A	16:08:19.975	[McuMgr] Received Header (Version: 1, Op: 1, Flags: 0, Len: 134, Group: 1, Seq: 2, Command: 0) CBOR {"images":[{"slot":0,"version":"1.0.0","hash":"O6HZcAZIJGik25lBnPa8+oZpndLgIsbN/mhEUo+mfxw=","bootable":true,"pending":false,"confirmed":true,"active":true,"permanent":false}],"splitStatus":0}
    V	16:08:19.990	[McuMgr] Uploading firmware...
    A	16:08:21.913	[McuMgr] 36562 bytes sent in 1698 ms (21.53 kB/s)
    A	16:08:23.497	[McuMgr] 36563 bytes sent in 1370 ms (26.69 kB/s)
    A	16:08:23.540	[McuMgr] Sending (10 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 2, Group: 63, Seq: 35, Command: 0) CBOR {}
    V	16:08:23.547	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	16:08:23.550	[McuMgr] characteristic.setValue(0x0A000002003F2300BFFF)
    D	16:08:23.554	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	16:08:23.558	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	16:08:23.568	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	16:08:23.593	[McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-06-00-3F-23-00-BF-62-72-63-08-FF
    A	16:08:23.640	[McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 6, Group: 63, Seq: 35, Command: 0) CBOR {"rc":8}
    W	16:08:23.646	[McuMgr] Error: NOT_SUPPORTED (8)
    V	16:08:23.662	[McuMgr] New state: TEST
    A	16:08:23.667	[McuMgr] Sending (58 bytes) Header (Version: 1, Op: 2, Flags: 0, Len: 50, Group: 1, Seq: 36, Command: 0) CBOR {"confirm":false,"hash":"AWxMOBPlaUJJ7uzVaiRd8hPNjSdDFczrTfF+aYJCTlQ="}
    V	16:08:23.671	[McuMgr] Writing characteristic da2e7828-fbce-4e01-ae9e-261174997c48 (WRITE COMMAND)
    D	16:08:23.674	[McuMgr] characteristic.setValue(0x0A00003200012400BF67636F6E6669726DF464686173685820016C4C3813E5694249EEECD56A245DF213CD8D274315CCEB4DF17E6982424E54FF)
    D	16:08:23.676	[McuMgr] characteristic.setWriteType(WRITE COMMAND)
    D	16:08:23.678	[McuMgr] gatt.writeCharacteristic(da2e7828-fbce-4e01-ae9e-261174997c48)
    I	16:08:23.688	[McuMgr] Data written to da2e7828-fbce-4e01-ae9e-261174997c48
    I	16:08:23.726	[McuMgr] Notification received from da2e7828-fbce-4e01-ae9e-261174997c48, value: (0x) 0B-00-00-13-00-01-24-00-BF-63-65-72-72-BF-65-67-72-6F-75-70-01-62-72-63-08-FF-FF
    A	16:08:23.736	[McuMgr] Received Header (Version: 1, Op: 3, Flags: 0, Len: 19, Group: 1, Seq: 36, Command: 0) CBOR {"err":{"group":1,"rc":8}}
    V	16:08:23.750	[McuMgr] Disconnecting...
    D	16:08:23.754	[McuMgr] gatt.disconnect()
    D	16:08:23.778	[McuMgr] [Callback] Connection state changed with status: 0 and new state: 0 (DISCONNECTED)
    I	16:08:23.781	[McuMgr] Disconnected
    D	16:08:23.785	[McuMgr] gatt.close()
    I	16:08:28.838	Connection parameters updated (interval: 40.0ms, latency: 0, timeout: 420ms)
    

    Please note that I made change to the application too (only changed CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION="4.0.0+0")

    Please also help me understand why the mcuboot_secondary partition changes when it should be written to s1.
    logs from the board:

    after build and flash via vscode-

    *** Booting nRF Connect SDK v3.5.99-ncs1-1 ***
    Attempting to boot slot 0.
    Attempting to boot from address 0x9200.
    Verifying signature against key 0.
    Hash: 0x12...7d
    Firmware signature verified.
    Firmware version 1
    *** Booting nRF Connect SDK v3.5.99-ncs1-1 ***
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Image index: 0, Swap type: none
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Image index: 1, Swap type: none
    I: Bootloader chainload address offset: 0x23000
    �*** Booting nRF Connect SDK v3.5.99-ncs1-1 ***
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    Starting Bluetooth Peripheral LBS example
    I: SoftDevice Controller build revision: 
    I: 36 f0 e5 0e 87 68 48 fb |6....hH.
    I: 02 fd 9f 82 cc 32 e5 7b |.....2.{
    I: 91 b1 5c ed             |..\.    
    I: HW Platform: Nordic Semiconductor (0x0002)
    I: HW Variant: nRF52x (0x0002)
    I: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
    I: Identity: E1:3A:77:B2:AE:2F (random)
    I: HCI: version 5.4 (0x0d) revision 0x118f, manufacturer 0x0059
    I: LMP: version 5.4 (0x0d) subver 0x118f
    Bluetooth initialized
    Advertising successfully started

    after trying to upload via mobile app-
    Connected
    I: Image index: 0, Swap type: none
    I: Image index: 0, Swap type: none
    I: Image index: 0, Swap type: none
    I: Image index: 0, Swap type: none
    I: Image index: 0, Swap type: none

    then reset the board:
    *** Booting nRF Connect SDK v3.5.99-ncs1-1 ***
    Attempting to boot slot 0.
    Attempting to boot from address 0x9200.
    Verifying signature against key 0.
    Hash: 0x12...7d
    Firmware signature verified.
    Firmware version 1
    *** Booting nRF Connect SDK v3.5.99-ncs1-1 ***
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Image index: 1, Swap type: none
    I: Bootloader chainload address offset: 0x23000
    �*** Booting nRF Connect SDK v3.5.99-ncs1-1 ***
    0x3D 0xB8 0xF3 0x96 0x00 0x00 0x00 0x00
    0x00 0x02 0x00 0x00 0xA0 0x95 0x00 0x00
    0x00 0x00 0x00 0x00 0x04 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
    0xC0 0x5D 0x00 0x20 0xA9 0x87 0x01 0x00
    0x29 0xDD 0x01 0x00 0x95 0x87 0x01 0x00
    0x95 0x87 0x01 0x00 0x95 0x87 0x01 0x00
    0x95 0x87 0x01 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0xA9 0x88 0x01 0x00
    0x95 0x87 0x01 0x00 0x00 0x00 0x00 0x00
    0x95 0x87 0x01 0x00 0x95 0x87 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x6D 0x8A 0x01 0x00 0x6D 0x8A 0x01 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0xDE 0xE6 0x1E 0x28 0x4C 0xBB 0xCE 0x8F
    0x02 0x34 0x00 0x00 0x3C 0x00 0x00 0x00
    0xF0 0x94 0x00 0x00 0x05 0x00 0x00 0x00
    0x00 0x62 0x01 0x00 0x00 0x62 0x01 0x00
    0xFF 0xFF 0x02 0x91 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x00 0x00 0x00 0x00 0x53 0xB9 0x4A 0xB9
    0x00 0x29 0x08 0xBF 0x00 0x28 0x1C 0xBF
    0x4F 0xF0 0xFF 0x31 0x4F 0xF0 0xFF 0x30
    0x00 0xF0 0x0C 0xB8 0xAD 0xF1 0x08 0x0C
    0x6D 0xE9 0x04 0xCE 0x00 0xF0 0x08 0xF8
    0xDD 0xF8 0x04 0xE0 0xDD 0xE9 0x02 0x23
    0x04 0xB0 0x70 0x47 0x70 0x47 0x00 0xBF
    0x2D 0xE9 0xF0 0x47 0x86 0x46 0x8C 0x46
    0x08 0x46 0x08 0x9E 0x15 0x46 0x74 0x46
    0x19 0x46 0x00 0x2B 0x40 0xF0 0xC2 0x80
    0x85 0x42 0xB2 0xFA 0x82 0xF2 0x45 0xD9
    0x4A 0xB1 0xC2 0xF1 0x20 0x03 0x00 0xFA
    0x02 0xFC 0x2E 0xFA 0x03 0xF3 0x95 0x40
    0x43 0xEA 0x0C 0x0C 0x94 0x40 0x4F 0xEA
    0x15 0x4E 0xA8 0xB2 0xBC 0xFB 0xFE 0xF8
    Starting Bluetooth Peripheral LBS example
    I: SoftDevice Controller build revision: 
    I: 36 f0 e5 0e 87 68 48 fb |6....hH.
    I: 02 fd 9f 82 cc 32 e5 7b |.....2.{
    I: 91 b1 5c ed             |..\.    
    I: HW Platform: Nordic Semiconductor (0x0002)
    I: HW Variant: nRF52x (0x0002)
    I: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
    I: Identity: E1:3A:77:B2:AE:2F (random)
    I: HCI: version 5.4 (0x0d) revision 0x118f, manufacturer 0x0059
    I: LMP: version 5.4 (0x0d) subver 0x118f
    Bluetooth initialized
    Advertising successfully started

Children
  • I made more tests, this time i tracked the s0 and s1 data using JLinkExe.

    i will split the tests for 2 sections.
    First set - using the nRF Connect mobile app:

    1. Build and flash clean application, saving s0 and s1 as binaries using JLinkExe savebin (e.g. savebin s1.bin 0x16200 49152)
    2. convert them to hex using xxd.
    3. increment CONFIG_FW_INFO_FIRMWARE_VERSION and made minor change in mcuboot main.c
    4. build it, and using DFU on nRF Connect application with dfu_mcuboot.zip file
    5. again, saving s0 and s1 as binaries using JLinkExe savebin and convert them to HexI compared the files (s0 from step 2 with s0 from step 5, and same for s1), they was exactly the same.
      *Note that "mcuboot_secondary" data was change after the dfu process.

    Second set - using mcumgr from terminal:

    1. Build and flash clean application, saving s0 and s1 as binaries using JLinkExe savebin (e.g. savebin s1.bin 0x16200 49152)
    2. convert them to hex using xxd.
    3. increment CONFIG_FW_INFO_FIRMWARE_VERSION and made minor change in mcuboot main.c
    4. build it, and now using only signed_by_mcuboot_and_b0_s0_image_update.bin
    5. The majority of the following steps are redundant but I did them for any case because I'm not sure how mcumgr works:
      1. mcumgr -c testDK image list
        result:
        Images:
         image=0 slot=0
            version: 1.0.0
            bootable: true
            flags: active confirmed
            hash: aab3f9ced75b15b2de8bcd79181db246cc5311c684bb9b7f977f42837d6847b7
        Split status: N/A (0)
        
      2. mcumgr -c testDK image upload build/zephyr/signed_by_mcuboot_and_b0_s1_image_update.bin
      3. mcumgr -c testDK image list
        result:
        Images:
         image=0 slot=0
            version: 1.0.0
            bootable: true
            flags: active confirmed
            hash: aab3f9ced75b15b2de8bcd79181db246cc5311c684bb9b7f977f42837d6847b7
         image=0 slot=1
            version: 2.0.0
            bootable: true
            flags: 
            hash: e34ca28b43c839a1b082d71d5560ba853a928cfe22d7b4b549fb70e4452cdd83
        Split status: N/A (0)

        *Note that this time the mcuboot_secondary partition didn't changed (I erased the area before)
      4. Saved s0 and s1 using savebin, converting the to hex (I used prefix for each stage to not overwrite)
      5. mcumgr -c testDK image confirm e34ca28b43c839a1b082d71d5560ba853a928cfe22d7b4b549fb70e4452cdd83
      6. Saved s0 and s1 using savebin, converting the to hex (I used prefix for each stage to not overwrite)
      7. mcumgr -c testDK reset
      8. mcumgr -c testDK image list
        result:
        Images:
         image=0 slot=0
            version: 1.0.0
            bootable: true
            flags: active confirmed
            hash: aab3f9ced75b15b2de8bcd79181db246cc5311c684bb9b7f977f42837d6847b7
        Split status: N/A (0)

        *Question - why the list changed from the last list command?
      9. At this point I saw that the firmware version not changed, nor the BOOT_LOG_INF I changed, so I decided to do another reset
      10. mcumgr -c testDK reset
      11. The firmware version is now changed and the BOOT_LOG_INF.
      12. Saved s0 and s1 using savebin, converting the to hex (I used prefix for each stage to not overwrite)
      13. Finally s1 and s0 are different.


        Through all the steps, s0 and s1 were not changed, only after step "L" there was a difference in s0 and s1 (relative to the prior steps).
        *Note that "mcuboot_secondary" data didn't change the whole time.

    There is a hugh difference when using the FOTA DFU with zip or the mcumgr with bin file, where it somehow uses the mcuboot_secondary partition (maybe it thinks it is an application and not bootloader firmware?) when FOTA and does good job on mcumgr using bin file.

    Sorry for the long explanation, but I'm trying to walk you through the way I test things, hope it helps you to understand the problem better.

Related