import os import fileinput def patch_usb_ids(): # Find the core's pins_arduino.h for ESP32-S3 DevKitC-1 core_variants = os.path.expanduser("~/.platformio/packages/framework-arduinoespressif32/variants") if not os.path.exists(core_variants): # Try PlatformIO default location core_variants = os.path.join(os.environ.get("PLATFORMIO_PACKAGES_DIR", ""), "framework-arduinoespressif32", "variants") pins_file = os.path.join(core_variants, "esp32s3_devkitc", "pins_arduino.h") if not os.path.exists(pins_file): # Try alternative variant name pins_file = os.path.join(core_variants, "esp32s3", "pins_arduino.h") if os.path.exists(pins_file): print(f"Patching {pins_file} with Launchpad X VID/PID") # Read and replace with open(pins_file, 'r') as f: content = f.read() # Replace USB_VID and USB_PID content = content.replace( '#define USB_VID 0x303a', '#define USB_VID 0x1235' ) content = content.replace( '#define USB_PID 0x1001', '#define USB_PID 0x0103' ) # Add manufacturer/product if not present if 'USB_MANUFACTURER' not in content: content = content.replace( '#define USB_PID 0x0103', '#define USB_PID 0x0103\n#define USB_MANUFACTURER "Novation"\n#define USB_PRODUCT "Launchpad X"' ) with open(pins_file, 'w') as f: f.write(content) print("USB VID/PID patched successfully") else: print(f"WARNING: Could not find pins_arduino.h at {pins_file}") patch_usb_ids()