I’m gauging the support level of azure iot on xbee 3 cellular. I found a getting-started with micropython and azure iot here:
This seems somewhat official. But, I’m more interested in maintaining an azure iot device library/twin on my own MCU, not the xbee modem’s MCU, which is very limited in capabilities, such as no USB host, which is a must.
I have a complete project with azure iot and mcu running azure iot device library and managing USB devices. It works well but I’m trying to provide LTE-M to the device in case there’s no WiFi connectivity. This seems more difficult and expensive than I anticipated. The xbee 3 cellular modem is expensive but the only one on the market with some stock for purchase. A (non consumer-quality) hot spot would be even more expensive I suppose. Now if the azure iot support is only micropython, I’ll have to seriously reconsider.
The documentation you linked to describes how to use MicroPython code running on the XBee to interact with Azure IoT. Since your intent is to use the Azure IoT SDK (or another similar codebase) on your own MCU, and simply use the XBee 3 Cellular module for IP connectivity, then you have two options:
- Configure and use the XBee in API mode, and update your Azure IoT code to leverage something like the Digi XBee ANSI C library (https://github.com/digidotcom/xbee_ansic_library) for TCP/IP activity.
- If your MCU has its own IP stack (e.g. is running Linux or another similar OS), then use USB Direct mode and PPP, using Modem Manager or pppd (https://www.digi.com/resources/documentation/Digidocs/90002258/#tasks/t_ppp_lte-m_nbiot.htm).
In either case, you are not relying on the XBee itself to “implement” Azure IoT, and instead just use the XBee modem for IP connectivity.