USB Keyboard on Teensy LC not recognized on boot

Status
Not open for further replies.

k3rn3lp4n1c

New member
Hi everyone

I am trying to configure Bios settings of a couple of HP workstations "automatically" with a Teensy LC (tlc). I was testing it also with a American Megatrends Bios on some "old" MaxData PCs I had lying around at home.
Installed Teensyduino on my Mac (Arduino 1.8.5), chose the appropriate board and USB Type settings (Keyboard only) and included the keypad library to trigger the functions.

After compiling the code and programming the tlc I plugged it in to test. Nothing happened. I rebooted with the tlc plugged in and did some other troubleshooting (like different delays, .press/.write, plugging it in while post, after and so on) - but with no success.

Then I started to tamper with the usb_desc.h and first disabled the Keymedia Interface (had to comment out the "keymedia_release_all();" in usb_keyboard.h) - but again, with no success.

The last step I took was to disable the serial interface of the keyboard interfaces (although it shouldn't really interfere with the protocols to my knowledge, but you never now, right..?). Again I had to comment out something in yield.cpp and then it compiled - but nevertheless, with no success when trying it with the bios.

The fun thing is it works on windows, Mac and linux when booted. I can do anything and it works like a charm. It just doesn't want to get recognized on my machines that I want to configure the bios...

Now I don't know what to do next... The ((simple) test) code looks like this:

Code:
#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 3; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9',},
  {'*','D','#'}
};
byte rowPins[ROWS] = {3, 4, 5, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {0, 1, 2,}; //connect to the column pinouts of the keypad

//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 

void setup() {
}

void loop() {
  char key = customKeypad.getKey();

  if (key == '1') {
    Keyboard.press(KEY_DOWN_ARROW);
    delay(40);
    Keyboard.release(KEY_DOWN_ARROW);
  }
  
}

Then the usb_desc.h looks like this (showing only the part I changed something):
Bildschirmfoto 2018-04-02 um 19.24.04.jpg

Furthermore the usb_keyboard.h I had to change after disabling the keymedia interface:
Bildschirmfoto 2018-04-02 um 19.27.16.jpg

And the yield.cpp (no duplicated and renamed original here, because it wouldn't compile):
Bildschirmfoto 2018-04-02 um 19.29.33.jpg

I hope I am doing something trivial wrong and somebody has an idea for me. I would really appreciate it!

Thanks in advance,

Check your six,

k3rn3l
 
Status
Not open for further replies.
Back
Top