User Tools

Site Tools


Non-English Character Support

From the factory, the Twiddler3 supports all languages. Understanding why it has universal language support requires an understanding as to what the Twiddler3 is doing at a low level.

Simply put, the Twiddler3 sends HID codes (this concept is important). The Twiddler3 does not send letters, like “A”, or numbers line “1”, or symbols like “!”. Your OS handles the “presentation” part to print those characters on screen.

The flow looks something like this:

* Press 0 R000 on Twiddler
* Twiddler Firmware looks up chord in config file
* Found to be HID(004) (use decimal not hex)
* Send HID Report 004 via USB/Bluetooth
* OS receives HID Report 004 and does a Language Table Lookup
* “a” printed on-screen

How to get non-English characters to print on screen

You are going to need a few tools:

1) This is what your keyboard looks like to the OS:

You will notice some familiar notation on some keys like “TAB” and “ESC”. There are also keys that look just like a Row and Column notation. AC01 (Alpha, row C, position 01) is where the “A” key is on most keyboards. The number in the second row of all the keys is the HID Code. So when you type that key, in “A”'s case, HID 004 is sent to the OS. The OS then prints on screen the letter associated with that HID Code. You can silk screen whatever you want on the key cap, when the OS sees HID 004 it will print “a”.

2) USB HID Usage Tables

Download and go to page 83 of the HID Usage Table. It is a pretty long and boring document about HID. There you will see all of the HID Codes available. (The Twiddler only supports the codes found on - 10 Keyboard/Keypad Page (0x07).) The Usage ID is shown in HEX, you need to convert it to DECIMAL in order to use it in Tuner. Notice that there are only “Latin” characters commonly found on a US Keyboard. HID does not specify anything other than what you see in the Usage Name column of that table. Support for non-English characters is handled at the OS level through your region settings and language tables.

3) Keyboard Compare

The quickest and easiest way to figure our how to print a non-English character is to find out what HID code you need to issue in order to get the OS to show that character onscreen.

If you check out this link. You will see a number of different layouts for different languages.

Use the ANSI Keyboard Layout as your base.

Now compare it to your layout. In this example we will use a Ukrainian Layout.

If you would like the Twiddler to print “?” find it on the Ukranian keyboard. Using the notion from above, it is located at position AC01. Map that to the ANSI Keyboard - which is “A”. This tells you to use the letter “A” in your chord.

Last modified: 2021/12/22 12:46

Page Tools