Giter VIP home page Giter VIP logo

Comments (4)

256dpi avatar 256dpi commented on May 25, 2024

Did you find a solution to your problem in the end?

from esp-mqtt.

Thomseeen avatar Thomseeen commented on May 25, 2024

I tried to pin it down more exactly and found a few problems regarding the memory usage. Those problems weren't exactly at your side so I closed the issue. But I can list two things I changed in your code to make it work better for me.

  • I increased the option.keep_alive to 60
  • I error checked the creation of your esp_mqtt_process task and put it in a delayed while-loop to retry until enough memory has been freed. I was running into errors because there wasn't enough memory left for the task to be created so the mqtt-client didn't start properly and I would have had to call esp_mqtt_start repeatedly. There should always be enough memory but in some cases the IDLE-task needs to be given some time to free it before the mqqt-task can use it.
// create mqtt thread
    BaseType_t err = pdFAIL;
    while (err != pdPASS) {
        ESP_LOGI(ESP_MQTT_LOG_TAG, "esp_mqtt_start: biggest free heap-block is %d bytes", heap_caps_get_largest_free_block(MALLOC_CAP_8BIT));  // heapcontrol
        ESP_LOGI(ESP_MQTT_LOG_TAG, "esp_mqtt_start: create task");
        err = xTaskCreatePinnedToCore(esp_mqtt_process, "esp_mqtt", CONFIG_ESP_MQTT_TASK_STACK_SIZE, NULL, CONFIG_ESP_MQTT_TASK_STACK_PRIORITY, &esp_mqtt_task, 1);
        // BaseType_t err = xTaskCreate(esp_mqtt_process, "esp_mqtt", CONFIG_ESP_MQTT_TASK_STACK_SIZE, NULL, CONFIG_ESP_MQTT_TASK_STACK_PRIORITY, &esp_mqtt_task);
        if (err != pdPASS) {
            ESP_LOGE(ESP_MQTT_LOG_TAG, "esp_mqtt_start: error while creating esp_mqtt_process task %d", err);
        }
        vTaskDelay(500 / portTICK_PERIOD_MS);
    }
    ESP_LOGI(ESP_MQTT_LOG_TAG, "esp_mqtt_start: biggest free heap-block is %d bytes", heap_caps_get_largest_free_block(MALLOC_CAP_8BIT));  // heapcontrol
    // set local flag
    esp_mqtt_running = true;

It is working better but noew I get the lwmqtt -4 error quite often with various command_timeout lengths. As this doesn't really fit in the issue and I don't have too much time to look into it at the moment I didn't open a new issue (yet).

from esp-mqtt.

X-Ryl669 avatar X-Ryl669 commented on May 25, 2024

Seems like it's related to this. Make sure you have the latest esp-idf code (it's a shame such basic stuff only entered the repository a month ago).

from esp-mqtt.

256dpi avatar 256dpi commented on May 25, 2024

@X-Ryl669 Thanks for sharing!

from esp-mqtt.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.