Teensy 3.2 USB keyboard german layout: problem with "<" - key

Status
Not open for further replies.

francesco

New member
Hello,

I made a Raspberry Pi laptop with an old Dell 830 computer (see https://www.instructables.com/id/How-to-Make-a-USB-Laptop-Keyboard-Controller/)

I use a german keyboard and when I compiled the Teensyduino I had two mssing keys.
The first was the "#" (ASCII 0x23 - but I could easyly fix it with the syntax "KEY_BACKSLASH" in the arduino file.
But the second key is the "<" (ASCII 0x3C) and this is not working when I use "KEY_COMMA + SHIFT_MASK". By pressing this key nothing happens.

I opened the file "keylayouts.h" in the folder ..\teensy\avr\cores\teensy3 and saw that there is the text "NON_US_100" at the place for the "<" symbol.
Even when I change the NON_US_100 to KEY_COMMA + SHIFT_MASK there is no difference.

Further I found out, that all the foreign keyboard layouts in the keylayouts.h have no effect.


Example:

German layout : In the second line I put in KEY_0 instead of KEY_1
--------------------------------------------------------------------------------------
#define ASCII_30 KEY_0
#define ASCII_31 KEY_0

When I press key 0 an key 1 the are still different (0, 1) and not 0 as expected


Standard US layout : In the second line I put in 4 instead of 5
--------------------------------------------------------------------------------------
#define KEY_A ( 4 | 0xF000 )

#define KEY_B ( 4 | 0xF000 )

When I press a or b always a is coming from USB (as expected).

So what is going wrong here?
I am using the newest Arduino software (1.8.9) and Teensyduino 1.4.7


Kind regards

Franz
 
Hi Franz,

I just had the same problem the same project on instructables. This has nothing to do with the keylayouts.h, you can leave that alone. The code of this project doesn't use the mapping for the ASCII characters there. Only the key defines are used.

Instead of using the "KEY_NON_US_100", you should use the "KEY_NON_US_BS" in your *.ino file in the key array "int normal[rows_max][cols_max]", which will then send the right key code to your PC.

Hope this helps!
 
Status
Not open for further replies.
Back
Top