diff --git a/MicroPython_BUILD/BUILD.sh b/MicroPython_BUILD/BUILD.sh index e79a503..487f407 100755 --- a/MicroPython_BUILD/BUILD.sh +++ b/MicroPython_BUILD/BUILD.sh @@ -179,6 +179,15 @@ do fi fi + if [ "${arg}" == "flash" ]; then + if [ ! -f "build/MicroPython.bin" ]; then + echo "'build/MicroPython.bin' not found" + echo "The firmware must be built before flashing!" + echo "" + exit 1 + fi + fi + executeCommand result=$? diff --git a/MicroPython_BUILD/build_func.sh b/MicroPython_BUILD/build_func.sh index 7be7df4..1c28f96 100755 --- a/MicroPython_BUILD/build_func.sh +++ b/MicroPython_BUILD/build_func.sh @@ -124,11 +124,10 @@ set_partitions() { fi fi - if [ ${size} -le 0 ]; then size=1024; fi + if [ ${size} -le 64 ]; then size=1024; fi if [ ${fbin_size} -gt ${size} ]; then size=$(( (($fbin_size / 64) + 1) * 64 )); fi - if [ ${part_lay3} == "yes" ]; then fs_size=$(( $flash_sz - $size - $size - $size - 64)) fs_start=$(( (64 + $size + $size + $size) * 1024 )) @@ -172,7 +171,7 @@ set_partitions() { echo "internalfs, data, ${PART_SUB_TYPE} , ${fs_size}K," >> partitions_mpy.csv else # --- Single partition layout is used --- - if [ ${size} -le 0 ]; then size=1024; fi + if [ ${size} -le 64 ]; then size=1024; fi if [ ${fbin_size} -gt ${size} ]; then size=$(( (($fbin_size / 64) + 1) * 64 )); fi diff --git a/MicroPython_BUILD/components/micropython/esp32/modota.c b/MicroPython_BUILD/components/micropython/esp32/modota.c index 9630127..409e25a 100644 --- a/MicroPython_BUILD/components/micropython/esp32/modota.c +++ b/MicroPython_BUILD/components/micropython/esp32/modota.c @@ -620,19 +620,39 @@ STATIC mp_obj_t mod_ota_set_boot(mp_uint_t n_args, const mp_obj_t *pos_args, mp_ part_name = (char *)mp_obj_str_get_str(args[0].u_obj); - const esp_partition_t *boot_part = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_FACTORY, part_name); - if (boot_part == NULL) { - ESP_LOGE(TAG, "Partition not found !"); - return mp_const_false; + const esp_partition_t *boot_part1 = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_FACTORY, part_name); + const esp_partition_t *boot_part2 = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_OTA_0, part_name); + const esp_partition_t *boot_part3 = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_OTA_1, part_name); + if ((boot_part1 == NULL) && (boot_part2 == NULL) && (boot_part3 == NULL)) { + ESP_LOGE(TAG, "Partition not found !"); + return mp_const_false; } // === Set boot partition === - esp_err_t err = esp_ota_set_boot_partition(boot_part); + char sptype[16] = {'\0'}; + char splabel[16] = {'\0'}; + esp_err_t err = ESP_FAIL; + + if (boot_part1 != NULL) { + sprintf(sptype,"Factory"); + sprintf(splabel, boot_part1->label); + err = esp_ota_set_boot_partition(boot_part1); + } + else if (boot_part2 != NULL) { + sprintf(sptype,"OTA_1"); + sprintf(splabel, boot_part2->label); + err = esp_ota_set_boot_partition(boot_part2); + } + else if (boot_part3 != NULL) { + sprintf(sptype,"OTA_2"); + sprintf(splabel, boot_part3->label); + err = esp_ota_set_boot_partition(boot_part3); + } if (err != ESP_OK) { ESP_LOGE(TAG, "OTA set_boot_partition failed! err=0x%x", err); return mp_const_false; } - ESP_LOGW(TAG, "On next reboot the system will be started from '%s' partition", boot_part->label); + ESP_LOGW(TAG, "On next reboot the system will be started from '%s' partition (%s)", splabel, sptype); return mp_const_true; } diff --git a/MicroPython_BUILD/components/micropython/esp32/mpversion.h b/MicroPython_BUILD/components/micropython/esp32/mpversion.h index 738fe43..3f52b74 100644 --- a/MicroPython_BUILD/components/micropython/esp32/mpversion.h +++ b/MicroPython_BUILD/components/micropython/esp32/mpversion.h @@ -1,8 +1,8 @@ // MicroPython version info -#define MICROPY_GIT_TAG "ESP32_LoBo_v3.1.7" +#define MICROPY_GIT_TAG "ESP32_LoBo_v3.1.8" #define MICROPY_GIT_HASH "g2ddee729" -#define MICROPY_BUILD_DATE "2017-01-18" +#define MICROPY_BUILD_DATE "2017-01-19" #define MICROPY_VERSION_MAJOR (3) #define MICROPY_VERSION_MINOR (1) -#define MICROPY_VERSION_MICRO (7) -#define MICROPY_VERSION_STRING "3.1.7" +#define MICROPY_VERSION_MICRO (8) +#define MICROPY_VERSION_STRING "3.1.8" diff --git a/MicroPython_BUILD/firmware/MicroPython_LoBo_Firmwares.zip b/MicroPython_BUILD/firmware/MicroPython_LoBo_Firmwares.zip index 0d08726..23f401c 100644 Binary files a/MicroPython_BUILD/firmware/MicroPython_LoBo_Firmwares.zip and b/MicroPython_BUILD/firmware/MicroPython_LoBo_Firmwares.zip differ diff --git a/MicroPython_BUILD/firmware/esp32/MicroPython.bin b/MicroPython_BUILD/firmware/esp32/MicroPython.bin index b6a0c2a..791381d 100644 Binary files a/MicroPython_BUILD/firmware/esp32/MicroPython.bin and b/MicroPython_BUILD/firmware/esp32/MicroPython.bin differ diff --git a/MicroPython_BUILD/firmware/esp32/bootloader/bootloader.bin b/MicroPython_BUILD/firmware/esp32/bootloader/bootloader.bin index 32bf737..7024f4a 100644 Binary files a/MicroPython_BUILD/firmware/esp32/bootloader/bootloader.bin and b/MicroPython_BUILD/firmware/esp32/bootloader/bootloader.bin differ diff --git a/MicroPython_BUILD/firmware/esp32_ota/MicroPython.bin b/MicroPython_BUILD/firmware/esp32_ota/MicroPython.bin index 2cabc9e..72412a4 100644 Binary files a/MicroPython_BUILD/firmware/esp32_ota/MicroPython.bin and b/MicroPython_BUILD/firmware/esp32_ota/MicroPython.bin differ diff --git a/MicroPython_BUILD/firmware/esp32_ota/bootloader/bootloader.bin b/MicroPython_BUILD/firmware/esp32_ota/bootloader/bootloader.bin index 12322a6..8d1754a 100644 Binary files a/MicroPython_BUILD/firmware/esp32_ota/bootloader/bootloader.bin and b/MicroPython_BUILD/firmware/esp32_ota/bootloader/bootloader.bin differ diff --git a/MicroPython_BUILD/firmware/esp32_psram/MicroPython.bin b/MicroPython_BUILD/firmware/esp32_psram/MicroPython.bin index 0fc9a33..24e5f61 100644 Binary files a/MicroPython_BUILD/firmware/esp32_psram/MicroPython.bin and b/MicroPython_BUILD/firmware/esp32_psram/MicroPython.bin differ diff --git a/MicroPython_BUILD/firmware/esp32_psram/bootloader/bootloader.bin b/MicroPython_BUILD/firmware/esp32_psram/bootloader/bootloader.bin index e5436ec..17c7ff9 100644 Binary files a/MicroPython_BUILD/firmware/esp32_psram/bootloader/bootloader.bin and b/MicroPython_BUILD/firmware/esp32_psram/bootloader/bootloader.bin differ diff --git a/MicroPython_BUILD/firmware/esp32_psram_all/MicroPython.bin b/MicroPython_BUILD/firmware/esp32_psram_all/MicroPython.bin index ff69386..c4ed0d8 100644 Binary files a/MicroPython_BUILD/firmware/esp32_psram_all/MicroPython.bin and b/MicroPython_BUILD/firmware/esp32_psram_all/MicroPython.bin differ diff --git a/MicroPython_BUILD/firmware/esp32_psram_all/bootloader/bootloader.bin b/MicroPython_BUILD/firmware/esp32_psram_all/bootloader/bootloader.bin index eb5153c..9e8aec9 100644 Binary files a/MicroPython_BUILD/firmware/esp32_psram_all/bootloader/bootloader.bin and b/MicroPython_BUILD/firmware/esp32_psram_all/bootloader/bootloader.bin differ diff --git a/MicroPython_BUILD/firmware/esp32_psram_ota/MicroPython.bin b/MicroPython_BUILD/firmware/esp32_psram_ota/MicroPython.bin index fd37909..4db1551 100644 Binary files a/MicroPython_BUILD/firmware/esp32_psram_ota/MicroPython.bin and b/MicroPython_BUILD/firmware/esp32_psram_ota/MicroPython.bin differ diff --git a/MicroPython_BUILD/firmware/esp32_psram_ota/bootloader/bootloader.bin b/MicroPython_BUILD/firmware/esp32_psram_ota/bootloader/bootloader.bin index 9327d2e..9c70c09 100644 Binary files a/MicroPython_BUILD/firmware/esp32_psram_ota/bootloader/bootloader.bin and b/MicroPython_BUILD/firmware/esp32_psram_ota/bootloader/bootloader.bin differ