I was able to follow the "quick start" guide for Mesh DFU and got things working with 3 nodes.
1 node (the serial host hooked to the PC) was programmed with:
bin/softdevice/s140_nrf52_6.0.0_softdevice.hex
bin/bootloader/gccarmemb/mesh_bootloader_gccarmemb_nrf52840_xxAA.hex
tools/dfu/bin/device_page_nrf52840_xxAA_s140_6.0.0.hex
examples/dfu/build/dfu_nrf52840_xxAA_s140_6.0.0_Release/dfu_nrf52840_xxAA_s140_6.0.0.hex
2 nodes (the mesh devices) with
bin/softdevice/s140_nrf52_6.0.0_softdevice.hex
bin/bootloader/gccarmemb/mesh_bootloader_serial_gccarmemb_nrf52840_xxAA.hex
--program tools/dfu/bin/device_page_nrf52840_xxAA_s140_6.0.0.hex
--program examples/dfu/build/dfu_nrf52840_xxAA_s140_6.0.0_Release/dfu_nrf52840_xxAA_s140_6.0.0.SERIAL_ENABLED.hex
The dfu_nrf52840_xxAA_s140_6.0.0.SERIAL_ENABLED.hex was a version of the DFU example with
#define NRF_MESH_SERIAL_ENABLE 1
When the process was complete, the 2 mesh devices were programmed with "blinky" as well as the serial host. In my application, there will be one device attached to a PC for interfacing with the mesh and his firmware should not be updated.
Questions:
1.) I made a device page for the node connected to the host PC with a different application ID. When I re-ran the process, it seemed to work OK as the serial host's firmware was not updated. Is this the best way to achieve what I need?
2.) In my end application, I will have one node is tied to a PC (or embedded linux machine) to access the mesh. Right now I just use the "serial" example with SLIP encoding.
It would seem that I could still use this firmware if:
a.) I modify nrfutil to use SLIP encoding on serial transfers
b.) I include mesh_bootloader_serial_gccarmemb_nrf52840_xxAA.hex when I program the serial interface device
c.) I include a device page with my serial device
3.) Right now the device page is generate by a python script. Has anyone gotten the device page to be generated at compile time with a special C struct with appropriate linker attributes?