RPI 3B+ + Latest Octoprint + LCD Waveshare 3.5(C) + Octroscreen = problem (not show graphics)

I'm having a very similar problem to the one described here: viewtopic.php?t=382506. Specifically, I can't properly configure and run LCD WAVESHARE 3.5(C) with a Raspberry Pi and the latest OctoPi build (32-bit bookworm without GUI) and an internal plugin called Octoscreen. I've been working on this for a few days now, and all I've managed to do is get the login screen working on the LCD. I don't know where I'm going wrong and why I'm ultimately unable to get any image.

My steps:

  1. Using the Raspberry Image, install Octopi on the SD card. Specify: username, password, hostname, geographic information, and Wi-Fi data. Enable SSH.
  2. After installing the card on the RPI, launch SSH and log in. Install:
sudo apt install libraspberrypi-dev -y
sudo apt-get install unzip -y
sudo apt-get install cmake -y
sudo wget https://files.waveshare.com/upload/1/1e/Waveshare35c.zip
sudo unzip ./Waveshare35c.zip
sudo cp waveshare35c.dtbo /boot/overlays/
sudo wget https://files.waveshare.com/upload/1/1e/Rpi-fbcp.zip
sudo unzip ./Rpi-fbcp.zip
cd rpi-fbcp/
sudo rm -rf build
sudo mkdir build
cd build
sudo cmake ..
sudo make -j4
sudo install fbcp /usr/local/bin/fbcp
  1. Edit file "config.txt":
sudo nano /boot/firmware/config.txt

and comments:

# Enable DRM VC4 V3D driver
#dtoverlay=vc4-kms-v3d
#max_framebuffers=2

and adding to end of file:

dtparam=spi=on
dtoverlay=waveshare35c
hdmi_force_hotplug=1
max_usb_current=1
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 800 533 60 6 0 0 0
hdmi_drive=2
display_rotate=0

Setting startx and fbcp to run automatically
Open the ".bash_profile" file. If the ".bash_profile" file doesn't exist, you'll need to create it:

sudo nano ~/.bash_profile

and add:

if [ "$(cat /proc/device-tree/model | cut -d ' ' -f 3)" = "5" ]; then
    # rpi 5B configuration
    export FRAMEBUFFER=/dev/fb1
    startx  2> /tmp/xorg_errors
else
    # Non-pi5 configuration
    export FRAMEBUFFER=/dev/fb0
    fbcp &
    startx  2> /tmp/xorg_errors
fi
  1. Touch configuration.

Calibrator installation:

sudo apt-get install xserver-xorg-input-evdev 
sudo cp -rf /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf
sudo apt-get install xinput-calibrator

Edit file: "99-calibration.conf":
Add the following content to the "99-calibration.conf" configuration file:

Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "ADS7846 Touchscreen"
        Option  "Calibration"   "3932 300 294 3801"
        Option  "SwapAxes"      "1"
        Option "EmulateThirdButton" "1"
        Option "EmulateThirdButtonTimeout" "1000"
        Option "EmulateThirdButtonMoveThreshold" "300"
EndSection
  1. Resrtart:
sudo reboot now

Now i see on the LCD login prompt.

  1. Installation OctoScreen:
wget https://github.com/Z-Bolt/OctoScreen/releases/download/v2.7.4/octoscreen_2.7.4_armhf.deb
sudo dpkg -i octoscreen_2.7.4_armhf.deb
sudo apt-get update
sudo apt-get install --fix-broken   
sudo apt-get install x11-xserver-utils
sudo sed -i 's/OCTOSCREEN_RESOLUTION=.*/OCTOSCREEN_RESOLUTION=800x533/' /etc/octoscreen/config
sudo systemctl set-default graphical

and restart:

sudo reboot now

Now i don't nothing see on lcd.,
Can anyone help me solve the problem I've been stuck on for several days now?

Hello @Jedrek !

Don't you think that the requested Systeminfo Bundle could be quite helpful?

Please attach it to your next post.

