https://torte71.github.io/InsideSovolKlipperScreen/rebuilding.html
Sovol's KlipperScreen is running on debian buster, which is outdated now, meaning you can no longer update system packages like ssh, etc.
The default armbian kernels do not work, e.g. the screen will stay black (no /dev/spidev*.* gets created).
There are recent images provided by Maxim Medvedev (redrathnure) on github, which can be used as a base:
https://github.com/redrathnure/armbian-mkspi
These images do not support the KLIPAD50's internal wifi out of the box, so you would either have to replace a devicetree file (see bottom of the page) or use external USB-wifi(*) or USB-ethernet adapters. But the screen is working and spidev is available. It's spidev0.2 instead of spidev0.0, so adjust your printer.cfg accordingly.
(*) These adapters may require additional firmwares. You can try to install them with sudo apt update ; sudo apt install firmware-misc-nonfree
if yours is not detected automatically. On the other hand, this specific firmware package can break the internal wifi, even with the replaced dtb file.
Steps to set up:
Armbian-unofficial_24.2.0-trunk_Mkspi_bookworm_current_6.6.17.img.xz
cd
git clone https://github.com/dw-0/kiauh
cd kiauh ; ./kiauh.sh
cd ~/klipper ; make menuconfig
sudo make flash
sudo cp ./scripts/klipper-mcu.service /etc/systemd/system/
sudo systemctl enable klipper-mcu.service
sudo service klipper restart
sudo nano /etc/X11/xorg.conf.d/01-armbian-defaults.conf
Section "Device" Identifier "default" Driver "fbdev" Option "Rotate" "CW" EndSection Section "InputClass" Identifier "libinput touchscreen catchall" MatchIsTouchscreen "on" MatchDevicePath "/dev/input/event*" Driver "libinput" Option "TransformationMatrix" "0 1 0 -1 0 1 0 0 1" EndSection
sudo service KlipperScreen restart
sudo armbian-config
Now you should have a working (and recent) klipper installation on the Sovol KlipperScreen.
Copy your old printer.cfg - or take one of Sovol's files for your device: https://github.com/Sovol3d/SOVOL_KLIPAD50_SYSTEM/tree/main/klipper_configuration
You will probably have to change “spidev0.0” to “spidev0.2” inside your “printer.cfg”
(unless you've installed the wifi-enabled dtb below - in that case, it will be spidev0.0 again).
Modifications from Sovol useful for this image:
(See sovol_mods for details about the packages)
sudo dpkg -i printer_data/gcodes/makerbase-beep-service.deb
sudo nano /etc/rc.local
exit 0
line)chgrp mks /sys/class/gpio/gpio82/value
chmod g+w /sys/class/gpio/gpio82/value
sudo dpkg -r makerbase-beep-service
dpkg -i
/dpkg -r
as shown abovedpkg -i
/dpkg -r
as shown aboveplr
, so it's recommended to either install this package, or remove these entries as shown here/usr/lib/firmware/bootsplash.armbian
and is ~250MB big. I haven't found a way to decompile it into separate pictures - if someone does, it will probably be possible to “cook” a plymouth style boot animation from it.sudo su
(enter password when asked)/boot/armbianEnv.txt
and change it to bootlogo=true
plymouth-set-default-theme -l
plymouth-set-default-theme solar ; update-initramfs -u
reboot
/usr/share/plymouth/themes/
Replacing the dtb from the redrathnure
image with Sovol's version of rk3328-roc-cc.dtb
enables the internal wifi of the KLIPAD50 board, but does not create the spi device.
With the following change, /dev/spidev0.0
will be created as well.
--- rk3328-roc-cc-org.dts Sat Mar 09 16:36:40 2024 +++ rk3328-roc-cc-new.dts Sat Mar 09 17:33:57 2024 @@ -860,7 +860,7 @@ spi_for_cs2@0 { reg = <0x00>; - compatible = "rockchip,spi_test_bus1_cs2"; + compatible = "armbian,spi-dev"; pinctrl-names = "default"; pinctrl-0 = <0x35>; spi-max-frequency = <0x4c4b40>;
Source of Sovol's rk3328-roc-cc.dtb from 5.16.20 kernel rk3328-roc-cc_dts
Successfully tested with these images:
0.3.2-24.2.0-trunk: Armbian-unofficial_24.2.0-trunk_Mkspi_bookworm_current_6.1.76.img.xz
0.3.4-24.2.0-trunk: Armbian-unofficial_24.2.0-trunk_Mkspi_bookworm_current_6.6.17.img.xz
0.3.4-24.2.0-trunk: Armbian-unofficial_24.2.0-trunk_Mkspi_bookworm_edge_6.7.5.img.xz
Additional notes:
armbian-firmware
fixed this.dtc -I dtb -O dts -o rk3328-roc-cc.dts rk3328-roc-cc.dtb
to decompile it to source form anddtc -I dts -O dtb -o rk3328-roc-cc.dtb rk3328-roc-cc.dts
to compile it back to binary formHere is a compiled version of the devicetree file: rk3328-roc-cc.dtb
Download and replace /boot/dtb/rockchip/rk3328-roc-cc.dtb
with this version and reboot.
v4l2-ctl –list-devices
to check the available devices and change crowsnest.conf
accordingly. (My camera now uses /dev/video3
)CROWSNEST_ARGS=“-c /home/mks/printer_data/config/crowsnest.conf -s 10”
~/printer_data/systemd/crowsnest.env
, as they might override the new setting.Back to start