]> Repositories - Adafruit_Blinka-hackapet.git/blobdiff - src/adafruit_blinka/microcontroller/rp2040_u2if/rp2040_u2if.py
Added pre-commit support
[Adafruit_Blinka-hackapet.git] / src / adafruit_blinka / microcontroller / rp2040_u2if / rp2040_u2if.py
index 995d14c89bafc644bec00fc949c0106ebd99822d..8dfda5b7f00cdeb3bf9ca44d3df01b80edd24764 100644 (file)
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
 """Helper class for use with RP2040 running u2if firmware"""
 # https://github.com/execuc/u2if
 
@@ -68,22 +71,15 @@ class RP2040_u2if:
     PWM_GET_DUTY_NS = 0x37
 
     def __init__(self):
+        self._vid = None
+        self._pid = None
+        self._hid = None
         self._opened = False
         self._i2c_index = None
         self._spi_index = None
         self._serial = None
         self._neopixel_initialized = False
-        # self._vid = vid
-        # self._pid = pid
-        # self._hid = hid.device()
-        # self._hid.open(self._vid, self._pid)
-        # if RP2040_U2IF_RESET_DELAY >= 0:
-        #     self._reset()
-        # self._i2c_index = None
-        # self._spi_index = None
-        # self._serial = None
-        # self._neopixel_initialized = False
-        # self._uart_rx_buffer = None
+        self._uart_rx_buffer = None
 
     def _hid_xfer(self, report, response=True):
         """Perform HID Transfer"""
@@ -113,6 +109,8 @@ class RP2040_u2if:
     # MISC
     # ----------------------------------------------------------------
     def open(self, vid, pid):
+        """Open HID interface for given USB VID and PID."""
+
         if self._opened:
             return
         self._vid = vid
@@ -277,7 +275,7 @@ class RP2040_u2if:
         out_start=0,
         out_end=None,
         in_start=0,
-        in_end=None
+        in_end=None,
     ):
         """Write data from buffer_out to an address and then
         read data from an address and into buffer_in
@@ -370,7 +368,7 @@ class RP2040_u2if:
         out_start=0,
         out_end=None,
         in_start=0,
-        in_end=None
+        in_end=None,
     ):
         """SPI write and readinto."""
         raise NotImplementedError("SPI write_readinto Not implemented")
@@ -380,7 +378,6 @@ class RP2040_u2if:
     # ----------------------------------------------------------------
     def neopixel_write(self, gpio, buf):
         """NeoPixel write."""
-        print("open serial")
         # open serial (data is sent over this)
         if self._serial is None:
             import serial
@@ -394,7 +391,6 @@ class RP2040_u2if:
         if self._serial is None:
             raise RuntimeError("Could not find Pico com port.")
 
-        print("init")
         # init
         if not self._neopixel_initialized:
             # deinit any current setup
@@ -415,7 +411,6 @@ class RP2040_u2if:
 
         self._serial.reset_output_buffer()
 
-        print("write")
         # write
         # command is done over HID
         remain_bytes = len(buf)
@@ -430,28 +425,22 @@ class RP2040_u2if:
                     "Neopixel write error : too many pixel for the firmware."
                 )
             elif resp[2] == 0x02:
-                print(resp[0:10])
                 raise RuntimeError(
                     "Neopixel write error : transfer already in progress."
                 )
             else:
                 raise RuntimeError("Neopixel write error.")
-        print("write 1")
         # buffer is sent over serial
         self._serial.write(buf)
         # hack (see u2if)
-        print("write 2")
         if len(buf) % 64 == 0:
             self._serial.write([0])
         self._serial.flush()
         # polling loop to wait for write complete?
-        print("write 3")
         time.sleep(0.1)
         resp = self._hid.read(64)
-        print("write 4")
         while resp[0] != self.WS2812B_WRITE:
             resp = self._hid.read(64)
-        print("write 5")
         if resp[1] != self.RESP_OK:
             raise RuntimeError("Neopixel write (flush) error.")
 
@@ -515,4 +504,5 @@ class RP2040_u2if:
         if resp[1] != self.RESP_OK:
             raise RuntimeError("PWM set duty cycle error.")
 
+
 rp2040_u2if = RP2040_u2if()