package picoserial import ( "fmt" "go.bug.st/serial" "go.bug.st/serial/enumerator" ) func FindDevice() (string, error) { ports, err := enumerator.GetDetailedPortsList() if err != nil { return "", fmt.Errorf("enumerating ports: %w", err) } for _, p := range ports { if p.IsUSB { return p.Name, nil } } return "", nil } func SendByte(portName string, b byte) error { port, err := serial.Open(portName, &serial.Mode{BaudRate: 115200}) if err != nil { return fmt.Errorf("opening %s: %w", portName, err) } defer port.Close() _, err = port.Write([]byte{b}) if err != nil { return fmt.Errorf("writing to %s: %w", portName, err) } return nil }