Unfortunately, I can't recreate this situation anymore. However, I've tried almost every solution I've found online to get the RPi 3B+ and the Waveshare 3.5(C) LCD (i.e., the RPi(C) LCD) to work on the latest OctoPi version with OctoPrint. I've spent over 100 hours and haven't been able to achieve anything concrete. Interestingly, there are no problems with this LCD running on the same RPI with OctoPi version 0.18 and OctoPrint version 1.11.2. OctoScreen Plugin 2.6 and OctoScreen 2.7.4 also work without any problems. But all of this works on the older Raspbian system.

Therefore, I'm changing my question and asking for a ready-made solution for getting this hardware working with the latest Octopi build to make it all work.

I would be grateful.

The issue is most likely related to the version of the OS. OctoPi version 0.18 is based on Debian 10 (buster). OctoPi version 1.1.0 is based on Debian 12 (bookworm). OctoPi version 1.0.0 is based on Debian 11 (bullseye).

The waveshare site has a collection of images with the driver already installed. I suggest you start with one of those images and if the display works, use octoprint_deploy to install OctoPrint.

The goal is to separate the problem into multiple steps and determine where it fails. We can then concentrate on solving that step.

Having a Pi 3B+ and an LCD RPiLCD 3.5(c), I tested the following system images from the Waveshare website:

  1. 3.5inch RPi LCD (C) Bullseye Image
  2. RPi LCD Bookworm_32bit only for pi5&pi4
  3. RPi LCD Bookworm_32bit Applicable to non-pi5 versions(There is a bug in this image that has not yet been resolved. You need to use SSH or an external HDMI screen to enter the terminal before the RPI screen can light up)
    4.RPi LCD Bookworm_64bit For all versions
  4. Ubuntu Image
  5. Kali Image

Here are the results:
Re: 1. There's a graphical image on the LCD, the Raspberry Pi Bullseye GUI starts, everything's fine.
Re: 2. I can't test because I don't have an RPI4 or RPI5, but I checked and the system image burned to the SD card doesn't boot from the RPI3 B+, it doesn't finish booting, and SSH and PING don't work.
Re: 3. The image burned to the SD card contains an error, as the manufacturer states. SSH must be enabled for it to work. Without SSH, the LCD screen remains black and displays nothing. After logging in via SSH, the boot history appears on the screen, but the screen remains in CLI mode with the login.
Re: 4. The LCD screen remains white, the system boots, and access is available via SSH.
Re: 5. The image cannot be booted. After inserting the SD card into the slot, the POWER LED flashes, there's no access to the device via SSH, and the RPI 3NB+ doesn't start.
Re: 6. While booting from an SD card, the display goes black, and the RPI 3B+ doesn't finish booting, and SSH and PING don't work.

Each image saved to the SD card was transferred from a file downloaded from the WAVESHARE website and verified using a Windows 11 PC and Raspberry PI Imager 1.9.6.

I'd use the first image and octoprint_deploy to install OctoPrint. If successful, add the plugins.

Hello
I'll check it out tonight, but I'd prefer to use the bookworm edition system.

I followed the instructions someone suggested. Now I'm getting a black screen with the login text and no graphics from Octoscreen. I don't know what the problem is. I followed the instructions below:

sudo mv /boot/config.txt /boot/config.txt.old
sudo mv /boot/cmdline.txt /boot/cmdline.txt.old
sudo ln -s /boot/firmware/config.txt /boot/config.txt
sudo ln -s /boot/firmware/cmdline.txt /boot/cmdline.txt

next

git clone https://github.com/waveshare/LCD-show.git
cd LCD-show/
sudo ./LCD35C-show lite

Now i get a black screen with login prompt.

For camere detect:

enable raspicam

start_x=1
gpu_mem=128
camera_auto_detect=0

Installation plugin octosceen 2.6.0
https://github.com/Z-Bolt/OctoPrint-Z-Bolt-OctoScreen/archive/master.zip

