# VID/PID Hardware ID simulation

Source: https://docs.bytebolt.at/bytebolt-one/vid-pid/

> Override USB Vendor ID, Product ID, and product name on BYTEBOLT One via Arduino's boards.local.txt — simulate any HID device without modifying the Arduino core.

In your [Arduino setup](https://arduino.github.io/arduino-cli/1.2/platform-specification/#boardslocaltxt), you can easily define which VID, PID, and USB product name you want to simulate. To override these variables without modifying the Arduino core, simply create a `boards.local.txt` file in your Arduino profile path (e.g. on Linux: `~/.arduino15/packages/arduino/hardware/avr/1.8.7`). You can find ideas for USB IDs at http://www.linux-usb.org/usb.ids.

**Official USB ID from Arduino**

**boards.local.txt**

```c
leonardo.build.vid=0x2341
leonardo.build.pid=0x8036
leonardo.build.usb_product="Arduino Leonardo"
```

If you change VID/PID, don't forget to also adapt the codes in your `boards.txt` / `boards.local.txt`, so the Arduino IDE can find the board.

**boards.txt**

```c
[...]
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_port.0.vid=0x2341
leonardo.upload_port.0.pid=0x0036
leonardo.upload_port.1.vid=0x2341  
leonardo.upload_port.1.pid=0x8036
leonardo.upload_port.2.vid=0x2A03
leonardo.upload_port.2.pid=0x0036 
leonardo.upload_port.3.vid=0x2A03
leonardo.upload_port.3.pid=0x8036
leonardo.upload_port.4.board=leonardo
[...]
```
