Hey Guys -
I've spent hours trying to get TouchUI working correctly. When doing so, the display didn't work, touch was messed up, or there was always some issue. None of the steps I had seen from others worked nor did the troubleshooting steps on TouchUI's page. When rebuilding my OctoPrint server (setup from scratch) recently, I tried again and finally got it to work.
Below are my system specs at the moment followed by how to get it to work if having issues:
Specs
- Hardware: Raspberry Pi 4 (1gb RAM)
- OS: Used OctoPrint 0.17.0 image which runs Raspbian GNU/Linux 10 (Buster)
- Kernel: 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux
- Octoprint: 1.3.12
- Screen: kuman for Raspberry Pi 3B+ TFT LCD Display, 3.5 Inch 480x320 TFT Touch Screen Monitor for Raspberry Pi Model B A+ SPI Interface with Touch Pen SC06 - also referred to as "3.5β RPi Display(MPI3501)" it seems
Steps
- Install Octoprint and set up as desired - You may physically install the LCD now but do not yet install the TouchUI plugin
- Connect to Octoprint RasPi via SSH
- Execute "sudo apt-get update && apt-get upgrade" to upgrade all packages
- Execute "sudo apt-get dist-upgrade"
- Execute "sudo reboot now" to reboot
- Reconnect via SSH once back up
- Execute "sudo apt-get install xserver-xorg-video-fbturbo" - depending on your OS image, this will probably fail which is normal
- Execute "sudo reboot now" to reboot
- Reconnect via SSH once back up
- Execute the below commands to install the driver. Note that the final command auto restarts your RasPi without prompting and you may notice some errors prior to this...
sudo rm -rf LCD-show
git clone https://github.com/goodtft/LCD-show.git
chmod -R 755 LCD-show
cd LCD-show/
sudo ./LCD35-show
- Once back up, log back in via SSH again then execute "sudo apt --fix-broken install" to resolve the errors encountered prior to auto reboot
- Execute the below two commands again which should now succeed and auto reboot again
cd LCD-show/
sudo ./LCD35-show
- Reconnect via SSH once back up
- Execute below commands to configure & rotate display:
cd LCD-show/
sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb
sudo ./rotate.sh 180
- Execute "sudo reboot now" to reboot
- Reconnect via SSH once back up
- Very orientation is correct (although should only see text). If not, rerun "sudo ./rotate.sh" again with a different rotation value instead of 180
- Launch browser, browse to OctoPrint's WebUIm then install the TouchUI Plugin
- Once installed, ignore prompt to restart in the WebUI and instead execute "sudo reboot now" via SSH
- Reconnect via SSH once back up
- Execute the below two commands to run TouchUI's helper script. Note that the 2nd command may take a few minutes to complete but once done you should get "Success" for all components
git clone https://github.com/BillyBlaze/OctoPrint-TouchUI-autostart.git ~/TouchUI-autostart/
sudo ~/TouchUI-autostart/helpers/install
That's it - TouchUI should now be displayed and touch calibration work.
Note: If prompted for credentials on screen after final reboot, edit ~/.octoprint/config.yaml and verify that the below lines are present within the AccessControl: section at the top
accessControl:
autologinLocal: true
autologinAs: yourusername
salt: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Hope that helps someone. Thanks!