Dear @kazuki1 ,
Thank you for your question regarding connecting the Quectel EC200U module to Azure IoT Hub using HTTPS.
Please find the simplified clarification below.
EC200U Compatibility with Azure HTTPS Telemetry
Yes, the EC200U fully supports Azure IoT Hub telemetry over HTTPS, provided it is configured correctly.
The module supports:
-HTTPS communication
-TLS 1.2
-Custom HTTP request headers (required for SAS token authentication)
This makes it compatible with Azure IoT Hub’s HTTPS REST API.
Sending HTTP POST Data Using SAS Token
Azure IoT Hub requires the SAS token to be included in the HTTP Authorization header.
To achieve this, the module must be configured to manual header mode:
AT+QHTTPCFG=“requestheader”,1
When this mode is enabled, the EC200U expects the entire raw HTTP request to be sent manually after the CONNECT prompt, including:
HTTP request line
Host header
Authorization header (SAS token)
Content-Type
Content-Length
Blank line (CRLF)
JSON telemetry payload
If any part of this request is missing or malformed, Azure will return HTTP 400 (Bad Request), which matches the behavior you observed.
Example AT Command Flow (Simplified)
PDP Context
AT+QICSGP=1,1,“air”,“”,“”,1
AT+QIACT=1
SSL and HTTP Configuration
AT+QHTTPCFG=“sslctxid”,1
AT+QSSLCFG=“sslversion”,1,4
AT+QSSLCFG=“ciphersuite”,1,0xFFFF
AT+QSSLCFG=“seclevel”,1,0
AT+QHTTPCFG=“requestheader”,1
AT+QHTTPCFG=“responseheader”,1
Set HTTPS URL
AT+QHTTPURL=100,80
CONNECT
https://{IoTHubName}.azure-devices.net/devices/{DeviceID}/messages/events?api-version=2021-04-12
Send HTTP POST
AT+QHTTPPOST=220,80,80
CONNECT
POST /devices/{DeviceID}/messages/events?api-version=2021-04-12 HTTP/1.1
Host: {IoTHubName}.azure-devices.net
Authorization: SharedAccessSignature sr=…
Content-Type: application/json
Content-Length: 30
{“temperature”:25.5,“humidity”:60}
A successful request should return:
+QHTTPPOST: 0,200
Additional Recommendations
Enable response headers for easier debugging:
AT+QHTTPCFG=“responseheader”,1
For production use, it is recommended to configure the Azure root CA certificate using AT+QSSLCFG=“cacert” instead of disabling certificate verification.
Recommended Tool
Basic terminal tools (e.g. QCOM) can work but are more prone to formatting and length errors, which often result in HTTP 400 responses.
Kindly test and let us know the feedback. Appreciate your support.
Best Regards,
Aghelan