CreatBotKlipperScreen/docs/Installation.md
2021-06-20 20:27:07 -04:00

4.3 KiB

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>"