+ def _reset(self):
+ # get a HID device
+ self._hid = hid.device()
+ # open and reset
+ self._hid.open(Pico_u2if.VID, Pico_u2if.PID)
+ resp = self._hid_xfer(bytes([self.SYS_RESET]), True)
+ if resp[1] != self.RESP_OK:
+ raise RuntimeError("Reset error.")
+ # reopen
+ max_retry = 10
+ retries = 0
+ while True:
+ try:
+ self._hid.open(Pico_u2if.VID, Pico_u2if.PID)
+ return True
+ except OSError:
+ if retries >= max_retry:
+ break
+ time.sleep(0.1)
+ retries += 1
+ return False
+