diff --git a/python/__init__.py b/python/__init__.py index f5ef5731..9d4722d5 100644 --- a/python/__init__.py +++ b/python/__init__.py @@ -525,13 +525,15 @@ class Panda: return True @staticmethod - def wait_for_dfu(dfu_serial: str, timeout: Optional[int] = None) -> bool: + def wait_for_dfu(dfu_serial: Optional[str], timeout: Optional[int] = None) -> bool: t_start = time.monotonic() - while dfu_serial not in PandaDFU.list(): + dfu_list = PandaDFU.list() + while (dfu_serial is None and len(dfu_list) == 0) or (dfu_serial is not None and dfu_serial not in dfu_list): logging.debug("waiting for DFU...") time.sleep(0.1) if timeout is not None and (time.monotonic() - t_start) > timeout: return False + dfu_list = PandaDFU.list() return True def up_to_date(self) -> bool: