1.. zephyr:code-sample:: lorawan-fuota 2 :name: LoRaWAN FUOTA 3 :relevant-api: lorawan_api 4 5 Perform a LoRaWAN firmware-upgrade over the air (FUOTA) operation. 6 7Overview 8******** 9 10An application to demonstrate firmware-upgrade over the air (FUOTA) over LoRaWAN. 11 12The following services specified by the LoRa Alliance are used: 13 14- Application Layer Clock Synchronization (`TS003-2.0.0`_) 15- Remote Multicast Setup (`TS005-1.0.0`_) 16- Fragmented Data Block Transport (`TS004-1.0.0`_) 17 18The FUOTA process is started by the application and afterwards runs in the background in its own 19work queue thread. After a firmware upgrade is successfully received, the application is notified 20via a callback and can reboot the device into MCUboot to apply the upgrade. 21 22A LoRaWAN Application Server implementing the relevant services is required for this sample to work. 23 24.. _`TS003-2.0.0`: https://resources.lora-alliance.org/technical-specifications/ts003-2-0-0-application-layer-clock-synchronization 25.. _`TS005-1.0.0`: https://resources.lora-alliance.org/technical-specifications/lorawan-remote-multicast-setup-specification-v1-0-0 26.. _`TS004-1.0.0`: https://resources.lora-alliance.org/technical-specifications/lorawan-fragmented-data-block-transport-specification-v1-0-0 27 28Building and Running 29******************** 30 31This sample can be found under :zephyr_file:`samples/subsys/lorawan/fuota` in the Zephyr tree. 32 33Before building the sample, make sure to select the correct region in the ``prj.conf`` file. 34 35The following commands build and flash the sample. 36 37.. zephyr-app-commands:: 38 :zephyr-app: samples/subsys/lorawan/fuota 39 :board: nucleo_wl55jc 40 :goals: build flash 41 :compact: 42