2018 Update for Windows 10 Users (for builds 1073, 1709 and 1803):
It seems the latest driver from Kionix no longer works the same way. If your rotation problems have come back with a recent windows 10 update, or if you have problems with the method described on this page, then please download and install the old driver here and try that first.
If when you rotate your tablet, you might find that the screen turns the wrong way (e.g. off by 90 degrees, or upside down) – here’s what you need to do. This is common for people who have upgraded their tablet PC to Windows 10, where often after upgrading are now finding their tablet screen is now rotating incorrectly. The fix is fairly straight forward.
The problem is caused by the drivers used for the rotation sensor. The sensor is made by Kionix (“kxfusion”), and this is a guide on how to fix the values stored in your Windows Registry to fix the orientation of the screen rotation.
Step 1: Install Drivers.
First, you need to install the latest drivers for the accelerometer sensor – you can download them here: drivers
Step 2: Change Orientation registry value
We need to update the windows registry with a code that contains the correct orientation of the device. To save time, I have created a ZIP file containing registry keys for the 8 possible combinations. The following steps are a shortcut, but I provide more detail in the sections below.
2b. Unzip the downloaded file.
2c. If your device appears to be rotated by 90º (e.g – it’s sideways), you will want to use one of the four files containing the text “90degree”. If it is not rotated, just upside down, then you want to use the other four files.
2d. Double click on one of the files. Restart your tablet.
2e. Repeat step 2d with a different file until your screen is correct!
2f. If you still have a problem with all those files, please leave me a comment or try all the files in this link.
Step 3: Celebrate – your tablet is working again 🙂
P.S If you’re interested in seeing how these tiny sensors are made, click here!
Kionix kxfusion Registry Settings
For those who want more detailed information, read on!
I like a good bargain, and nothing beats a bargain that has a little bit of that ‘too good to be true’ smell to it. I paid $53 Australian dollarydoos for a full windows tablet (Unisurf 7) , that came with a 1 year office subscription worth $89… so effectively I was paid $36 to take a PC with me when I renewed my office subscription. Anyway, this tablet is
not that bad frankly terrible, but I’ve been having some horrible grief fun with it trying to punish it get it upgraded to windows 10, before the free upgrade promotion expires at the end of july.
As I did a clean reinstall, I’ve been having a headache with drivers. In particular, one of the issues I was having was with the accelerometer, where the auto rotation of the screen would not match the orientation of the device – very frustrating!
kxfusion Registry Setting Guide
While many devices use the same physical sensor (made by Kionix, drivers available on their website) the orientation of the physical sensor on the motherboard is not the same from device to device… so in the registry there is a value stored which tells the kionix driver which way to rotate the screen when it detects certain orientations of the chip.
All we need to do to correct the rotation direction is to edit this registry value. You’ll need to open the “registry editor”, which you can find by typing “regedit” in the search box on the taskbar.
The registry key location is: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ROOT\SENSOR\0000\Device Parameters\kxfusion] and the value we are changing is stored in the item “Orientation“. You may need to create this (binary value) if it doesn’t already exist. See below for an example screenshot of how this should look.
The data value contains a pattern, encoded in HEX in the format 0A 0B 0C 0D 0E 0F 0G where each 0X is either 00, 01 or 02.
And thanks to Kionix, there is NO PUBLIC DOCUMENTATION on the meaning of the registry keys!! Bad Engineer, Bad – go sit in the corner! From trial and error, I think I discovered the role of most of the unknown values.
Value 0A = can be 00 or 01, does not seem to change anything. I recommend 00.
Value 0B = can be 00 or 01, controls flipping axis “A”
Value 0C = can be 00 or 01, controls 90 degree offset
Value 0D = can be 00 or 01, controls flipping axis “B”
Value 0E = can be 00 or 01, controls 90-degree offset, but the value MUST be different to 0C. E.g. if 0C is 00, 0E must be 01, and vice versa.
Value 0F = can be 00 or 01, does not seem to change anything. I recommend 00.
Value 0G = must be 02.
So in reality, there are really only 4 unknowns:
00 0B 0C 0D 0E 00 02
Four unknowns, with each containing one bit, means we have 4 bits of information, which from binary means we have 16 possibilities. However, as one bit is simply the other bit inversed (“NOT” function) we actually only have 8 combinations. Four of those are just the same as the others, just rotated by 90-degrees.
You actually do not need to restart the device each time, instead, you can simply disable and enable the “kionix sensor fusion device”, found under “sensors” in the windows device manager.
Postscript: If I was creating a system to do this, I would have binary switches for x-flip, y-flip, 90º rotate, and 90º rotation direction, which should allow a mapping from chip to device orientation in 4 binary values. The Kionix registry value has .. seven – clearly we must have a 4-dimensional piece of alien technology on our hands! 🙂
Tablet kxfusion Registry Orientation Codes
Some of the values I found online are listed below – If you figure your orientation code out for your device, please post it below in the comments with your model of tablet, and I’ll add it to the list. They may be wrong – sorry. I used the latest driver on the kionix website, on windows 10.
|Tablet Model||Registry Code||File in zip|
|Allview WI8G||01 00 00 01 01 00 02||02-flipA.reg|
|Captiva PAD 10.1||00,00,00,01,01,01,02||02-flipA.reg|
|Cube i7 Stylus||01,00,00,01,01,00,02||02-flipA.reg|
|HP Stream 7||01,01,01,01,00,00,02 or 01,00,01,00,00,00,02||06-90degree-flipA-flipB.reg or 07-90degree.reg??|
|Linx 10 or Linx 7||01,01,00,00,01,01,02 or 00,00,00,01,01,00,02||03-flipB.reg or 02-flipA.reg??|
|Linx 8||00,00,01,00,00,00,02 or 00,00,00,01,01,00,02||07-90degree.reg or 02-flipA.reg?|
|Nextbook 8, model NXW8QC16G||01,01,00,00,01,01,02 or 01,00,00,01,01,00,02||03-flipB.reg or 02-flipA.reg??|
|Nextbook flexx 10||01,00,01,00,00,01,02||07-90degree.reg|
|Novatech nTab 2||00,01,01,00,00,00,02||05-90degree-flipB.reg|
|ODYS WinTab 10||00,00,01,00,00,00,02||07-90degree.reg|
|Pendo Pad 8||00,01,00,01,01,00,02||04-flipA-flipB.reg|
|Quantum View 10||01,01,01,00,00,00,02||05-90degree-flipB.reg|
|Toshiba Encore Mini WT7-C-100||01,00,01,01,00,00,02 or 01,01,00,01,01,01,02||08-90degree-flipA.reg or 04-flipA-flipB.reg??|
|Trekstor Surftab Wintron 10.1 3G pro||00,00,01,00,00,00,02||07-90degree.reg|
|TrekStor SurfTab Twin 10.1||00,01,00,00,01,00,02 or 00,00,01,00,00,00,02||03-flipB.reg or 07-90degree.reg??|
|Unisurf 7 or Unisurf 10||01,00,00,01,01,00,02||02-flipA.reg|
|Voyo a1 mini||01,01,00,01,01,01,02 or 01,00,00,01,01,00,02||04-flipA-flipB.reg or 02-FlipA.reg??|