Skip to content

Commit 5ca3ddd

Browse files
authored
Merge pull request #87033 from JimacoMS3/device-sdk-topic-update
Device sdk topic update
2 parents c1d8b0b + f3ce4b0 commit 5ca3ddd

File tree

1 file changed

+93
-52
lines changed

1 file changed

+93
-52
lines changed

articles/iot-hub/iot-hub-device-sdk-platform-support.md

Lines changed: 93 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -5,92 +5,133 @@ author: robinsh
55
ms.service: iot-hub
66
services: iot-hub
77
ms.topic: conceptual
8-
ms.date: 04/01/2018
8+
ms.date: 10/08/2019
99
ms.author: robinsh
1010
---
1111

12-
# Azure IoT SDKs Platform Support
12+
# Azure IoT Device SDKs Platform Support
1313

14-
The [Azure IoT SDKs](iot-hub-devguide-sdks.md) are a set of libraries to interact with IoT Hub and the Device Provisioning Service with broad language and platform support. The SDKs run on most common platforms, and developers can port the C SDK to specific platform by following the [Porting Guidance](https://github.com/Azure/azure-c-shared-utility/blob/master/devdoc/porting_guide.md).
14+
Microsoft strives to continually expand the universe of Azure IoT Hub capable devices. Microsoft publishes open-source device SDKs on GitHub to help connect devices to Azure IoT Hub and the Device Provisioning Service. The device SDKs are available for C, .NET (C#), Java, Node.js, and Python. Microsoft tests each SDK to ensure that it runs on the supported configurations detailed for it in the [Microsoft SDKs and device platform support](#microsoft-sdks-and-device-platform-support) section.
1515

16-
Microsoft supports a variety of operating systems/platforms/frameworks and can be extended using the Azure IoT C SDK. Some are supported officially by the team, grouped into tiers that represent the level of support users can expect. *Fully supported platforms* means that Microsoft:
16+
In addition to the device SDKs, Microsoft provides several other avenues to empower customers and developers to connect their devices to Azure IoT:
1717

18-
- Continuously builds and runs end-to-end tests against master and the LTS supported version(s). To provide test coverage across different versions, we generally test against the latest LTS version and the most popular version. Other versions of the same platform may be supported via platform version compatibility.
19-
- Provides installation guidance or packages if applicable.
20-
- Fully supports the platforms on GitHub.
18+
* Microsoft collaborates with several partner companies to help them publish development kits, based on the Azure IoT C SDK, for their hardware platforms.
2119

22-
In addition, a list of partners has ported our C SDK on to more platforms and they are maintaining the platform abstraction layer (PAL). [Azure Certified for IoT Device Catalog](https://catalog.azureiotsolutions.com/) also features a list of OS platforms the various SDKs have been tested against. The SDKs also regularly build on these platforms, with limited testing and support:
20+
* Microsoft works with Microsoft trusted partners to provide an ever-expanding set of devices that have been tested and certified for Azure IoT. For a current list of these devices, see the [Azure certified for IoT device catalog](https://catalog.azureiotsolutions.com/).
2321

24-
* MBED2
25-
* Arduino
26-
* Windows CE 2013 (deprecate in October 2018)
27-
* .NET Standard 1.3 with .NET Core 2.1 and .NET Framework 4.7
28-
* Xamarin iOS, Android, UWP
22+
* Microsoft provides a platform abstraction layer (PAL) in the Azure IoT Hub Device C SDK that helps developers to easily port the SDK to their platform. To learn more, see the [C SDK porting guidance](https://github.com/Azure/azure-c-shared-utility/blob/master/devdoc/porting_guide.md).
2923

30-
## Supported platforms
24+
This topic provides information about the Microsoft SDKs and the platform configurations they support, as well as each of the other options listed above.
3125

32-
There are several platforms supported.
26+
## Microsoft SDKs and device platform support
27+
28+
Microsoft publishes open-source SDKs on GitHub for the following languages: C, .NET (C#), Node.js, Java, and Python. The SDKs and their dependencies are listed in this section. The SDKs are supported on any device platform that satisfies these dependencies.
29+
30+
For each of the listed SDKs, Microsoft:
31+
32+
* Continuously builds and runs end-to-end tests against the master branch of the relevant SDK in GitHub on several popular platforms. To provide test coverage across different compiler versions, we generally test against the latest LTS version and the most popular version.
33+
34+
* Provides installation guidance or installation packages if applicable.
35+
36+
* Fully supports the SDKs on GitHub with open-source code, a path for customer contributions, and product team engagement with GitHub issues.
3337

3438
### C SDK
3539

36-
| OS | Arch | Compiler | TLS library |
37-
|---------------------|------|----------------------|-------------------|
38-
| Ubuntu 16.04 LTS | X64 | gcc-5.4.0 | openssl - 1.0.2g |
39-
| Ubuntu 18.04 LTS | X64 | gcc-7.3 | WolfSSL – 1.13 |
40-
| Ubuntu 18.04 LTS | X64 | Clang 6.0.X | Openssl – 1.1.0g |
41-
| OSX 10.13.4 | x64 | XCode 9.4.1 | Native OSX |
42-
| Windows Server 2016 | x64 | Visual Studio 14.0.X | SChannel |
43-
| Windows Server 2016 | x86 | Visual Studio 14.0.X | SChannel |
44-
| Debian 9 Stretch | x64 | gcc-7.3 | Openssl – 1.1.0f |
40+
The [Azure IoT Hub C device SDK](https://github.com/Azure/azure-iot-sdk-c) is tested with and supports the following configurations.
41+
42+
| OS | TLS library | Additional requirements |
43+
|---------------------|------------------------------|---------------------------------------------------------------------------------------------|
44+
| Linux | OpenSSL, WolfSSL, or BearSSL | Berkeley sockets</br></br>Portable Operating System Interface (POSIX) |
45+
| iOS 12.2 | OpenSSL or Native OSX | XCode emulated in OSX 10.13.4 |
46+
| Windows 10 family | SChannel | |
47+
| Mbed OS 5.4 | Mbed TLS 2 | [MXChip IoT dev kit](https://microsoft.github.io/azure-iot-developer-kit/) |
48+
| Azure Sphere OS | WolfSSL | [Azure Sphere MT3620](https://azure.microsoft.com/en-us/services/azure-sphere/get-started/) |
4549

4650
### Python SDK
4751

48-
| OS | Arch | Compiler | TLS library |
49-
|---------------------|------|------------|-------------|
50-
| Windows Server 2016 | x86 | Python 2.7 | openssl |
51-
| Windows Server 2016 | x64 | Python 2.7 | openssl |
52-
| Windows Server 2016 | x86 | Python 3.5 | openssl |
53-
| Windows Server 2016 | x64 | Python 3.5 | openssl |
54-
| Ubuntu 18.04 LTS | x86 | Python 2.7 | openssl |
55-
| Ubuntu 18.04 LTS | x86 | Python 3.4 | openssl |
56-
| MacOS High Sierra | x64 | Python 2.7 | openssl |
52+
The [Azure IoT Hub Python device SDK](https://github.com/Azure/azure-iot-sdk-python) is tested with and supports the following configurations.
53+
54+
| OS | Compiler |
55+
|---------------------|--------------------------------|
56+
| Linux | Python 2.7, 3.4, 3.5, 3.6, 3.7 |
57+
| MacOS High Sierra | Python 2.7, 3.4, 3.5, 3.6, 3.7 |
58+
| Windows 10 family | Python 2.7, 3.4, 3.5, 3.6, 3.7 |
5759

5860
### .NET SDK
5961

60-
| OS | Arch | Framework | Standard |
61-
|---------------------|------|----------------------|-------------------|
62-
| Ubuntu 16.04 LTS | X64 | .NET Core 2.1 | .NET standard 2.0 |
63-
| Windows Server 2016 | X64 | .NET Core 2.1 | .NET standard 2.0 |
64-
| Windows Server 2016 | X64 | .NET Framework 4.7 | .NET standard 2.0 |
65-
| Windows Server 2016 | X64 | .NET Framework 4.5.1 | N/A |
62+
The [Azure IoT Hub .NET (C#) device SDK](https://github.com/Azure/azure-iot-sdk-csharp) is tested with and supports the following configurations.
63+
64+
| OS | Standard |
65+
|--------------------------------------|------------------------------------------------------------|
66+
| Linux | .NET Core 2.1 |
67+
| Windows 10 Desktop and Server SKUs | .NET Core 2.1, .NET Framework 4.5.1, or .NET Framework 4.7 |
6668

6769
### Node.js SDK
6870

69-
| OS | Arch | Node version |
70-
|----------------------------------------------|------|-----------------|
71-
| Ubuntu 16.04 LTS (using node 6 docker image) | X64 | LTS and Current |
72-
| Windows Server 2016 | X64 | LTS and Current |
71+
The [Azure IoT Hub Node.js device SDK](https://github.com/Azure/azure-iot-sdk-node) is tested with and supports the following configurations.
72+
73+
| OS | Node version |
74+
|---------------------|-----------------|
75+
| Linux | LTS and Current |
76+
| Windows 10 family | LTS and Current |
7377

7478
### Java SDK
7579

76-
| OS | Arch | Java version |
77-
|---------------------|------|--------------|
78-
| Ubuntu 16.04 LTS | X64 | Java 8 |
79-
| Windows Server 2016 | X64 | Java 8 |
80-
| Android API 28 | X64 | Java 8 |
81-
| Android Things | X64 | Java 8 |
80+
The [Azure IoT Hub Java device SDK](https://github.com/Azure/azure-iot-sdk-java) is tested with and supports the following configurations.
8281

83-
## Partner supported platforms
82+
| OS | Java version |
83+
|------------------------|--------------|
84+
| Android API 28 | Java 8 |
85+
| Linux x64 | Java 8 |
86+
| Windows 10 family x64 | Java 8 |
8487

85-
Customers can extend our platform support by porting the Azure IoT C SDK, specifically, creating the platform abstraction layer (PAL) of the SDK. Microsoft works with partners to provide extended support. A list of partners has ported the C SDK on to more platforms and maintaining the PAL.
88+
## Partner supported development kits
89+
90+
Microsoft works with various partners to provide development kits for several microprocessor architectures. These partners have ported the Azure IoT C SDK to their platform. Partners create and maintain the platform abstraction layer (PAL) of the SDK. Microsoft works with these partners to provide extended support.
8691

8792
| Partner | Devices | Link | Support |
8893
|---------------------|------------------------------------|--------------------------|---------|
8994
| Espressif | ESP32 <br/> ESP8266 | [Esp-azure](https://github.com/espressif/esp-azure) | [GitHub](https://github.com/espressif/esp-azure)
9095
| Qualcomm | Qualcomm MDM9206 LTE IoT Modem | [Qualcomm LTE for IoT SDK](https://developer.qualcomm.com/software/lte-iot-sdk) | [Forum](https://developer.qualcomm.com/forums/software/lte-iot-sdk) |
91-
| ST Microelectronics | STM32L4 Series <br/> STM32F4 Series <br/> STM32F7 Series <br/> STM32L4 Discovery Kit for IoT node | [X-CUBE-CLOUD](https://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32cube-expansion-packages/x-cube-cloud.html) <br/> [X-CUBE-AZURE](https://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32cube-expansion-packages/x-cube-azure.html) <br/> [P-NUCLEO-AZURE](https://www.st.com/content/st_com/en/products/evaluation-tools/solution-evaluation-tools/communication-and-connectivity-solution-eval-boards/p-nucleo-azure1.html) <br/> [FP-CLD-AZURE](https://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-ode-function-pack-sw/fp-cld-azure1.html) | [Support](https://www.st.com/content/st_com/en/support/support-home.html)
96+
| ST Microelectronics | STM32L4 Series <br/> STM32F4 Series <br/> STM32F7 Series <br/> STM32L4 Discovery Kit for IoT node | [X-CUBE-AZURE](https://www.st.com/en/embedded-software/x-cube-azure.html) <br/> <br/> [P-NUCLEO-AZURE](https://www.st.com/content/st_com/en/products/evaluation-tools/solution-evaluation-tools/communication-and-connectivity-solution-eval-boards/p-nucleo-azure1.html) <br/> [FP-CLD-AZURE](https://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-ode-function-pack-sw/fp-cld-azure1.html) | [Support](https://www.st.com/content/st_com/en/support/support-home.html)
9297
| Texas Instruments | CC3220SF LaunchPad </br> CC3220S LaunchPad </br> CC3235SF LaunchPad </br> CC3235S LaunchPad </br> MSP432E4 LaunchPad | [Azure IoT Plugin for SimpleLink](https://github.com/TexasInstruments/azure-iot-pal-simplelink) | [TI E2E Forum](https://e2e.ti.com) <br/> [TI E2E Forum for CC3220](https://e2e.ti.com/support/wireless_connectivity/simplelink_wifi_cc31xx_cc32xx/) <br/> [TI E2E Forum for MSP432E4](https://e2e.ti.com/support/microcontrollers/msp430/) |
9398

99+
## Porting the Microsoft Azure IoT C SDK
100+
101+
If your device platform isn't covered by one of the previous sections, you can consider porting the Azure IoT C SDK. Porting the C SDK primarily involves implementing the platform abstraction layer (PAL) of the SDK. The PAL defines primitives that provide the glue between your device and higher-level functions in the SDK. For more information, see [Porting Guidance](https://github.com/Azure/azure-c-shared-utility/blob/master/devdoc/porting_guide.md).
102+
103+
## Microsoft partners and certified Azure IoT devices
104+
105+
Microsoft works with a number of partners to continually expand the Azure IoT universe with Azure IoT tested and certified devices.
106+
107+
* To browse Azure IoT certified devices, see [Microsoft Azure Certified for IoT Device Catalog](https://catalog.azureiotsolutions.com/).
108+
109+
* To learn more about Microsoft trusted partners or to learn how to become a Microsoft trusted partner, see [Microsoft Azure Certified Internet of Things Trusted Partners](https://azure.microsoft.com/en-us/marketplace/certified-iot-partners/).
110+
111+
## Connecting to IoT Hub without an SDK
112+
113+
If you're not able to use one of the IoT Hub device SDKs, you can connect directly to IoT Hub using the [IoT Hub REST APIs](https://docs.microsoft.com/en-us/rest/api/iothub/) from any application capable of sending and receiving HTTPS requests and responses.
114+
115+
## Support and other resources
116+
117+
If you experience problems while using the Azure IoT device SDKs, there are several ways to seek support. You can try one of the following channels:
118+
119+
**Reporting bugs** – Bugs in the device SDKs can be reported on the issues page of the relevant GitHub project. Fixes rapidly make their way from the project in to product updates.
120+
121+
* [Azure IoT Hub C SDK issues](https://github.com/Azure/azure-iot-sdk-c/issues)
122+
123+
* [Azure IoT Hub .NET (C#) SDK issues](https://github.com/Azure/azure-iot-sdk-csharp/issues)
124+
125+
* [Azure IoT Hub Java SDK issues](https://github.com/Azure/azure-iot-sdk-java/issues)
126+
127+
* [Azure IoT Hub Node.js SDK issues](https://github.com/Azure/azure-iot-sdk-node/issues)
128+
129+
* [Azure IoT Hub Python SDK issues](https://github.com/Azure/azure-iot-sdk-python/issues)
130+
131+
**Microsoft Customer Support team** – Users who have a [support plan](https://azure.microsoft.com/support/plans/) can engage the Microsoft Customer Support team by creating a new support request directly from the [Azure portal](https://ms.portal.azure.com/#blade/Microsoft_Azure_Support/HelpAndSupportBlade/overview).
132+
133+
**Feature requests** – Azure IoT feature requests are tracked via the product’s [User Voice page](https://feedback.azure.com/forums/321918-azure-iot).
134+
94135
## Next steps
95136

96137
* [Device and service SDKs](iot-hub-devguide-sdks.md)

0 commit comments

Comments
 (0)