This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LAUNCHCC3220MODASF: TIDEP-0083: Connection to server failed.

Other Parts Discussed in Thread: TIDEP-0083, UNIFLASH


I'm trying the demonstration of TIDEP-0083, but I got some error when run the demonstration.
The error looks same way of this.
So I tried Michael's way on e2e copying the certificate in Windows.
But it didn't work well.

Here's the message on terminal window.(#define IBM_NET_TEST 1 in network_task.c)

IBM Watson Voice Recognition service has changed something again?
It works fine when I access IBM Watson Speech-to-text service from my laptop by using "curl.exe" , so Speech-to-text service itself seems to have no problems.

Takeshi Matsuzaki

  • Hi Matsuzaki,

    I tested the TIDEP-0083 code with my setup and everything seems to work fine on my end.

    Given that I cannot replicate this, some more debug information is necessary. In particular, when HTTPCli_connect() fails, it returns a generic error code (in your case -102) but also provides a more detailed socket error in httpclient->sockerr. In httphandler.c, ConnectToHTTPServer(), could you please add in a printout of that variable when you fail to connect like so:

    int ConnectToHTTPServer(HTTPCli_Handle httpClient, HTTPCli_Params *params)
        long lRetVal = -1;
        struct SlSockAddrIn_t addr;
    #if USE_PROXY
        struct sockaddr_in paddr;
        paddr.sin_family = AF_INET;
        paddr.sin_port = htons(PROXY_PORT);
        paddr.sin_addr.s_addr = sl_Htonl(PROXY_IP);
        HTTPCli_setProxy((struct sockaddr *)&paddr);
        /* Resolve HOST NAME/IP */
        lRetVal = sl_NetAppDnsGetHostByName((signed char *)HOST_NAME,
                                              strlen((const char *)HOST_NAME),
        if(lRetVal < 0)
        /* Set up the input parameters for HTTP Connection */
        addr.sin_family = SL_AF_INET;
        addr.sin_port = sl_Htons(HOST_PORT);
        addr.sin_addr.s_addr = sl_Htonl(g_ulDestinationIP);
        /* Testing HTTPCli open call: handle, address params only */
        lRetVal = HTTPCli_connect(httpClient, (struct SlSockAddr_t *)&addr, HTTPCli_TYPE_TLS, params);
        if (lRetVal < 0)
            UART_PRINT("Connection to server failed. error(%d)\n\r", lRetVal);
            UART_PRINT("Socket error reported: %d\n\r", httpClient->sockerr);
            UART_PRINT("Connection to server created successfully\r\n");
            g_intNetworkState = NETWORK_STATE_CONNECTED;
        return 0;

    and provide me the socket error code that is printed out?



  • Hi Michael,
    Thanks for replying me.

    I add a new UART_PRINT() and tried.

    Can you figure out something from "-688" ?

    Takeshi Matsuzaki

  • Hi Matsuzaki,

    Error -688 indicates that the root CA certificate file that you are using is incorrect.
    I checked again today, and the current correct root CA cert to use is the "DigiCert Global Root CA" certificate.

    Please follow the steps I provided in the E2E post that you have linked to copy the correct root CA onto the CC3220 using Uniflash. What part of copying the root CA cert didn't work well for you?

  • Hi Michae,

    I've been using "VeriSign Class 3 Public Primary Certification Authority - G5" certificate to be failed..

    Now I tried "DigiCert Global Root CA" certificate.

    and then, I got this message on my terminal window.(#define IBM_NET_TEST 1 in network_task.c)

    I'm feeling I wanna toast toward your country.

    but who knows to use "DigiCert Global Root CA" certificate?
    How do you know that?

    Takeshi Matsuzaki

  • Hi Matsuzaki,

    In this linked E2E post, there is code that can be used to identify the needed root CA:

    By implementing that code, you can tell what certificate is needed through a UART print.

  • Hi Michael,

    All right, I'll implement your code. thanks!

    Takeshi Matsuzaki