Installation latest Octoscreen (info from: https://github.com/Z-Bolt/OctoScreen/wiki/Installing-OctoScreen-with-a-3.5"-480x320-TFT-screen)

wget https://github.com/Z-Bolt/OctoScreen/releases/download/v2.7.4/octoscreen_2.7.4_armhf.deb
sudo dpkg -i octoscreen_2.7.4_armhf.deb
sudo apt-get install --fix-broken
sudo apt-get install x11-xserver-utils
sudo sed -i 's/OCTOSCREEN_RESOLUTION=.*/OCTOSCREEN_RESOLUTION=800x533/' /etc/octoscreen/config
sudo systemctl set-default graphical

Ultimately, nothing changed, meaning I got a black screen (launched) with the text:

Raspbian GNU/Linux 12octopi tty1
My IP address: 192.168.0.XXX and MAC RPI data
octopi login: _

I don't know what to do next or where I made a mistake.

My Systeminfo Bundle file is attached below: octoprint-systeminfo-20250802213506.zip (40.9 KB)

pi@octopi:~ $ sudo systemctl status octoscreen
● octoscreen.service - OctoScreen
Loaded: loaded (/lib/systemd/system/octoscreen.service; enabled; preset: enabled)
Active: activating (start) since Sun 2025-08-03 19:41:35 CEST; 12s ago
Main PID: 901 (xinit)
Tasks: 2 (limit: 1931)
CPU: 219ms
CGroup: /system.slice/octoscreen.service
└─901 /usr/bin/xinit /usr/bin/OctoScreen -- :0 -nolisten tcp -nocursor

Aug 03 19:41:35 octopi xinit[902]: (EE)
Aug 03 19:41:35 octopi xinit[902]: Fatal server error:
Aug 03 19:41:35 octopi xinit[902]: (EE) no screens found(EE)
Aug 03 19:41:35 octopi xinit[902]: (EE)
Aug 03 19:41:35 octopi xinit[902]: Please consult the The X.Org Foundation support
Aug 03 19:41:35 octopi xinit[902]: at http://wiki.x.org
Aug 03 19:41:35 octopi xinit[902]: for help.
Aug 03 19:41:35 octopi xinit[902]: (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
Aug 03 19:41:35 octopi xinit[902]: (EE)
Aug 03 19:41:35 octopi xinit[902]: (EE) Server terminated with error (1). Closing log file.

I've already solved this by using FBTubo instead of KMS. I got the image, but it's too large and only partially fits the screen. I tried this solution: sudo sed -i 's/OCTOSCREEN_RESOLUTION=.*/OCTOSCREEN_RESOLUTION=800x533/' /etc/octoscreen/config

and alternatively:

sudo sed -i 's/OCTOSCREEN_RESOLUTION=.*/OCTOSCREEN_RESOLUTION=480x320/' /etc/octoscreen/config

and the content displayed on the screen is still too large and doesn't fit completely.

I've tried various solutions and I'm stuck. I can't successfully scale the image to the display resolution. The image always doesn't fit the display, being too large to display.

My test config file

# For more options and information see
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
dtparam=i2c_arm=on
#dtparam=i2s=on
dtparam=spi=on
enable_uart=1
# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on
#dtoverlay=waveshare35c:rotate=90
dtoverlay=waveshare35c
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 800 533 60 6 0 0 0
#hdmi_cvt 480 320 60 6 0 0 0
hdmi_drive=2
#display_rotate=2

#camera_auto_detect=0
start_x=1
gpu_mem=128

#dtoverlay=vc4-fkms-v3d
#dtoverlay=vc4-kms-v3d
framebuffer_width=800
framebuffer_height=533
#framebuffer_width=480
#framebuffer_height=320
#overscan_left=0
#overscan_right=0
#overscan_top=0
#overscan_bottom=0
dtoverlay=fbturbo
disable_overscan=1

/etc/X11/xorg.conf.d/10-waveshare.conf:

Section "Device"
    Identifier "Waveshare FBDEV"
    Driver "fbdev"
    Option "fbdev" "/dev/fb1"
EndSection

Section "Screen"
    Identifier "Waveshare Screen"
    Device "Waveshare FBDEV"
    DefaultDepth 16
EndSection

These entries cause the Waveshare 3.5 (C) display to start working with OctoScreen on BookWorm. The only thing I can't figure out now is how to get the content displayed on the LCD to fit on the display. I've tried various settings, both 480x320 and 800x533 (for this display and OctoScreen), but none of the settings scale the image correctly.