MISO = pin.GP20
# access u2if via pin instance to open for specifc VID/PID
-pin.GP0._u2if_open_hid(0x239A, 0x80F2)
+pin.GP0._u2if_open_hid(0x239A, 0x00F1)
--- /dev/null
+"""Pin definitions for the ItsyBitsy RP2040 with u2if firmware."""
+
+"""
+Adafruit CircuitPython 6.2.0 on 2021-04-05; Adafruit ItsyBitsy RP2040 with rp2040
+>>> import board
+>>> board.
+A0 A1 A2 A3
+BUTTON D0 D1 D10
+D11 D12 D13 D2
+D24 D25 D3 D4
+D5 D7 D9 I2C
+LED MISO MOSI NEOPIXEL
+NEOPIXEL_POWER RX SCK SCL
+SDA SPI TX UART
+"""
+
+
+from adafruit_blinka.microcontroller.rp2040_u2if import pin
+
+D0 = pin.GP1
+D1 = pin.GP0
+D2 = pin.GP12
+D3 = pin.GP5
+D4 = pin.GP4
+D5 = pin.GP14
+D7 = pin.GP6
+D9 = pin.GP7
+D10 = pin.GP8
+D11 = pin.GP9
+D12 = pin.GP10
+D13 = pin.GP11
+D24 = pin.GP24
+D25 = pin.GP25
+
+A0 = pin.GP26
+A1 = pin.GP27
+A2 = pin.GP28
+#A3 = pin.GP29 # not currently supported in firmware
+
+SCL = pin.GP3
+SDA = pin.GP2
+
+SCLK = SCK = pin.GP18
+MOSI = pin.GP19
+MISO = pin.GP20
+
+NEOPIXEL = pin.GP17
+NEOPIXEL_POWER = pin.GP16
+
+BUTTON = pin.GP13
+
+# access u2if via pin instance to open for specifc VID/PID
+pin.GP0._u2if_open_hid(0x239A, 0x00FD)
NEOPIXEL = pin.GP27
# access u2if via pin instance to open for specifc VID/PID
-pin.GP0._u2if_open_hid(0x239A, 0x13C0)
+pin.GP0._u2if_open_hid(0x239A, 0x0109)
BUTTON = pin.GP21
# access u2if via pin instance to open for specifc VID/PID
-pin.GP0._u2if_open_hid(0x239A, 0x80F8)
+pin.GP0._u2if_open_hid(0x239A, 0x00F7)
if pin.id not in (26, 27, 28):
raise ValueError("Pin does not support ADC.")
super().__init__(pin)
+
+class AnalogIn_ItsyBitsy(AnalogIn):
+ """AnalogIn Base Class for ItsyBitsy 2040 u2if"""
+
+ def __init__(self, pin):
+ if pin.id not in (26, 27, 28):
+ raise ValueError("Pin does not support ADC.")
+ super().__init__(pin)
\ No newline at end of file
super().__init__(index, frequency=frequency)
class I2C_QTPY(I2C):
- """I2C Class for QT2040 Trinkey u2if"""
+ """I2C Class for QT Py 2if"""
def __init__(self, scl, sda, *, frequency=100000):
index = None
super().__init__(index, frequency=frequency)
+class I2C_ItsyBitsy(I2C):
+ """I2C Class for ItsyBitsy u2if"""
+
+ def __init__(self, scl, sda, *, frequency=100000):
+ index = None
+ if scl.id == 3 and sda.id == 2:
+ index = 1
+ if index is None:
+ raise ValueError("I2C not found on specified pins.")
+ self._index = index
+
+ super().__init__(index, frequency=frequency)
+
class I2C_QT2040_Trinkey(I2C):
"""I2C Class for QT2040 Trinkey u2if"""
# pylint: enable=too-many-arguments
class SPI_Pico(SPI):
+ """SPI Class for Pico u2if"""
def __init__(self, clock, *, baudrate=100000):
index = None
super().__init__(index, baudrate=baudrate)
class SPI_Feather(SPI):
+ """SPI Class for Feather u2if"""
def __init__(self, clock, *, baudrate=100000):
index = None
super().__init__(index, baudrate=baudrate)
class SPI_QTPY(SPI):
+ """SPI Class for QT Py u2if"""
def __init__(self, clock, *, baudrate=100000):
index = None
index = 0
if index is None:
raise ValueError("No SPI port on specified pin.")
+ super().__init__(index, baudrate=baudrate)
+
+class SPI_ItsyBitsy(SPI):
+ """SPI Class for ItsyBitsy u2if"""
+
+ def __init__(self, clock, *, baudrate=100000):
+ index = None
+ if clock.id == 18:
+ index = 0
+ if index is None:
+ raise ValueError("No SPI port on specified pin.")
super().__init__(index, baudrate=baudrate)
\ No newline at end of file
from adafruit_blinka.microcontroller.rp2040_u2if.analogio import AnalogIn_Feather as AnalogIn
elif detector.board.qtpy_u2if:
from adafruit_blinka.microcontroller.rp2040_u2if.analogio import AnalogIn_QTPY as AnalogIn
+elif detector.board.itsybitsy_u2if:
+ from adafruit_blinka.microcontroller.rp2040_u2if.analogio import AnalogIn_ItsyBitsy as AnalogIn
else:
raise NotImplementedError("analogio not supported for this board.")
elif board_id == ap_board.QTPY_U2IF:
from adafruit_blinka.board.qtpy_u2if import *
+elif board_id == ap_board.ITSYBITSY_U2IF:
+ from adafruit_blinka.board.itsybitsy_u2if import *
+
elif board_id == ap_board.QT2040_TRINKEY_U2IF:
from adafruit_blinka.board.qt2040_trinkey_u2if import *
if detector.board.qtpy_u2if:
from adafruit_blinka.microcontroller.rp2040_u2if.i2c import I2C_QTPY as _I2C
+ self._i2c = _I2C(scl, sda, frequency=frequency)
+ return
+ if detector.board.itsybitsy_u2if:
+ from adafruit_blinka.microcontroller.rp2040_u2if.i2c import I2C_ItsyBitsy as _I2C
+
self._i2c = _I2C(scl, sda, frequency=frequency)
return
if detector.board.qt2040_trinkey_u2if:
if detector.board.feather_u2if:
from adafruit_blinka.microcontroller.rp2040_u2if.spi import SPI_Feather as _SPI
+ self._spi = _SPI(clock) # this is really all that's needed
+ self._pins = (clock, clock, clock) # will determine MOSI/MISO from clock
+ return
+ if detector.board.itsybitsy_u2if:
+ from adafruit_blinka.microcontroller.rp2040_u2if.spi import SPI_ItsyBitsy as _SPI
+
self._spi = _SPI(clock) # this is really all that's needed
self._pins = (clock, clock, clock) # will determine MOSI/MISO from clock
return
from adafruit_blinka.microcontroller.rp2040_u2if.spi import SPI_Pico as _SPI
elif detector.board.feather_u2if:
from adafruit_blinka.microcontroller.rp2040_u2if.spi import SPI_Feather as _SPI
+ elif detector.board.itsybitsy_u2if:
+ from adafruit_blinka.microcontroller.rp2040_u2if.spi import SPI_ItsyBitsy as _SPI
+ elif detector.board.qtpy_u2if:
+ from adafruit_blinka.microcontroller.rp2040_u2if.spi import SPI_QTPY as _SPI
elif detector.chip.id == ap_chip.RP2040:
from adafruit_blinka.microcontroller.rp2040.spi import SPI as _SPI
else:
from adafruit_blinka.microcontroller.allwinner.h616.pin import Pin
elif detector.board.pico_u2if:
from adafruit_blinka.microcontroller.rp2040_u2if.pin import Pin
-elif detector.board.feather_u2if:
- from adafruit_blinka.microcontroller.rp2040_u2if.pin import Pin
-elif detector.board.qtpy_u2if:
- from adafruit_blinka.microcontroller.rp2040_u2if.pin import Pin
-elif detector.board.qt2040_trinkey_u2if:
+elif detector.board.feather_u2if or detector.board.qtpy_u2if or \
+ detector.board.itsybitsy_u2if or detector.board.qt2040_trinkey_u2if:
from adafruit_blinka.microcontroller.rp2040_u2if.pin import Pin
from adafruit_blinka import Enum, ContextManaged
if detector.board.any_raspberry_pi:
from adafruit_blinka.microcontroller.bcm283x import neopixel as _neopixel
-elif detector.board.pico_u2if or detector.board.feather_u2if or \
- detector.board.qtpy_u2if or detector.board.qt2040_trinkey_u2if:
+elif detector.board.pico_u2if:
+ from adafruit_blinka.microcontroller.rp2040_u2if import neopixel as _neopixel
+elif detector.board.feather_u2if or detector.board.qtpy_u2if or \
+ detector.board.itsybitsy_u2if or detector.board.qt2040_trinkey_u2if:
from adafruit_blinka.microcontroller.rp2040_u2if import neopixel as _neopixel
elif "sphinx" in sys.modules:
pass
from adafruit_blinka.microcontroller.generic_linux.sysfs_pwmout import PWMOut
elif detector.board.pico_u2if:
from adafruit_blinka.microcontroller.rp2040_u2if.pwmio import PWMOut
-elif detector.board.feather_u2if:
+elif detector.board.feather_u2if or detector.board.qtpy_u2if or \
+ detector.board.itsybitsy_u2if or detector.board.qt2040_trinkey_u2if:
from adafruit_blinka.microcontroller.rp2040_u2if.pwmio import PWMOut
elif "sphinx" in sys.modules:
pass