3.5" LCD and HDMI Display

I have a couple of 3.5" LCD displays that work quite nicely; although the backlight cannot be turned off and draws about 150mA constantly.

Git Hub LCD-show installs and works, the Pi switches between HDMI & LCD nicely when running the scripts. The way the scripts work is to change the graphics driver and some configuration settings then reboot the Pi. The HDMI is no longer available of course.

What I would like to do; use the 3.5" LCD as a peripheral device; display stuff but still have the HDMI Gui available. The tiny 3.5" screen is not good at displaying complex information, fonts and stuff are too small. Web pages, forget it. For simple things it is great, like battery charge level, cpu temperature, time etc.

Has this been done ??

I know it would be slower as you would be using the CPU processor rather than the graphics processor.

Any help appreciated.

PS Will add to this thread as I find information.


Well this was not as hard as I thought.

Followed the info here and now have both screens working.
No need to reboot or change configuration files, which affected other settings.
The scripts used their own config files not saving the current ones. (poor practise)

Now to do some fancy stuff.
Might write this up and post here, the youtube video is just a video with instructions embedded in the video.



Haha, nice work answering your own question! Was just thinking about this and going to see if I could figure it out :slight_smile:


It looked good, both screens came up with the wallpaper … but the LCD had no menu and windows and such did not show on it. At the time of my previous post, got the wallpaper then went to do something else. Later I discovered it was not as good as I thought.

A day of playing around and not getting anywhere.
Towards the end of the day; got a Python program to display on the LCD but it blanked the HDMI screen. Stop the program and it all cames back as it was. So the Pi could write to the LCD.

Today after some more investigation.
There were a few lines missing from /boot/config.txt related to HDMI; added them in and both screens now mirror each other. My 24" Samsung monitor does not like anything less than 640x480, so the monitor display is too large and the LCD is too small. The LCD needs to be set at 320x240 to be useable, even at 480x320 it is too small.

Now I need to figure if its possible to have different resolutions for each screen. I am thinking not, it would need changes to the video driver.

Second is can the screens display different information. Again I am thinking not. Developing a video driver is beyond my programming skills.

Anyway, will see what can be done. Ultimately the Pi will be used as a portable device so the screen would be set to 320x240 and only changed to a higher resolution when back on the desktop for development etc. Probably it is now useful for what I want to do.



The process I used to get the 3.5" LCD and the HDMI screen to display at the same time is listed below. IMHO two displays is not very useful and there are a number of limitations. The Pi 4 having 2 HDMI outputs makes this obsolete. The 3.5" is nice as it fits the same size as the Pi and in a case looks good. Biggest disadvantage is the back light cannot be turned off, so it adds to the current drain. Other screens may be better.

Parts: Pi 3B+, 3.5" LCD, 24" Samsung Monitor.


  1. Follow the Tiny Screen Tutorial.

  2. Modify /boot/cmdline.txt
    Before rootwait add fbcon=map:10 fbcon=font:VGA8x8 to the line.

  3. Modify /boot/confi.txt
    Add or uncomment the following lines.

#hdmi_cvt 320 240 60 6 0 0 0
#hdmi_cvt 420 320 60 6 0 0 0
hdmi_cvt 640 480 60 6 0 0 0 

640x480 works with the 24" Monitor, 420x320 or 320x240 does not.
The lower resolutions make the LCD useable.

  1. Change the configuration of the fbturbo driver.
Section "Device"
        Identifier      "FBDEV 0"
        Driver          "fbturbo"
        Option          "fbdev" "/dev/fb0"
        Option          "SwapbuffersWait" "true"

Section "Device"
        Identifier "FBDEV 1"
        Driver "fbturbo"
        Option "fbdev" "/dev/fb1"

Section "Screen"
        Identifier "HDMI"
        Device "FBDEV 0"
        Monitor "Monitor name 0"

Section "Screen"
        Identifier "LCD"
        Device "FBDEV 1"
        Monitor "Monitor name 1"

Section "ServerLayout"
        Identifier "Default Layout"
        Screen 0 "HDMI"
        Screen 1 "LCD"

Both screens will show the same information, they just mirror each other. It is like there is only one video driver and the output is being directed to both displays. There was a problem with the touch screen, sometimes the cursor would turn into an ‘x’ and I could not fix it. Calibration of the touch screen was problematic.

Possibly the problems can be fixed, but for me it has come to diminishing returns. The scripts provided in LCD-show work nicely and I have made them into icons on the screen, easy to change.

Anyway, someone may find this useful or not. For me it has been fun and learning.


look around the makers of the 3.5 inch screens and prolly post on the raspery forom itself…there is prolly some code to control the back light…if its got pin outs then there is prolly code for it.. browse the displays on the web for a bit see if somebody has a hack "" for instance look at their wiki you will find plenty of data there "hardkernel" forum/wiki"" you may find some help there if you can p.m me with the make and model ill look/ask around for some…for you…maybe add a manual pot divider to the power rails…???

your code looks simuiar too their vu8 code

1 Like

The cheap (relatively) 3.5" LCD screens have absolutely no control for the backlight. I have two of them and have examined them closely.

There is no pin to control the backlight and it is a known issue on the forums I have researched.

Having said that there are many that do have backlight control via PWM; just not the particular ones I purchased. One was from Core Electronics the other from Banggood (included a case for Pi 3B+).
Link to Core Electronics product below. Both are the same. The screen fits nicely in the case, same size as the Pi 3B+ & Pi 4B. But there is no physical mounting other than the Pins. Core also have a case for a Pi 4B.

The screen works nicely for what it is; just consumes power when not being used. (about 150mA)


try here for some handy code