0

I'm using a ItsyBitsy 32u4, Adafruit says it can act as a USB HID keyboard. The mc is based on the 32u4 which the Keyboard docs say are supported.

I have a simple sketch that prints "A" every second and should press "A". When I upload the sketch and connect to the serial port I see the print output but I don't get any key presses.

Any ideas? I'm on linux, I suspect that the controller doesn't register as a HID device, maybe I need UDEV rules or drivers?

EDIT: the keyboard works on a different computer.

#include <Keyboard.h>
void setup() {
  Serial.begin(9600);
  Keyboard.begin();
  Serial.println("Start");
}

void loop() {
  Serial.println("a");
  Keyboard.write('a');
  delay(1000);
}
everett1992
  • 101
  • 2

2 Answers2

2

Keyboard.press() expects a character, but you are passing a character array. Also Keyboard.press() only presses but does not release the key. Keyboard.releaseAll() can be used to release all keys.

I would try:

Keyboard.press('A') ;  //note the ' instead of "
Keyboard.releaseAll();

or preferably:

Keyboard.write('A');   //handles press and release of basic keys
user85471
  • 721
  • 3
  • 7
  • I made an error when I created my simple repo sketch, but I have tried Keyboard.press('A') and Keyboard.write('A'). Neither work. – everett1992 Jul 05 '19 at 17:31
  • I also tried Keyboard.write('a') after reading keyboard.cpp and realizing that writing 'A' sends keypesses for a and the shift modifier. – everett1992 Jul 05 '19 at 17:44
0

There was some issue with my laptop, not controller or the sketch.

I tried the my board with another computer and it worked. I tried a commercial keyboard on my first computer it also didn't work.

Both keyboards work after a reboot.

everett1992
  • 101
  • 2