Digi IX15 Gateway - Zigbee FOTA

XBee coordinator: Digi IX15
Endpoints: Nordic nRF5340 SoC
Comms: Zigbee

I need to increase my understanding of how to implement the IX15 as a Zigbee FOTA upgrade server for the Nordic based ZEDs. Information from boths ends seems rather sparse.

I have successfully OTA’ed from the IX15 to Xbee3 ZEDs both programmatically and using the IX15 web UI.

It is my (limited) understanding that the Zigbee FOTA API within the Nordic’s nRF Connect SDK gets configured to broadcast Zigbee FOTA cluster requests. From there, I have very little understanding of how a FOTA server is set up to receive and respond to the message and initiate the download.

It may sounds like I don’t really know what I am talking about. That would be accurate. I inherited ths project (very willingly), but lack understanding of all aspects. So, I am trying to gain an understanding through documentation, examples, videos, . . . anything that can help me increase my understanding for how to implement the Digi IX15 Gateway as a 3rd party FOTA server to the Nordic nRF5340 ZEDs.


I don’t know if it can be used as a 3rd party FOTA server. But I would recommend looking at the product manual for the XBee 3 modules as that is what is used on the IX15.

MVUT - Thank you for the reply. I’ve gone through the XBee3 manual, but admittedly I’ve been more focused on reading & studying the IX15 manual. Sounds like the XBee3 is worth a deeper dive.

As a proof of concept, I have the IX15 networked with two ZEDs and my Nordic based sensor device. The ZEDs are sending temperature and voltage data every two seconds. My device sends information at startup and several minute intervals thereafter. On the IX15, I have a script with a receive callback that captures all the ZED content. The IX15 captures the first message from my device but nothing more. I know it is sending more because I have another setup where a ZC is set up with Zigbee Home Assistant and I can see the various sensor readings. So, I am not sure why the IX15 does not seem to receive the subsequent messages from my device.

Again, thanks for your reply. It sounds like I will need to write a handler to send the OTA firmware update in response to the Zigbee FOTA update query. Does that seem plausible?

I’ve been able to perform OTAs to my ZEDs from the IX15 using the CLI ‘xbee update’ command. Would that be the correct response mechanism?


Yes you may need to write your own code to perform the update.

I would also suggest obtaining a zigbee sniffer. This way you can view the RF traffic and see where the issue is on your missing data. It may be that it is being sent to the wrong address or that your Python code is not handling it.