# Hardware known to work with KlipperScreen

**URL:** <https://klipper.discourse.group/t/hardware-known-to-work-with-klipperscreen/35>\
**Category:** KlipperScreen\
**Created:** [March 24, 2021, 1:19am UTC](https://klipper.discourse.group/t/hardware-known-to-work-with-klipperscreen/35 "2021-03-24T01:19:51Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![ichbaum](https://avatars.discourse-cdn.com/v4/letter/i/a6a055/32.png) [@ichbaum](https://klipper.discourse.group/u/ichbaum)\
**Post date:** [September 12, 2021, 4:57pm UTC](https://klipper.discourse.group/t/hardware-known-to-work-with-klipperscreen/35/7 "2021-09-12T16:57:17Z")

</div>

I got the VoCore working now.

```auto
#Update system and kernel
sudo apt-get update
sudo apt-get upgrade
sudo reboot
#install kernel-headers
sudo apt install raspberrypi-kernel-headers

#get vocore ande compile the driver
#use /temp to free the space after reboot.
cd /tmp
wget https://github.com/Vonger/vocore2/archive/refs/heads/master.zip
unzip master.zip
cd /tmp/vocore2-master/utils/fbusb/src
#make vocore driver
make -C /usr/src/linux-headers-$(uname -r ) M=$PWD modules
sudo insmod fbusb.ko
sudo cp fbusb.ko /lib/modules/$(uname -r)/kernel/drivers/

#Add fbusb.ko to load.d
sudo nano /etc/modules-load.d

#1. set screen to black: 
dd if=/dev/zero of=/dev/fb1 bs=1000 count=768

#2. set screen to random pixel: 
dd if=/dev/urandom of=/dev/fb1 bs=1000 count=768

#Set Console output to LCD
#add fbcon=map:10 to cmdline.txt
sudo nano /boot/cmdline.txt

#Test console
sudo FRAMEBUFFER=/dev/fb1 startx

#https://klipperscreen.readthedocs.io/en/latest/Installation/
#KlipperScreen Installation
cd ~/
git clone https://github.com/jordanruthe/KlipperScreen.git
cd ~/KlipperScreen
./scripts/KlipperScreen-install.sh

#remove fbturbo and use fbdev
sudo rm /usr/share/X11/xorg.conf.d/99-fbturbo.conf

sudo nano /usr/share/X11/xorg.conf.d/99-fbdev.conf
#Add this text ans save
Section "Device"
	Identifier "LCD"
	Driver "fbdev"
	Option "fbdev" "/dev/fb1"
	Option "Rotate" "CW"
	Option "SwapbuffersWait" "true"
EndSection

#Rotate the touch input too
sudo nano /etc/udev/rules.d/51-touchscreen.rules
#add to file
ACTION=="add", ATTRS{name}=="VoCore Touch", ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1 0 0 1"

#In the KlipperScreen documentation is this metioned to test the touch rotation.
DISPLAY=:0 xinput set-prop "VoCore Touch" 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1
#But the /51-touchscreen.rules changes the 'libinput Calibration Matrix' and not 'Coordinate Transformation Matrix'.
#but you can test the 'libinput Calibration Matrix' as well.
DISPLAY=:0 xinput set-prop "VoCore Touch" 'libinput Calibration Matrix' 0 1 0 -1 0 1 0 0 1

```

---

_[View the full topic](https://klipper.discourse.group/t/hardware-known-to-work-with-klipperscreen/35)._
