Hi,
I have developed a custom application on nRF54L15 and now I want to add OTA over BLE support in it.
For that, I am following Exercise 5 – FOTA over Bluetooth Low Energy.
I tried with the BLE_LBS sample as suggested and I am able to update the firmware but not always. On few occasions the device disconnects and then OTA fails every time and need to flash the device again. Below are the logs from the sample.
*** Booting My Application v2.9.0-5ab89f397924 *** *** Using nRF Connect SDK v3.1.0-6c6e5b32496e *** *** Using Zephyr OS v4.1.99-1612683d4010 *** Starting Bluetooth Peripheral LBS sample by HD I: 2 Sectors of 4096 bytes I: alloc wra: 0, f70 I: data wra: 0, 10 I: SoftDevice Controller build revision: I: fc de 41 eb a2 d1 42 24 |..A...B$ I: 00 b5 f8 57 9f ac 9d 9e |...W.... I: aa c9 b4 34 |...4 I: HW Platform: Nordic Semiconductor (0x0002) I: HW Variant: nRF54Lx (0x0005) I: Firmware: Standard Bluetooth controller (0x00) Version 252.16862 Build 1121034987 I: No ID address. App must call settings_load() Bluetooth initialized I: HCI transport: SDC I: Identity: FF:75:86:D8:DA:AA (random) I: HCI: version 6.1 (0x0f) revision 0x3069, manufacturer 0x0059 I: LMP: version 6.1 (0x0f) subver 0x3069 Advertising successfully started Connected W: Ignoring data for unknown channel ID 0x003a I: Image index: 0, Swap type: none I: Image index: 0, Swap type: none I: Image index: 0, Swap type: none Disconnected, reason 0x08 Connection object available from previous conn. Disconnect is complete! Advertising successfully started
I have not yet created a pm_static.yml file for partitions. Sharing the auto generated file from the build folder.
Please let me know what am I missing?
EMPTY_0:
address: 0xd800
end_address: 0xe000
placement:
after:
- mcuboot
region: flash_primary
size: 0x800
EMPTY_1:
address: 0x162000
end_address: 0x163000
placement:
after:
- mcuboot_secondary
region: flash_primary
size: 0x1000
app:
address: 0xe800
end_address: 0xb8000
region: flash_primary
size: 0xa9800
bootconf:
address: 0xffd080
end_address: 0xffd084
region: bootconf
size: 0x4
mcuboot:
address: 0x0
end_address: 0xd800
placement:
align:
end: 0x1000
before:
- mcuboot_primary
region: flash_primary
size: 0xd800
mcuboot_pad:
address: 0xe000
end_address: 0xe800
placement:
align:
start: 0x1000
before:
- mcuboot_primary_app
region: flash_primary
size: 0x800
mcuboot_primary:
address: 0xe000
end_address: 0xb8000
orig_span: &id001
- mcuboot_pad
- app
region: flash_primary
sharers: 0x1
size: 0xaa000
span: *id001
mcuboot_primary_app:
address: 0xe800
end_address: 0xb8000
orig_span: &id002
- app
region: flash_primary
size: 0xa9800
span: *id002
mcuboot_secondary:
address: 0xb8000
end_address: 0x162000
placement:
after:
- mcuboot_primary
align:
start: 0x1000
region: flash_primary
share_size:
- mcuboot_primary
size: 0xaa000
otp:
address: 0xffd500
end_address: 0xffd9fc
region: otp
size: 0x4fc
settings_storage:
address: 0x163000
end_address: 0x165000
placement:
after:
- app
align:
start: 0x1000
before:
- end
region: flash_primary
size: 0x2000
sram_primary:
address: 0x20000000
end_address: 0x2002f000
region: sram_primary
size: 0x2f000