Page 1 of 1

Is the pipeline_tcp_client example working correctly on newer ADF+IDF's?

Posted: Tue Jul 02, 2024 9:58 pm
by crgregersen
Hi,

On a LyraT-mini.

I'm trying to get the: esp-adf/examples/get-started/pipeline_tcp_client
working. I run into the following problem:

E (4100) esp-tls: [sock=54] select() timeout
E (4100) TRANSPORT_BASE: Failed to open a new connection: 32774
E (4100) TCP_STREAM: _tcp_open, getsockopt failed (-1)
E (4100) AUDIO_ELEMENT: [tcp] AEL_STATUS_ERROR_OPEN,-1
W (4110) AUDIO_ELEMENT: [tcp] audio_element_on_cmd_error,7
E (4110) TCP_STREAM: Already closed
W (4120) AUDIO_ELEMENT: IN-[mp3] AEL_IO_ABORT
E (4120) MP3_DECODER: Failed to read audio data (line 129)

First I thought it was because the IP address was not assigned yet, but that looked ok.

Looks like 32774 is :
ESP_ERR_ESP_TLS_CONNECTION_TIMEOUT (0x8006): new connection in esp_tls_low_level_conn connection timeouted

I've tried many combinations of ADF+IDF (MacOS).
Any ideas?

best regards,
/C

Re: Is the pipeline_tcp_client example working correctly on newer ADF+IDF's?

Posted: Wed Jul 03, 2024 11:38 am
by crgregersen
In the tcp_client_stream component file : components/audio_stream/tcp_client_stream.c
The connection timeout is set to 100ms.. which considering we are working on an embedded target is very very low

If I increase this to 1000ms it works..

#define CONNECT_TIMEOUT_MS 1000

Re: Is the pipeline_tcp_client example working correctly on newer ADF+IDF's?

Posted: Thu Jul 04, 2024 8:46 am
by crgregersen
I really wonder if this has worked on any type of system before.

With a timeout of only 100ms on the select call, if the connection has not been created within that timeout the code (the select call) will fail.
I believe the best I've seen is somewhere around 300ms.
Maybe my WiFi setup is slow, but nonetheless the tcp audio stream should be able to handle that.