How to define custom usb PID VID and product names with PICO?

Hello! I’ve tried this solution for a HID gamepad using the Adafruit TinyUSB library, however whenever I open up the menu to see game controllers (Joy.cpl) it still shows as Pico. I’ve created the custom board, I’ve tried changing it within the TinyUSB library, and also within the .platformio folder, but it still shows Pico. Not sure what to do.

Please show the exact project files.

Of course, the code is attached below. Here is my platformio.ini

[env:pico]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
board = myboard
framework = arduino
board_build.core = earlephilhower
upload_port = COM10
lib_deps =
    adafruit/Adafruit BusIO@^1.15.0
    olikraus/U8g2@^2.35.15
    adafruit/Adafruit TinyUSB Library@^3.1.3
    feralai/MPG@^0.4.0
    build_flags =
    -D USE_TINYUSB
    -Iinclude/
    -D NDEBUG
    -O3
monitor_speed = 115200

This is my custom board

{
    "build": {
      "arduino": {
        "earlephilhower": {
          "variant": "rpipico",
          "boot2_source": "boot2_w25q080_2_padded_checksum.S",
          "usb_vid": "0x2e8a",
          "usb_pid": "0x000a",
          "usb_manufacturer": "mdudhia721",
          "usb_product": "testnamebox"        
        }

I wont attach the rest as the only things I’ve changed are the USB manufacturer and product name. The rest is the exact same as the pico.json in the link provided above.

With these changes, this device still shows up as “Pico.”

I’ve been doing something similar.
I did not touch the PID/VIDs

I decided to go on gamepad-tester to see whether the name actually changed and it did!

Windows still shows its as Pico (in my case YD RP2040)

I then decided to do some googling to see if there was anything I could find, and it lead me to this

Long story short:

Open up regedit.exe

Head to Computer\HKEY_CURRENT_USER\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\

One of those folders will match with your PID/VID, if you open it there should be an OEMName field with Pico (or whatever is wrong)

Delete the entire folder.

Replug your device.

Game Controllers should report the new device.

Windows Caches the HID names for Joysticks and thats been the problem for me

1 Like