docs: close #1120 and other minor updates

This commit is contained in:
alfrix 2023-09-16 19:02:07 -03:00
parent d1632ef9d0
commit aa1dfabd40
4 changed files with 49 additions and 109 deletions

View File

@ -88,7 +88,8 @@ calibrate_y_position: 100
# define the screw positons required for odd number of screws in a comma separated list # define the screw positons required for odd number of screws in a comma separated list
# possible values are: bl, br, bm, fl, fr, fm, lm, rm, center # possible values are: bl, br, bm, fl, fr, fm, lm, rm, center
# they correspond to back-left, back-right, back-middle, front-left, front-right, front-middle, left-middle, right-middle # they correspond to back-left, back-right, back-middle, front-left, front-right, front-middle, left-middle, right-middle
screw_positions: "" # example:
screw_positions: bl, br, fm
# Rotation is useful if the screen is not directly in front of the machine. # Rotation is useful if the screen is not directly in front of the machine.
# Valid values are 0 90 180 270 # Valid values are 0 90 180 270

View File

@ -123,68 +123,5 @@ here are some examples:
## Touchscreen touch rotation ## Touchscreen touch rotation
If your touchscreen isn't registering touches properly after the screen has been rotated, you will need to apply a
transformation matrix.
First you will need your device name, on a terminal run: [Moved to Touch issues](./Troubleshooting/Touch_issues.md)
```sh
DISPLAY=:0 xinput
```
Output:
```sh
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ADS7846 Touchscreen id=6 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
```
In this case the device is the ADS7846 Touchscreen, yours may be different
You can test a change by running:
```sh
DISPLAY=:0 xinput set-prop "<device name>" 'Coordinate Transformation Matrix' <matrix>
```
Where the matrix can be one of the following options:
* 0°: `1 0 0 0 1 0 0 0 1`
* 90° Clockwise: `0 -1 1 1 0 0 0 0 1`
* 90° Counter-Clockwise: `0 1 0 -1 0 1 0 0 1`
* 180° (Inverts X and Y): `-1 0 1 0 -1 1 0 0 1`
* invert Y: `-1 0 1 1 1 0 0 0 1`
* invert X: `-1 0 1 0 1 0 0 0 1`
For example:
```sh
DISPLAY=:0 xinput set-prop "ADS7846 Touchscreen" 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
```
To make this permanent, modify the file `/etc/udev/rules.d/51-touchscreen.rules` and add following line:
```sh
ACTION=="add", ATTRS{name}=="<device name>", ENV{LIBINPUT_CALIBRATION_MATRIX}="<matrix>"
```
As an alternative if the above doesn't work:
edit /usr/share/X11/xorg.conf.d/40-libinput.conf
for example:
```sh
Section "InputClass"
Identifier "libinput touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "TransformationMatrix" "0 -1 1 1 0 0 0 0 1"
EndSection
```
More info about input transformation can be found in:
* [Ubuntu wiki InputCoordinateTransformation](https://wiki.ubuntu.com/X/InputCoordinateTransformation)
* [Libinput docs](https://wayland.freedesktop.org/libinput/doc/1.9.0/absolute_axes.html)

View File

@ -8,8 +8,9 @@ If the screen never shows the console even during startup, Then it's typically a
## Cable issues ## Cable issues
* Check that the cable is inserted properly: * Check that the cable is inserted properly:
it shouldn't be loose, and in the case of DSI make sure the contacts face the right way it shouldn't be loose, and in the case of ribbon cables like DSI make sure the contacts face the right way
* If the touchscreen is connected via USB, try another port if available, if you are using a HUB try connecting the touch directly without the HUB. * If the touchscreen is connected via USB, try another port if available,
if you are using a HUB try connecting the touch directly without the HUB.
* If the board has more than one HDMI try the other port * If the board has more than one HDMI try the other port
## Driver issues ## Driver issues

View File

@ -63,21 +63,26 @@ DISPLAY=:0 xinput set-prop "<device name>" 'Coordinate Transformation Matrix' <m
Where the matrix can be one of the following options: Where the matrix can be one of the following options:
* 0°: `1 0 0 0 1 0 0 0 1` | Rotation | Matrix |
* 90° Clockwise: `0 -1 1 1 0 0 0 0 1` | - | - |
* 90° Counter-Clockwise: `0 1 0 -1 0 1 0 0 1` | 0° | `1 0 0 0 1 0 0 0 1` |
* 180° (Inverts X and Y): `-1 0 1 0 -1 1 0 0 1` | 90° Clockwise | `0 -1 1 1 0 0 0 0 1` |
* invert Y: `-1 0 1 1 1 0 0 0 1` | 90° Counter-Clockwise | `0 1 0 -1 0 1 0 0 1` |
* invert X: `-1 0 1 0 1 0 0 0 1` | 180° (Inverts X and Y) | `-1 0 1 0 -1 1 0 0 1` |
* expand to twice the size horizontally: `0.5 0 0 0 1 0 0 0 1` | invert Y | `-1 0 1 1 1 0 0 0 1` |
<!-- * compress horizontally: --><!-- Commented out because of missing matrix info --> | invert X | `-1 0 1 0 1 0 0 0 1` |
| expand to twice the size horizontally | `0.5 0 0 0 1 0 0 0 1` |
For more in-depth guidance on using Coordinate Transformation Matrices, see [InputCoordinateTransformation - Ubuntu Wiki](https://wiki.ubuntu.com/X/InputCoordinateTransformation). For more in-depth guidance on using Coordinate Transformation Matrices:
It has been reported that the touch expands with screens that don't use HDMI. This is due to the composite output, which enables automatically as a fallback when no HDMI device is plugged in. * [Ubuntu wiki InputCoordinateTransformation](https://wiki.ubuntu.com/X/InputCoordinateTransformation)
* [Libinput docs](https://wayland.freedesktop.org/libinput/doc/1.9.0/absolute_axes.html)
It has been reported that the touch expands with screens that don't use HDMI. This is due to the composite output,
which enables automatically as a fallback when no HDMI device is plugged in.
If this is the case, adding `enable_tvout=0` to `/boot/config.txt` and reboot. If this is the case, adding `enable_tvout=0` to `/boot/config.txt` and reboot.
For example: !!! example
```sh ```sh
DISPLAY=:0 xinput set-prop "ADS7846 Touchscreen" 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1 DISPLAY=:0 xinput set-prop "ADS7846 Touchscreen" 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
@ -89,7 +94,8 @@ To make this permanent, modify the file `/etc/udev/rules.d/51-touchscreen.rules`
ACTION=="add", ATTRS{name}=="<device name>", ENV{LIBINPUT_CALIBRATION_MATRIX}="<matrix>" ACTION=="add", ATTRS{name}=="<device name>", ENV{LIBINPUT_CALIBRATION_MATRIX}="<matrix>"
``` ```
As an alternative if the above doesn't work: ---
As an alternative **if the above doesn't work**:
edit `/usr/share/X11/xorg.conf.d/40-libinput.conf` edit `/usr/share/X11/xorg.conf.d/40-libinput.conf`
@ -104,8 +110,3 @@ Section "InputClass"
Option "TransformationMatrix" "0 -1 1 1 0 0 0 0 1" Option "TransformationMatrix" "0 -1 1 1 0 0 0 0 1"
EndSection EndSection
``` ```
More info about input transformation can be found in:
* [Ubuntu wiki InputCoordinateTransformation](https://wiki.ubuntu.com/X/InputCoordinateTransformation)
* [Libinput docs](https://wayland.freedesktop.org/libinput/doc/1.9.0/absolute_axes.html)