Skip to content

Instantly share code, notes, and snippets.

@LSagent
Forked from nebhead/CustomUSBName.md
Last active March 15, 2026 03:36
Show Gist options
  • Select an option

  • Save LSagent/c841f5122986a78ad664a1da1640d782 to your computer and use it in GitHub Desktop.

Select an option

Save LSagent/c841f5122986a78ad664a1da1640d782 to your computer and use it in GitHub Desktop.
Instructions for Adding Custom Naming for Arduino USB Device

The following is capturing instructions on how to add custom naming for an Arduino Leonardo (or generic pro-micro) for a DIY space mouse project.
Being new to Arduino IDE I found benefit in learning about several priciples from this video shared by the original poster. Reference was taken from the following YouTube video (https://youtu.be/hoCOq9Ngp44?t=1156) approx 20min. Code section esp helpful.

WINDOWS Instructions:

Find the folder where the Arduino Hardware 'boards.txt' lives. Likely here:

'C:\Users<USERNAME>\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.7\boards.txt'

You may need to show hidden files/folders in the options settings to find the 'AppData' folder

Copy the boards.txt file and rename it as a backup. ie 'OLDboards.txt' just in case

Replace the content of 'boards.txt` with the following:

boards.txt

leonardo.name=DaemonBite
leonardo.vid.0=0x2341
leonardo.pid.0=0x0036
leonardo.vid.1=0x2341
leonardo.pid.1=0x8036
leonardo.vid.2=0x2A03
leonardo.pid.2=0x0036
leonardo.vid.3=0x2A03
leonardo.pid.3=0x8036

leonardo.upload.tool=avrdude
leonardo.upload.tool.serial=avrdude         'this was missing from the original as seems needed for new versions of the Arduino IDE
leonardo.upload.protocol=avr109
leonardo.upload.maximum_size=28672
leonardo.upload.maximum_data_size=2560
leonardo.upload.speed=57600
leonardo.upload.disable_flushing=true
leonardo.upload.use_1200bps_touch=true
leonardo.upload.wait_for_upload_port=true

leonardo.bootloader.tool=avrdude
leonardo.bootloader.low_fuses=0xff
leonardo.bootloader.high_fuses=0xd8
leonardo.bootloader.extended_fuses=0xcb
leonardo.bootloader.file=caterina/Caterina-Leonardo.hex
leonardo.bootloader.unlock_bits=0x3F
leonardo.bootloader.lock_bits=0x2F

leonardo.build.mcu=atmega32u4
leonardo.build.f_cpu=16000000L
leonardo.build.vid=0x2341
leonardo.build.pid=0x8037
leonardo.build.usb_product="DaemonBite (Player 1)"
leonardo.build.board=AVR_LEONARDO
leonardo.build.core=arduino
leonardo.build.variant=leonardo
leonardo.build.extra_flags={build.usb_flags}

Edit the following lines to create custom board / USB naming:

leonardo.name=DaemonBite leonardo.build.usb_product="DaemonBite (Player 1)"

Ensure for each custom name you assign, you change the following line:

leonardo.build.pid=0x8037

pid refers to Product ID vid refers to Vendor ID

In this case, instead of incrementing to avoid conflicts the pid for the spacemouse should be used.
I changed the VID and PID values as per jfedor's instructions:

vid=0x256f, pid=0xc631 (SpaceMouse Pro Wireless (cabled))

Now when you launch the Arduino IDE, you should see the new board in the Tools > Boards menu. (or at the bottom of the dropdown "Select other board and port"

Make sure everything compiles/builds correctly, then upload. That should be everything. Use a GPT to help you troubleshoot If you haven't tried that before it is very helpful.

Linux Instructions

Similar to above but specific to your environment.

probably find the folder here: ~/.arduino15/packages/SparkFun/hardware/avr/1.1.13

Copy boards.txt to boards.txt.org (make your backup)

Modify below lines in boards.txt (review for possible changes needed first)

################################################################################
################################## Pro Micro ###################################
################################################################################
promicro.name=DaemonBite

promicro.build.usb_manufacturer="DaemonBite"
promicro.build.usb_product="Arcade (P1)"
promicro.build.vid=0x1b5f

############################# Pro Micro 5V / 16MHz #############################

promicro.menu.cpu.16MHzatmega32U4.build.pid.0=0x9208
promicro.menu.cpu.16MHzatmega32U4.build.pid.1=0x9207
promicro.menu.cpu.16MHzatmega32U4.build.pid=0x9207
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment