Difference in CA Certificate Upload via MCU (Arduino) vs Direct QCOM on EC200U – Missing Bytes Issue

I am working with the Quectel EC200U module and trying to upload a CA certificate for MQTT TLS.

I am using the command AT+QFUPL to upload the certificate to the module.

When I upload the certificate directly from a laptop using QCOM (serial tool), the complete certificate is transmitted correctly, and the MQTT TLS connection works without any issue.

However, when I try to upload the same certificate through an MCU (Arduino via UART), some bytes of the certificate are always missing or truncated. Because of this, the certificate becomes invalid and the MQTT TLS connection fails.

I am sending the certificate data using AT commands from the MCU, but the behavior is inconsistent compared to direct upload from the PC using QCOM.
Questions:

  1. What is the correct method to reliably upload a CA certificate to the EC200U using any MCU over UART with AT+QFUPL?

  2. Why does certificate upload work correctly when done directly via QCOM from a PC, but results in missing bytes when sent through an MCU?

  3. Are there specific requirements such as delays, flow control, chunking, or exact data length handling that must be followed during MCU-based uploads?

  4. Are there any recommended examples or best practices for sending certificate data (handling of > prompt, exact byte count, timeouts, binary vs ASCII mode, etc.)?

Hi there,

Based on the behavior observed, the issue is likely related to UART transmission handling from the MCU side rather than the certificate itself, since the upload works correctly via QCOM on PC.

May I know are you using UART communication between the module and MCU.

For AT+QFUPL, please ensure the following:
• Wait for the CONNECT or > prompt completely before sending the certificate data.
• The file size in AT+QFUPL must exactly match the actual transmitted byte count, including all CR/LF characters.
• Use raw byte transmission (Serial.write()) instead of print() or println().
• Send the certificate in smaller chunks (128-256 bytes) with short delays to avoid UART buffer overflow.
• Verify the uploaded file size using AT+QFLST after upload completion.

In most cases, missing or truncated bytes are caused by UART timing, buffer overflow, or line-ending conversion during MCU transmission.