Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@nebhead
Last active March 2, 2024 14:27
Show Gist options
  • Star 16 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nebhead/c92da8f1a8b476f7c36c032a0ac2592a to your computer and use it in GitHub Desktop.
Save nebhead/c92da8f1a8b476f7c36c032a0ac2592a 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 my Arcade Controller device. I wanted to have a simple record so that when I inevitably come back to this someday I can recall how I accomplished this. Reference was taken from the following YouTube video (https://youtu.be/hoCOq9Ngp44?t=1156) at approximately 19m16s.

WINDOWS Instructions:

Create a new set of folders: ~\Documents\Arduino\hardware\daemonbite\avr

Copy everything from C:\Program Files (x86)\Arduino\hardware\arduino\avr to this new folder.

Replace the boards.txt in the new folder 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.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

In this case, I incremented the default Arduino Leonardo by 1, from 0x8036 to 0x8037 (player 1), 0x8038 (player 2).

Now when you launch the Arduino IDE, you should see the new board in the Tools > Boards menu.

Make sure everything compiles/builds correctly, then flash. That should be everything.

One future thing to try might be to add usb manufacturer because it will come up as (Arduino LLC with above).

leonardo.build.usb_manufacturer="Arcade"

Linux Instructions

Go to ~/.arduino15/packages/SparkFun/hardware/avr/1.1.13

Copy boards.txt to boards.txt.org

Modify below lines in boards.txt

################################################################################
################################## 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
@TonyWhitley
Copy link

TonyWhitley commented Oct 28, 2023

Thanks for the magic charm that makes it work:
Ensure for each custom name you assign, you change the following line:
leonardo.build.pid=0x8037

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment