Hey guys,
As usual tech-hobbyist I love to play with new stuff and features.
At the moment I am trying to fully clone my mouse by using an atmega 32u4 and spoofing VID & PID.
So far, I successfully managed to modify boards.txt and spoof VID/PID.
mymouse.build.mcu=atmega32u4
mymouse.build.f_cpu=16000000L
mymouse.build.vid=0x1111
mymouse.build.pid=0x2222
mymouse.build.usb_product="my mouse"
mymouse.build.board=AVR_LILYPAD_USB
mymouse.build.core=arduino
mymouse.build.variant=arduino
mymouse.extra_flags={build.usb_flags}
However... I still see some values that must be cloned as well:
- Firmware Revision (original Mouse==1.09 / Cloned==1.00)
- USB SubClass (original Mouse==00 / Cloned==01)
- USB Protocol (original Mouse==00 / Cloned==01)
1) Do you have any hint where I can find more info about?
2) Maybe there are more option available for the boards.txt?
3) Maybe I need to change/recompile the boatloader?
On Github I found this sources. I believe that maybe those values must be changed in here?!
/** Device descriptor structure. This descriptor, located in SRAM memory, describes the overall
* device characteristics, including the supported USB version, control endpoint size and the
* number of device configurations. The descriptor is read out by the USB host when the enumeration
* process begins.
*/
const USB_Descriptor_Device_t DeviceDescriptor =
{
.Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device},
.USBSpecification = VERSION_BCD(01.10),
.Class = CDC_CSCP_CDCClass,
.SubClass = CDC_CSCP_NoSpecificSubclass,
.Protocol = CDC_CSCP_NoSpecificProtocol,
.Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE,
.VendorID = DEVICE_VID,
.ProductID = DEVICE_PID,
.ReleaseNumber = VERSION_BCD(00.01),
.ManufacturerStrIndex = 0x02,
.ProductStrIndex = 0x01,
.SerialNumStrIndex = NO_DESCRIPTOR,
.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
};