From: Carter Nelson Date: Tue, 4 Feb 2020 23:39:15 +0000 (-0800) Subject: Merge pull request #244 from caternuson/win_hid_fix2 X-Git-Tag: 3.9.0 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/bd7b612b3f59a62c75a3c884bd2c9cbf8cb9fbae?hp=f5a8e6d89f2ab408017ea426638cc2bc446e9533 Merge pull request #244 from caternuson/win_hid_fix2 Change MCP2221 reset behavior --- diff --git a/src/adafruit_blinka/microcontroller/mcp2221/mcp2221.py b/src/adafruit_blinka/microcontroller/mcp2221/mcp2221.py index 8247006..3cfb46b 100644 --- a/src/adafruit_blinka/microcontroller/mcp2221/mcp2221.py +++ b/src/adafruit_blinka/microcontroller/mcp2221/mcp2221.py @@ -4,6 +4,8 @@ import hid # Small values seem to help on some Windows setups MCP2221_HID_DELAY = float(os.environ.get('BLINKA_MCP2221_HID_DELAY', 0)) +# Windows also seems to want some time after a reset +MCP2221_RESET_DELAY = float(os.environ.get('BLINKA_MCP2221_RESET_DELAY', 0.1)) # from the C driver # http://ww1.microchip.com/downloads/en/DeviceDoc/mcp2221_0_1.tar.gz @@ -48,7 +50,6 @@ class MCP2221: self._hid = hid.device() self._hid.open(MCP2221.VID, MCP2221.PID) self._reset() - time.sleep(0.25) def _hid_xfer(self, report, response=True): # first byte is report ID, which =0 for MCP2221 @@ -105,6 +106,7 @@ class MCP2221: def _reset(self): self._hid_xfer(b'\x70\xAB\xCD\xEF', response=False) + time.sleep(MCP2221_RESET_DELAY) start = time.monotonic() while time.monotonic() - start < 5: try: