Upgrade problem ESP8266_NONOS_SDK_V1.5.0_15_11_27

starostarf
Posts: 1
Joined: Tue Dec 22, 2015 10:20 pm

Upgrade problem ESP8266_NONOS_SDK_V1.5.0_15_11_27

Postby starostarf » Tue Dec 22, 2015 11:14 pm

The system_upgrade_start don't work with SDK later esp_iot_sdk_v1.3.0_15_08_08 and work fine with this and older version.
When I start upgrade i saw:

system_upgrade_start
upgrade_connect 33656
upgrade_connect_cb
GET /user2.bin HTTP/1.1
Host: 192.168.0.84:80
Connection: keep-alive

HEAD /user2.bin HTTP/1.1
Host: 192.168.0.84:80
Connection: close

pusrdata = HTTP/1.1 200 OK
Server: nginx/1.2.1
Date: Tue, 22 Dec 2015 13:02:09 GMT
Content-Type: application/octet-stream
Content-Length: 241536
Last-Modified: Tue, 22 Dec 2015 13:01:57 GMT
Connection: close
Accept-Ranges: bytes

sumlength = 241536
sec_block 59
...........................................................upgrade_get_sum_disconcb 31336
erase sector=129 ok
….............................. (other sectors)
erase sector=187 ok

ALL=59 sectors erase ok!
upgrade_connect_cb
GET /user2.bin HTTP/1.1
Host: 192.168.0.84:80
Connection: keep-alive

HEAD /user2.bin HTTP/1.1
Host: 192.168.0.84:80
Connection: close

sumlength = 241536
upgrade file download start.
please check the bin file
totallen = 2687
totallen = 4147
upgrade_check
user_esp_platform_upgrade_failed


I restarting chip for updare because of glitches and even freezing when I call it from my application based on esphttpd project.
The code I use (enter point is initUpgradeTimer):

Code: Select all

LOCAL os_timer_t upgradeTimer;

#define pheadbuffer "Connection: keep-alive\r\n\
Cache-Control: no-cache\r\n\
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36 \r\n\
Accept: */*\r\n\
Accept-Encoding: gzip,deflate,sdch\r\n\
Accept-Language: zh-CN,zh;q=0.8\r\n\r\n"

LOCAL void ICACHE_FLASH_ATTR
user_esp_platform_upgrade_begin(struct espconn *pespconn, struct upgrade_server_info *server)
{
    uint8 user_bin[32] = {0}, i, j, pos;
    char esp_server_ip[4];
    char * curNum;

    server->pespconn = pespconn;
    server->port = 80;
    server->check_cb = user_esp_platform_upgrade_rsp;
    server->check_times = 1000000;//120000;

       esp_server_ip[0] = 192;
       esp_server_ip[1] = 168;
       esp_server_ip[2] = 0;
       esp_server_ip[3] = 84;


    os_memcpy(server->ip, esp_server_ip, 4);

        server->url = (uint8 *)os_malloc(512);

    if (system_upgrade_userbin_check() == UPGRADE_FW_BIN1) {
        os_memcpy(user_bin, "user2.bin", 18);
    } else if (system_upgrade_userbin_check() == UPGRADE_FW_BIN2) {
        os_memcpy(user_bin, "user1.bin", 18);
    }

    os_printf("user bin is %s \r\n",user_bin);


    os_sprintf((char*)server->url,
         "GET /%s HTTP/1.1\r\n"
         "Host: "IPSTR":%d\r\n"
         //"Connection: close\r\n"
         "Connection: keep-alive\r\n"
         "\r\n",
         user_bin, IP2STR(server->ip), server->port);


    if (system_upgrade_start(server) == false) {

       os_printf("upgrade is already started\n");
    }
}

void ICACHE_FLASH_ATTR upgradeTimercb(void *arg)
{
    struct ip_info ipconfig;

    os_timer_disarm(&upgradeTimer);

    wifi_get_ip_info(STATION_IF, &ipconfig);

    if (ipconfig.ip.addr != 0) {
       struct espconn *pespconn = NULL;
       struct upgrade_server_info *server = NULL;
       server = (struct upgrade_server_info *)os_malloc(sizeof(struct upgrade_server_info));

       //os_printf("call start upgrade \n\r");

       user_esp_platform_upgrade_begin(pespconn , server);
    } else {
        os_timer_setfn(&upgradeTimer, (os_timer_func_t *)upgradeTimercb, NULL);
        os_timer_arm(&upgradeTimer, 500, 0);
    }
}

LOCAL void ICACHE_FLASH_ATTR
user_esp_platform_upgrade_rsp(void *arg)
{
    struct upgrade_server_info *server = arg;
    if (server->upgrade_flag == true) {
       os_printf("user_esp_platform_upgrade_successful\n");

    } else {
       os_printf("user_esp_platform_upgrade_failed\n");
    }

    os_free(server->url);
    server->url = NULL;
    os_free(server);
    server = NULL;

    system_upgrade_reboot();
}

void ICACHE_FLASH_ATTR
initUpgradeTimer(void){
   os_timer_disarm(&upgradeTimer);

   os_timer_setfn(&upgradeTimer, (os_timer_func_t *)upgradeTimercb, (void *)0);
   os_timer_arm(&upgradeTimer, 5000, 1);
}

ESP_Faye
Posts: 1646
Joined: Mon Oct 27, 2014 11:08 am

Re: Upgrade problem ESP8266_NONOS_SDK_V1.5.0_15_11_27

Postby ESP_Faye » Thu Dec 24, 2015 2:08 pm

Hi,

Did you update the esp_iot_sdk\makefile and the esp_iot_sdk\app\gen_misc ? It seems that these two files are old version in your project.

Thanks for your interest in ESP8266 !

atwoz
Posts: 1
Joined: Sat Sep 12, 2015 7:51 am

Re: Upgrade problem ESP8266_NONOS_SDK_V1.5.0_15_11_27

Postby atwoz » Tue Jan 26, 2016 11:40 am

I seem to be having the same problem, I only see a diference in the Makefile where it calls the gen_appbin.py with an extra parameter. What does this extra parameter do?

ESP_Faye
Posts: 1646
Joined: Mon Oct 27, 2014 11:08 am

Re: Upgrade problem ESP8266_NONOS_SDK_V1.5.0_15_11_27

Postby ESP_Faye » Tue Feb 02, 2016 10:27 am

Hi,

Yes, we add a parameter to distinguish user1.bin and user2.bin.

Thanks for your interest in ESP8266 !

User avatar
kolban
Posts: 131
Joined: Tue Jun 16, 2015 1:09 pm
Location: Fort Worth, Texas, USA

Re: Upgrade problem ESP8266_NONOS_SDK_V1.5.0_15_11_27

Postby kolban » Sat Sep 17, 2016 1:09 pm

I see in gen_appbin.py there is a new parameter however the usage message for the tool does not show the new parameter. Do we have any documentation on the new parameter.

tinymind
Posts: 1
Joined: Sat Oct 22, 2016 6:50 pm

Re: Upgrade problem ESP8266_NONOS_SDK_V1.5.0_15_11_27

Postby tinymind » Sat Oct 22, 2016 6:54 pm

Hi,

I am also facing same problem and i am using ESP12E with 32Mbit flash.
Did you get any solution to this problem?

pratik

Re: Upgrade problem ESP8266_NONOS_SDK_V1.5.0_15_11_27

Postby pratik » Mon Oct 24, 2016 7:38 pm

You could switch to SDK v.2.0.0, it should work just fine :)

Who is online

Users browsing this forum: No registered users and 59 guests