freeze fix by increasing WiFi RX buffer *or* forcing L2-to-L3 copy

This commit is contained in:
philippe44
2019-07-03 14:20:30 -07:00
parent 811b132aa3
commit a45c4f7f06
3 changed files with 29 additions and 3 deletions

View File

@@ -6,6 +6,23 @@ Then
- make -j4 - make -j4
- make flash monitor - make flash monitor
Once the application is running, under monitor, add autoexec to launch squeezelite at boot
1/ setup WiFi
nvs_set autoexec1 str -v "join <SSID> <password>"
2/ setup squeezelite command line (optional)
nvs_set autoexec2 str -v "squeezelite -o I2S -b 500:2000 -d all=info -m ESP32"
3/ enable autoexec
nv_set autoexec u8 -v 1
The "join" and "squeezelite" commands can alos be types at the prompt to start manually. Use "help" to see the list.
The squeezelite options are very similar to the regular squeezelite options. Differences are :
- the output is -o [BT <sinkname>] | [I2S]
- if you've compiled RESAMPLE option, normal soxr options are available using -R [-u <options>]. Note that anything above LQ or MQ will overload the CPU
- if you've used RESAMPLE16, <options> are (b|l|m)[:i], with b = basic linear interpolation, l = 13 taps, m = 21 taps, i = interpolate filter coefficients
# Additional misc notes # Additional misc notes
- for all libraries, add -mlongcalls - for all libraries, add -mlongcalls
- libmad, libflac (no esp's version), libvorbis (tremor - not esp's version), alac work - libmad, libflac (no esp's version), libvorbis (tremor - not esp's version), alac work
@@ -20,3 +37,11 @@ Then
- set IDF_PATH=/home/esp-idf - set IDF_PATH=/home/esp-idf
- set ESPPORT=COM9 - set ESPPORT=COM9
- update flash partition size - update flash partition size
- other compiler #define
- use no resampling or set RESAMPLE (soxr) or set RESAMPLE16 for fast fixed 16 bits resampling
- use LOOPBACK (mandatory)
- use BYTES_PER_FRAME=4 (8 is not fully functionnal)
- LINKALL (mandatory)
- NO_FAAD unless you want to us faad, which currently overloads the CPU
- TREMOR_ONLY (mandatory)

View File

@@ -145,8 +145,9 @@ void process_autoexec(){
{ {
ESP_LOGD(TAG,"No matching command found for name autoexec. Adding default entries"); ESP_LOGD(TAG,"No matching command found for name autoexec. Adding default entries");
uint8_t autoexec_dft=0; uint8_t autoexec_dft=0;
char autoexec1_dft[]="join MySSID MyPASSWORD"; char autoexec1_dft[64];
char autoexec2_dft[]="squeezelite -o \"DAC\" -b 500:2000 -d all=debug -M esp32 -r \"44100,4800\" -N \"playername.txt\""; char autoexec2_dft[]="squeezelite -o \"I2S\" -b 500:2000 -d all=info -M esp32";
snprintf(autoexec1_dft, 64, "join %s %s", CONFIG_WIFI_SSID, CONFIG_WIFI_PASSWORD);
store_nvs_value(NVS_TYPE_U8,"autoexec",&autoexec_dft); store_nvs_value(NVS_TYPE_U8,"autoexec",&autoexec_dft);
store_nvs_value(NVS_TYPE_STR,"autoexec1",autoexec1_dft); store_nvs_value(NVS_TYPE_STR,"autoexec1",autoexec1_dft);
store_nvs_value(NVS_TYPE_STR,"autoexec2",autoexec2_dft); store_nvs_value(NVS_TYPE_STR,"autoexec2",autoexec2_dft);

View File

@@ -97,7 +97,7 @@ CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y
CONFIG_ESP32_WIFI_SW_COEXIST_PREFERENCE_BALANCE=y CONFIG_ESP32_WIFI_SW_COEXIST_PREFERENCE_BALANCE=y
CONFIG_ESP32_WIFI_SW_COEXIST_PREFERENCE_VALUE=2 CONFIG_ESP32_WIFI_SW_COEXIST_PREFERENCE_VALUE=2
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=12 CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=12
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=24 CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=40
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y CONFIG_ESP32_WIFI_STATIC_TX_BUFFER=y
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0 CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=0
CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=12 CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=12