4545
4646LORA_REGIONS = ["EU868" , "US915" , "AS923" , "AU915" , "IN865" ]
4747
48- PIC_BOARDS = ["04D8:F013" , "04D8:F012" , "04D8:EF98" , "04D8:EF38" ]
48+ PIC_BOARDS = ["04D8:F013" , "04D8:F012" , "04D8:EF98" , "04D8:EF38" , "04D8:ED14" ]
4949
5050PARTITIONS = { 'secureboot' : ["0x0" , "0x8000" ],
5151 'bootloader' : ["0x1000" , "0x7000" ],
@@ -195,6 +195,7 @@ def load_tar(fileobj, prog, secure=False):
195195 except Exception as e :
196196 script = e
197197 print_exception (e )
198+ raise ValueError ("Your board is not supported by this firmware package" )
198199 try :
199200 for i in range (len (script )):
200201 if script [i ][0 ] == 'w' or script [i ][0 ] == 'o' :
@@ -460,7 +461,7 @@ def write_remote(self, contents):
460461 config_block = self .read (cb_start , cb_len )
461462 self .write (cb_start , contents [0 :52 ] + config_block [52 :])
462463
463- def run_script (self , script , config_block = None , erase_fs = False , chip_id = None , ui_label = None , progress_fs = None ):
464+ def run_script (self , script , config_block = None , erase_fs = False , chip_id = None , ui_label = None , progress_fs = None , erase_nvs = False ):
464465 self .__progress_fs = progress_fs
465466 print_debug ('script type: {}' .format (type (script )))
466467 if script is None :
@@ -475,10 +476,12 @@ def run_script(self, script, config_block=None, erase_fs=False, chip_id=None, ui
475476 for instruction in script :
476477 if instruction [1 ] == 'fs' or instruction [1 ] == 'fs1' :
477478 erase_fs = (instruction [0 ] == 'e' )
479+ elif instruction [1 ] == 'nvs' :
480+ erase_nvs = (instruction [0 ] == 'e' )
478481 elif instruction [1 ] == 'all' :
479482 erase_fs = False
483+ erase_nvs = False
480484 no_erase = not (instruction [0 ] == 'e' )
481-
482485 start_time = time .time ()
483486 total_size = 0
484487 for instruction in script :
@@ -524,6 +527,8 @@ def run_script(self, script, config_block=None, erase_fs=False, chip_id=None, ui
524527
525528 if erase_fs :
526529 self .erase_fs (chip_id , ui_label = ui_label )
530+ if erase_nvs :
531+ self .erase (int (PARTITIONS .get ('nvs' )[0 ], 16 ), int (PARTITIONS .get ('nvs' )[1 ], 16 ), ui_label = ui_label , updateList = True )
527532
528533 for instruction in script :
529534 if instruction [0 ].split (':' , 2 )[0 ] == 'w' or instruction [0 ].split (':' , 2 )[0 ] == 'o' :
@@ -751,8 +756,8 @@ def set_pycom_config(self, config_block, boot_fs_type=None):
751756 return self .set_pybytes_config (new_config_block , force_update = True )
752757
753758 def print_cb (self , config_block ):
754- if DEBUG :
755- for x in range (0 , 30 ):
759+ if DEBUG :
760+ for x in range (0 , 30 ):
756761 print (binascii .hexlify (config_block [x * 32 :x * 32 + 32 ]))
757762
758763 def set_pybytes_config (self , config_block , userid = None , device_token = None , mqttServiceAddress = None , network_preferences = None , extra_preferences = None , force_update = None , auto_start = None ):
0 commit comments