Exaggerbator
New member
I have a Voron 2.4 rev-C LDO kit with a BTT 4.3inch TFT LCD DSI Display. Since Nov\Dec 2024 the screen would not boot into KlipperScreen only to the console prompt. Printing still worked through Mainsail. I didn't update anything that I know of it just stopped working. Digging around I was getting these errors in both the KlipperScreen and xserver logs
https://klipperscreen.readthedocs.io/en/latest/Troubleshooting/FBturbo/
It was quite the ordeal to get it working so I'm posting my steps in case it can save someone else the pain.
Here's all the things I did to resolve the problem:
Hardware:
# Copy the klipperscreen and xscreen logs to show up in your Mainsail page under Machine -> Logs
2. Update the host
3. Update all the packages showing in Mainsail; klipper, klipperscreen, mainsail, moonraker etc. If you haven't updated in awhile be careful - there may be breaking changes that needed additional actions to get update-to-date.
4. Reinstall KlipperScreen
# In Kiauh
Uninstalled KlipperScreen
Resinstalled KlipperScreen
5. Update /boot/config.txt
# Set my boot config.txt as directed in the LDO kit documentation
6. Removed and resinstalled fbturbo driver
Removal steps: https://klipperscreen.readthedocs.io/en/latest/Troubleshooting/FBturbo/
Install:
7. Update/Confirm the driver config is using the right frame buffer (fb) id.
# Checked which frame buffer (FB) is active - I only had one which was fb0
/dev/fb0
# Updated the config files in both the etc and usr locations - I think xserver is using the usr location.
8. At this point the screen worked but touch was not registering in the right positions. If it's all working for you, no need to continue with the rest of the steps.
9. Xserver log said it could not load inputlib driver so resinstalled it.
10. Play with the touchscreen matrix transformations to see which works.
# You can run these on the ssh console and test immediatly - no need to reboot each change
11. Update the touchscreen input driver configs with the transformation matrix that worked as an Option.
# Again I did in both the etc and usr configs
Hope this helps someone. Happy troubleshooting!
- Could load module "fbdev"
- Could load module "fbturbo"
- (EE) no screens found(EE).
https://klipperscreen.readthedocs.io/en/latest/Troubleshooting/FBturbo/
It was quite the ordeal to get it working so I'm posting my steps in case it can save someone else the pain.
Here's all the things I did to resolve the problem:
Hardware:
- Running a RPI4b on Bookworm.
- BTT 4.3inch TFT LCD DSI Display
# Copy the klipperscreen and xscreen logs to show up in your Mainsail page under Machine -> Logs
# The xserver log was the most helpful. It tells you all of the drivers it's trying to load and the errors so you can see what it isn't finding - for me it was the fbturbo, fbdev, and inputlib drivers at different points.
Code:
/var/log/Xorg.0.log
2. Update the host
Code:
sudo apt-get update
sudo apt-get upgrade
3. Update all the packages showing in Mainsail; klipper, klipperscreen, mainsail, moonraker etc. If you haven't updated in awhile be careful - there may be breaking changes that needed additional actions to get update-to-date.
4. Reinstall KlipperScreen
# In Kiauh
Uninstalled KlipperScreen
Resinstalled KlipperScreen
5. Update /boot/config.txt
# Set my boot config.txt as directed in the LDO kit documentation
Touchscreen Setup for Klipper
docs.ldomotors.com
6. Removed and resinstalled fbturbo driver
Removal steps: https://klipperscreen.readthedocs.io/en/latest/Troubleshooting/FBturbo/
Install:
Code:
sudo apt-get install xserver-xorg-video-fbturbo
7. Update/Confirm the driver config is using the right frame buffer (fb) id.
# Checked which frame buffer (FB) is active - I only had one which was fb0
Code:
ls /dev/fb*
# Updated the config files in both the etc and usr locations - I think xserver is using the usr location.
Code:
sudo nano /etc/X11/xorg.conf.d/99-fbdev.conf
sudo nano /usr/share/X11/xorg.conf.d/99-fbdev.conf
Code:
Section "Device"
Identifier "LCD"
Driver "fbdev"
Option "fbdev" "/dev/fb0"
Option "Rotate" "180"
Option "SwapbuffersWait" "true"
EndSection
8. At this point the screen worked but touch was not registering in the right positions. If it's all working for you, no need to continue with the rest of the steps.
9. Xserver log said it could not load inputlib driver so resinstalled it.
Code:
sudo apt-get reinstall xserver-xorg-input-libinput
10. Play with the touchscreen matrix transformations to see which works.
# You can run these on the ssh console and test immediatly - no need to reboot each change
11. Update the touchscreen input driver configs with the transformation matrix that worked as an Option.
# Again I did in both the etc and usr configs
Code:
sudo nano /etc/X11/xorg.conf.d/40-libinput.conf
sudo nano /usr/share/X11/xorg.conf.d/40-libinput.conf
Code:
Section "InputClass"
Identifier "libinput touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "TransformationMatrix" "1 0 0 0 1 0 0 0 1"
EndSection
Hope this helps someone. Happy troubleshooting!
Last edited: