109 lines
4.3 KiB
Markdown
109 lines
4.3 KiB
Markdown
# Installation
|
|
|
|
#### Setup Raspberry Pi
|
|
This install process is meant for Raspbian non-desktop version. If you have installed it on the GUI version, use
|
|
`sudo raspi-config` to set boot to console by choosing the following options in order:
|
|
* 1 System Options
|
|
* S5 Boot / Auto Login
|
|
* B1 Console
|
|
|
|
#### Klipper and Moonraker Installation
|
|
|
|
Follow the instructions to install klipper and moonraker.
|
|
klipper: https://github.com/KevinOConnor/klipper/
|
|
moonraker: https://github.com/Arksine/moonraker
|
|
|
|
Ensure that 127.0.0.1 is a trusted client for moonraker, such as in this example:
|
|
```
|
|
[authorization]
|
|
trusted_clients:
|
|
127.0.0.1
|
|
```
|
|
|
|
If you wish to use the update manager feature of moonraker for KlipperScreen, add the following block into the moonraker
|
|
configuration:
|
|
```
|
|
[update_manager client KlipperScreen]
|
|
type: git_repo
|
|
path: /home/pi/KlipperScreen
|
|
origin: https://github.com/jordanruthe/KlipperScreen.git
|
|
env: /home/pi/.KlipperScreen-env/bin/python
|
|
requirements: scripts/KlipperScreen-requirements.txt
|
|
install_script: scripts/KlipperScreen-install.sh
|
|
```
|
|
|
|
#### KlipperScreen Installation
|
|
To clone and install execute the following commands:
|
|
```
|
|
cd ~/
|
|
git clone https://github.com/jordanruthe/KlipperScreen.git
|
|
cd ~/KlipperScreen
|
|
./scripts/KlipperScreen-install.sh
|
|
```
|
|
|
|
This script will install packages that are listed under manual install, create a python virtual environment at
|
|
${HOME}/.KlipperScreen-env and install a systemd service file.
|
|
|
|
KlipperScreen will create a log file output at `/tmp/KlipperScreen.log`. If you are having issues and KlipperScreen has
|
|
not gotten to the point where the log file has been created. Run `journalctl -xe -u KlipperScreen` to view the ouput and
|
|
see any issues that may be happening.
|
|
|
|
As an option to do development or interact with KlipperScreen from your computer, you may install tigervnc-scraping-server and VNC to your pi instance. Follow tigervnc server setup procedures for details on how to do that.
|
|
|
|
If you need a custom location for the configuration file, you can add -c or --configfile to the systemd file and specify
|
|
the location of your configuration file.
|
|
|
|
#### Touchscreen Calibration
|
|
Most people don't need to calibrate, but if you do need to calibrate your touchscreen, follow the below steps.
|
|
|
|
Run this command:
|
|
```
|
|
DISPLAY=:0 xinput_calibrator --list
|
|
```
|
|
It will output something such as:
|
|
```
|
|
Device "wch.cn USB2IIC_CTP_CONTROL" id=6
|
|
```
|
|
|
|
Find the ID of your display and put it in the following command:
|
|
```
|
|
DISPLAY=:0 xinput_calibrator -v --device <id from last command>
|
|
```
|
|
|
|
#### 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. You can have the matrix be one of the following:
|
|
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°: `-1 0 1 0 -1 1 0 0 1`
|
|
|
|
To check the current matrix, you will need your `<screen name>` (which can be found via the last section, ex:
|
|
"wch.cn USB2IIC_CTP_CONTROL"). Run the following command:
|
|
`xinput list-props "wch.cn USB2IIC_CTP_CONTROL"`
|
|
|
|
It will output something such as:
|
|
```
|
|
Device '<screen name>':
|
|
Device Enabled (115): 1
|
|
Coordinate Transformation Matrix (116): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
|
|
libinput Calibration Matrix (247): -1.000000, 0.000000, 1.000000, 0.000000, -1.000000, 1.000000, 0.000000, 0.000000, 1.000000
|
|
libinput Calibration Matrix Default (248): -1.000000, 0.000000, 1.000000, 0.000000, -1.000000, 1.000000, 0.000000, 0.000000, 1.000000
|
|
libinput Send Events Modes Available (249): 1, 0
|
|
libinput Send Events Mode Enabled (250): 0, 0
|
|
libinput Send Events Mode Enabled Default (251): 0, 0
|
|
Device Node (252): "/dev/input/event0"
|
|
Device Product ID (253): 6790, 58083
|
|
```
|
|
|
|
You can verify by checking that the 'Coordinate Transformation Matrix' or 'libinput Calibration Matrix'.
|
|
|
|
You can test a change by running:
|
|
`xinput set-props "<screen name>" 'Coordinate Transformation Matrix' <matrix>`
|
|
Replace matrix with one of the options above, such as: `1 0 0 0 1 0 0 0 1`
|
|
|
|
To make this permanent, modify the file `/etc/udev/rules.d/51-touchscreen.rules` and put the following line in:
|
|
```
|
|
ACTION=="add", ATTRS{name}=="<screen name>", ENV{LIBINPUT_CALIBRATION_MATRIX}="<matrix>"
|
|
```
|