1616from pybricksdev import resources
1717from pybricksdev ._vendored import dfu_create , dfu_upload
1818from pybricksdev .ble .lwp3 .bytecodes import HubKind
19+ from pybricksdev .usb import (
20+ LEGO_USB_VID ,
21+ MINDSTORMS_INVENTOR_DFU_USB_PID ,
22+ SPIKE_ESSENTIAL_DFU_USB_PID ,
23+ SPIKE_PRIME_DFU_USB_PID ,
24+ )
1925
2026FIRMWARE_ADDRESS = 0x08008000
2127FIRMWARE_SIZE = 1 * 1024 * 1024 - 32 * 1024 # 1MiB - 32KiB
22- LEGO_VID = 0x0694
23- SPIKE_PRIME_PID = 0x0008
24- SPIKE_ESSENTIAL_PID = 0x000C
25- MINDSTORMS_INVENTOR_PID = 0x0011
28+
2629
2730ALL_PIDS = {
28- MINDSTORMS_INVENTOR_PID : HubKind .TECHNIC_LARGE ,
29- SPIKE_ESSENTIAL_PID : HubKind .TECHNIC_SMALL ,
30- SPIKE_PRIME_PID : HubKind .TECHNIC_LARGE ,
31+ MINDSTORMS_INVENTOR_DFU_USB_PID : HubKind .TECHNIC_LARGE ,
32+ SPIKE_ESSENTIAL_DFU_USB_PID : HubKind .TECHNIC_SMALL ,
33+ SPIKE_PRIME_DFU_USB_PID : HubKind .TECHNIC_LARGE ,
3134}
32- ALL_DEVICES = [f"{ LEGO_VID :04x} :{ pid :04x} " for pid in ALL_PIDS .keys ()]
35+ ALL_DEVICES = [f"{ LEGO_USB_VID :04x} :{ pid :04x} " for pid in ALL_PIDS .keys ()]
3336
3437
3538def _get_dfu_util () -> ContextManager [os .PathLike ]:
@@ -165,7 +168,7 @@ def flash_dfu(firmware_bin: bytes, metadata: dict) -> None:
165168 try :
166169 # Determine correct product ID
167170
168- devices = dfu_upload .get_dfu_devices (idVendor = LEGO_VID )
171+ devices = dfu_upload .get_dfu_devices (idVendor = LEGO_USB_VID )
169172 if not devices :
170173 print (
171174 "No DFU devices found." ,
@@ -184,11 +187,11 @@ def flash_dfu(firmware_bin: bytes, metadata: dict) -> None:
184187 exit (1 )
185188
186189 # Create dfu file
187- device = "0x{0:04x}:0x{1:04x}" .format (LEGO_VID , product_id )
190+ device = "0x{0:04x}:0x{1:04x}" .format (LEGO_USB_VID , product_id )
188191 dfu_create .build (outfile , [[target ]], device )
189192
190193 # Init dfu tool
191- dfu_upload .__VID = LEGO_VID
194+ dfu_upload .__VID = LEGO_USB_VID
192195 dfu_upload .__PID = product_id
193196 dfu_upload .init ()
194197 elements = dfu_upload .read_dfu_file (outfile )
0 commit comments