# Garbled keys from USB Anne Pro on console (11.0)



## Brian Cully (Jul 16, 2017)

Thread 55717 describes my problem perfectly, and I went through the steps to fix it, but still couldn't get it to work.

The issue is that either keypresses don't register or they register incorrectly (w becomes a, etc). To add to what's in the thread above, this appears to be related somewhat to how quickly I type; individual, slow presses act as the thread describes, but chording or faster key pressing generates different output. Just like the previous poster, this keyboard works fine in the BIOS/EFI as well as the FreeBSD boot loader on the same machine.

I attempted to fix the issue following those instructions. First by identifying the keyboard:


```
ditto:~# usbconfig
...
ugen0.2: <obins anne keyboard STMicroelectronics> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (400mA)
```
Then running `usbconfig -d ugen0.2 add_quirk UQ_KBD_BOOTPROTO`. I verified that the quirk got set:


```
ditto:~# usbconfig dump_device_quirks

Dumping current device quirks:
...
VID=0x0483 PID=0x5710 REVLO=0x0200 REVHI=0x0200 QUIRK=UQ_KBD_BOOTPROTO
```
Unplugged the keyboard and plugged it back in, and it still wasn't operating correctly. Just in case, I also modified /boot/loader.conf by adding these two lines:


```
usb_quirk_load="YES"
hw.usb.quirk.0="0x0483 0x5710 0 0x0ffff UQ_KBD_BOOTPROTO"
```
N.B.: I don't think the usb_quirk_load line does anything, but it was in usb_quirk(4), so it went in the config as well.

Rebooted with the keyboard in, unplugged it and replugged it, rebooted with the keyboard out, and plugged it in post-boot. No matter what, it's the same behavior. The only thing I haven't done is recompile the kernel with this device in there, but I'm hoping to avoid that, since I like running GENERIC.

And here's the device description:


```
ditto:~# usbconfig -d ugen0.3 dump_device_desc
ugen0.3: <obins anne keyboard STMicroelectronics> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (400mA)

  bLength = 0x0012
  bDescriptorType = 0x0001
  bcdUSB = 0x0200
  bDeviceClass = 0x0000  <Probed by interface class>
  bDeviceSubClass = 0x0000
  bDeviceProtocol = 0x0000
  bMaxPacketSize0 = 0x0040
  idVendor = 0x0483
  idProduct = 0x5710
  bcdDevice = 0x0200
  iManufacturer = 0x0001  <STMicroelectronics>
  iProduct = 0x0002  <obins anne keyboard >
  iSerialNumber = 0x0003  <STM32>
  bNumConfigurations = 0x0001
```

Yes the ugen device changed. I unplugged a bunch of stuff to see if they were impacting things somehow.


----------



## Brian Cully (Jul 24, 2017)

Gave it a whirl, but it didn't work. Haven't tried it in debug mode, but no keypresses I tried put anything on the console. Thanks, though.


----------

