Skip to content

Commit 7a79652

Browse files
authored
Merge pull request #170 from caternuson/more_u2ifs
Adding more u2if firmware boards
2 parents 626790e + 39348fc commit 7a79652

File tree

5 files changed

+63
-6
lines changed

5 files changed

+63
-6
lines changed

adafruit_platformdetect/board.py

+28-1
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,14 @@ def id(self):
161161
board_id = boards.CORAL_EDGE_TPU_DEV_MINI
162162
elif chip_id == chips.PICO_U2IF:
163163
board_id = boards.PICO_U2IF
164-
164+
elif chip_id == chips.FEATHER_U2IF:
165+
board_id = boards.FEATHER_U2IF
166+
elif chip_id == chips.ITSYBITSY_U2IF:
167+
board_id = boards.ITSYBITSY_U2IF
168+
elif chip_id == chips.QTPY_U2IF:
169+
board_id = boards.QTPY_U2IF
170+
elif chip_id == chips.QT2040_TRINKEY_U2IF:
171+
board_id = boards.QT2040_TRINKEY_U2IF
165172
self._board_id = board_id
166173
return board_id
167174

@@ -611,6 +618,26 @@ def pico_u2if(self):
611618
"""Check whether the current board is a RPi Pico w/ u2if."""
612619
return self.id == boards.PICO_U2IF
613620

621+
@property
622+
def feather_u2if(self):
623+
"""Check whether the current board is a Feather RP2040 w/ u2if."""
624+
return self.id == boards.FEATHER_U2IF
625+
626+
@property
627+
def itsybitsy_u2if(self):
628+
"""Check whether the current board is a Itsy Bitsy w/ u2if."""
629+
return self.id == boards.ITSYBITSY_U2IF
630+
631+
@property
632+
def qtpy_u2if(self):
633+
"""Check whether the current board is a QT Py w/ u2if."""
634+
return self.id == boards.QTPY_U2IF
635+
636+
@property
637+
def qt2040_trinkey_u2if(self):
638+
"""Check whether the current board is a QT Py w/ u2if."""
639+
return self.id == boards.QT2040_TRINKEY_U2IF
640+
614641
@property
615642
def binho_nova(self):
616643
"""Check whether the current board is an BINHO NOVA."""

adafruit_platformdetect/chip.py

+20-3
Original file line numberDiff line numberDiff line change
@@ -108,17 +108,34 @@ def id(
108108
"BLINKA_MCP2221 environment variable "
109109
+ "set, but no MCP2221 device found"
110110
)
111-
if os.environ.get("BLINKA_PICO_U2IF"):
111+
if os.environ.get("BLINKA_U2IF"):
112112
import hid
113113

114114
# look for it based on PID/VID
115115
for dev in hid.enumerate():
116+
# Raspberry Pi Pico
116117
if dev["vendor_id"] == 0xCAFE and dev["product_id"] == 0x4005:
117118
self._chip_id = chips.PICO_U2IF
118119
return self._chip_id
120+
# Feather RP2040
121+
if dev["vendor_id"] == 0x239A and dev["product_id"] == 0x00F1:
122+
self._chip_id = chips.FEATHER_U2IF
123+
return self._chip_id
124+
# Itsy Bitsy RP2040
125+
if dev["vendor_id"] == 0x239A and dev["product_id"] == 0x00FD:
126+
self._chip_id = chips.ITSYBITSY_U2IF
127+
return self._chip_id
128+
# QT Py RP2040
129+
if dev["vendor_id"] == 0x239A and dev["product_id"] == 0x00F7:
130+
self._chip_id = chips.QTPY_U2IF
131+
return self._chip_id
132+
# QT2040 Trinkey
133+
if dev["vendor_id"] == 0x239A and dev["product_id"] == 0x0109:
134+
self._chip_id = chips.QT2040_TRINKEY_U2IF
135+
return self._chip_id
119136
raise RuntimeError(
120-
"BLINKA_PICO_U2IF environment variable "
121-
+ "set, but no Pico device found"
137+
"BLINKA_U2IF environment variable "
138+
+ "set, but no compatible device found"
122139
)
123140
if os.environ.get("BLINKA_GREATFET"):
124141
import usb

adafruit_platformdetect/constants/boards.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,13 @@
115115

116116
MICROCHIP_MCP2221 = "MICROCHIP_MCP2221"
117117

118-
# Raspberry Pi Pico with u2if firmware
118+
# Boards with u2if firmware
119119
# https://github.com/execuc/u2if
120120
PICO_U2IF = "PICO_U2IF"
121+
FEATHER_U2IF = "FEATHER_U2IF"
122+
ITSYBITSY_U2IF = "ITSYBITSY_U2IF"
123+
QTPY_U2IF = "QTPY_U2IF"
124+
QT2040_TRINKEY_U2IF = "QT2040_TRINKEY_U2IF"
121125

122126
BINHO_NOVA = "BINHO_NOVA"
123127

adafruit_platformdetect/constants/chips.py

+5
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,10 @@
4747
MT8167 = "MT8167"
4848
ATOM_X5_Z8350 = "X5-Z8350"
4949
PICO_U2IF = "PICO_U2IF"
50+
FEATHER_U2IF = "FEATHER_U2IF"
51+
ITSYBITSY_U2IF = "ITSYBITSY_U2IF"
52+
QTPY_U2IF = "QTPY_U2IF"
53+
QT2040_TRINKEY_U2IF = "QT2040_TRINKEY_U2IF"
54+
5055

5156
BCM_RANGE = {"BCM2708", "BCM2709", "BCM2711", "BCM2835", "BCM2837"}

bin/detect.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,11 @@
3434
| detector.board.MICROCHIP_MCP2221
3535
| detector.board.BINHO_NOVA
3636
| detector.board.GREATFET_ONE
37-
| detector.board.PICO_U2IF,
37+
| detector.board.PICO_U2IF
38+
| detector.board.FEATHER_U2IF
39+
| detector.board.ITSYBITY_U2IF
40+
| detector.board.QTPY_U2IF
41+
| detector.board.QT2040_TRINKEY_U2IF,
3842
)
3943

4044
if detector.board.any_raspberry_pi:

0 commit comments

Comments
 (0)