From a4a1001dd39755eb174522be2ca83857ac3c101c Mon Sep 17 00:00:00 2001 From: deadprogram Date: Tue, 21 Mar 2023 00:10:44 +0100 Subject: [PATCH] examples: use hid-keyboard example to show how to to override default USB VID, PID, manufacturer name, and product name Signed-off-by: deadprogram --- src/examples/hid-keyboard/main.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/examples/hid-keyboard/main.go b/src/examples/hid-keyboard/main.go index 4024c1e5..a5aed936 100644 --- a/src/examples/hid-keyboard/main.go +++ b/src/examples/hid-keyboard/main.go @@ -1,11 +1,22 @@ +// to override the USB Manufacturer or Product names: +// +// tinygo flash -target circuitplay-express -ldflags="-X main.usbManufacturer='TinyGopher Labs' -X main.usbProduct='GopherKeyboard'" examples/hid-keyboard +// +// you can also override the VID/PID. however, only set this if you know what you are doing, +// since changing it can make it difficult to reflash some devices. package main import ( "machine" + "machine/usb" "machine/usb/hid/keyboard" + "strconv" "time" ) +var usbVID, usbPID string +var usbManufacturer, usbProduct string + func main() { button := machine.BUTTON button.Configure(machine.PinConfig{Mode: machine.PinInputPullup}) @@ -19,3 +30,23 @@ func main() { } } } + +func init() { + if usbVID != "" { + vid, _ := strconv.ParseUint(usbVID, 0, 16) + usb.VendorID = uint16(vid) + } + + if usbPID != "" { + pid, _ := strconv.ParseUint(usbPID, 0, 16) + usb.ProductID = uint16(pid) + } + + if usbManufacturer != "" { + usb.Manufacturer = usbManufacturer + } + + if usbProduct != "" { + usb.Product = usbProduct + } +}