Base Samples used -
1. Central DFU SMP Client - <ncs>/nrf/samples/bluetooth/central_dfu_smp
2. SMP Server sample - <ncs>/zephyr/samples/subsys/mgmt/mcumgr/smp_svr
Procedure followed -
1. In the SMP Server sample, commented out "CONFIG_MCUMGR_CMD_FS_MGMT" and "CONFIG_MCUMGR_SMP_SHELL" and kept it running nRF52840DK.
2. Made "hello_world" sample compatible with MCUBoot and generated "app_update.bin".
3. Enabled QSPI flash, LFS and pushed the "app_update.bin" using nRF Device Manager File upload on a modified Central DFU SMP Client running on another nRF52840DK
4. Populated the SMP Command header with Command Group - 1 (IMG_MGMT), Command ID - 1 (Image upload), Operation ID - 2 (Write)
5. As mentioned in this SMP Server limitation, used "seq_num" of the header from base index 0 and also base index 1, to indicate that the data transmitted is part of the same command.
6. Uploaded image is not available in the SMP Server node.
Observations -
1. When the same SMP Server node is used with nRF Connect for Mobile / nRF Device Manager, image upload works fine and the new firmware boots up.
Questions -
1. Is the procedure followed correct? Is there any sample that can help with uploading a firmware image and boot it, from Zephyr (NCS) to Zephyr (NCS) running nodes?
2. In the SMP Server limitation , what does "whole command to be sent in one transfer" mean?
3. Kindly feel free to request any information that could help make the DFU procedure work.