Volumio and 1.44inch LCD HAT

Hi,

I have a raspberry Pi zero wh with Volumio 2.917 + Bluetooth Plugin.
I would like to install 1.44inch LCD HAT. I followed this guide and I see the volumio login appear on the lcd. Instead I would like to see the screen you see with volumio.local.
How can I do?

Thank you !

Volumio Information

Volumio Version: 2.917
Hardware: Raspberry Pi Zero Wh
DAC: /

you could do it with the touch plugin. @gvolt maybe you can help him with this?

You would have to install the Touch Display plugin… but: I would expect that the Pi Zero does not have enough resources to get a pleasing result.

1 Like

Hi,

I also have a raspberry pi 3.
I tried installing the Touch Display plugin, but I have this error:

error: touch_display: Connecting to the Xserver failed.
error: touch_display: Xserver unix domain socket cannot be determined.

I formatted the card and I reinstalled volumio, then the bluetooth plugin, then the drivers for FBCP and then the Touch Display plugin.
Same error.
Can you help me?

Thank you.

Volumio Information

Volumio Version: 2.917
Hardware: Raspberry Pi 3
DAC: /
Lcd: Waveshare 1.44inch LCD HAT

Please post the results of

cat /var/log/Xorg.0.log
cat /boot/config.txt
cat /boot/userconfig.txt
ls -al /usr/share/X11/xorg.conf.d
ls -al /etc/X11/xorg.conf.d
chromium-browser -version

Hi, thank you.

cat /var/log/Xorg.0.log

cat: /var/log/Xorg.0.log: No such file or directory

cat /boot/config.txt

initramfs volumio.initrd
gpu_mem=32
max_usb_current=1
dtparam=audio=on
audio_pwm_mode=2
dtparam=i2c_arm=on
disable_splash=1
hdmi_force_hotplug=1
dtparam=spi=on
include userconfig.txt

cat /boot/userconfig.txt

# Add your custom config.txt options to this file, which will be preserved during updates

ls -al /usr/share/X11/xorg.conf.d
ls: cannot access /usr/share/X11/xorg.conf.d: No such file or directory

ls -al /etc/X11/xorg.conf.d

total 20
drwxr-xr-x 2 root root 4096 Nov 18 16:58 .
drwxr-xr-x 1 root root 4096 Nov 18 16:53 ..
-rw-r--r-- 1 root root  316 Nov 18 16:58 95-touch_display-plugin.conf

chromium-browser -version
-bash: chromium-browser: command not found

Thank you

It seems, that not all necessary software packages were downloaded (and installed properly) when the Touch Display plugin was installed. I suggest to uninstall the plugin and re-install it.

P.S. Did you wait several minutes after the first boot of Volumio so the data partition could fully expand?

Hi,

I formatted the card and started over. I immediately installed the Touch Display plugin and I no longer have the error " error: touch_display: Xserver unix domain socket cannot be determined.".

Now I have tried to install the FBCP Drivers, after activating the spi interface.

sudo apt-get install cmake -y
cd ~
wget https://www.waveshare.com/w/upload/f/f9/Waveshare_fbcp.7z
sudo apt-get install p7zip-full
7z x Waveshare_fbcp.7z -o./waveshare_fbcp
cd waveshare_fbcp
mkdir build
cd build
cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH44_LCD_HAT=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..
make -j
sudo ./fbcp

but

cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH44_LCD_HAT=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..

I have

-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:23 (project):
  No CMAKE_C_COMPILER could be found.

  Tell CMake where to find the compiler by setting either the environment
  variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
  the compiler, or to the compiler name if it is in the PATH.


CMake Error at CMakeLists.txt:23 (project):
  No CMAKE_CXX_COMPILER could be found.

  Tell CMake where to find the compiler by setting either the environment
  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH.


-- Configuring incomplete, errors occurred!
See also "/home/volumio/waveshare_fbcp/build/CMakeFiles/CMakeOutput.log".
See also "/home/volumio/waveshare_fbcp/build/CMakeFiles/CMakeError.log".

I tried sudo apt-get install c++ and sudo apt-get install cmake but doesn’t fix

CMakeError.log

Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND 
Build flags: 
Id flags: 

The output was:
No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND 
Build flags: 
Id flags: -c

The output was:
No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND 
Build flags: 
Id flags: -Aa

The output was:
No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND 
Build flags: 
Id flags: -D__CLASSIC_C__

The output was:
No such file or directory


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND 
Build flags: 
Id flags: 

The output was:
No such file or directory


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND 
Build flags: 
Id flags: -c

The output was:
No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND 
Build flags: 
Id flags: 

The output was:
No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND 
Build flags: 
Id flags: -c

The output was:
No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND 
Build flags: 
Id flags: -Aa

The output was:
No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND 
Build flags: 
Id flags: -D__CLASSIC_C__

The output was:
No such file or directory


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND 
Build flags: 
Id flags: 

The output was:
No such file or directory


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND 
Build flags: 
Id flags: -c

The output was:
No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND 
Build flags: 
Id flags: 

The output was:
No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND 
Build flags: 
Id flags: -c

The output was:
No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND 
Build flags: 
Id flags: -Aa

The output was:
No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND 
Build flags: 
Id flags: -D__CLASSIC_C__

The output was:
No such file or directory


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND 
Build flags: 
Id flags: 

The output was:
No such file or directory


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND 
Build flags: 
Id flags: -c

The output was:
No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND 
Build flags: 
Id flags: 

The output was:
No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND 
Build flags: 
Id flags: -c

The output was:
No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND 
Build flags: 
Id flags: -Aa

The output was:
No such file or directory


Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND 
Build flags: 
Id flags: -D__CLASSIC_C__

The output was:
No such file or directory


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND 
Build flags: 
Id flags: 

The output was:
No such file or directory


Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND 
Build flags: 
Id flags: -c

The output was:
No such file or directory

In the previous installation this error did not appear. :sob:

Help !
Thank you

ps. Yes, I waited a few minutes after the first boot of Volumio.

I fear I can’t help with compiling the driver. But we could have a look if the display would works without that.

Do you get now results for

cat /var/log/Xorg.0.log
and
ls -al /usr/share/X11/xorg.conf.d
?

If so please post them and also the output of

ls -al /dev/fb*

cat /var/log/Xorg.0.log

[    45.657]
X.Org X Server 1.18.4
Release Date: 2016-07-19
[    45.660] X Protocol Version 11, Revision 0
[    45.661] Build Operating System: Linux 4.4.26-v7+ armv7l Raspbian
[    45.661] Current Operating System: Linux volumio 4.19.118-v7+ #1311 SMP Mon Apr 27 14:21:24 BST 2020 armv7l
[    45.661] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 bcm2708_fb.fbwidth=1824 bcm2708_fb.fbheight=984 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  splash quiet plymouth.ignore-serial-consoles dwc_otg.fiq_enable=1 dwc_otg.fiq_fsm_enable=1 dwc_otg.fiq_fsm_mask=0xF dwc_otg.nak_holdoff=1 console=ttyS0,115200 kgdboc=ttyS0,115200 console=tty1 imgpart=/dev/mmcblk0p2 imgfile=/volumio_current.sqsh elevator=noop rootwait bootdelay=5 logo.nologo vt.global_cursor_default=0 loglevel=0 snd-bcm2835.enable_compat_alsa=1 snd_bcm2835.enable_headphones=1
[    45.667] Build Date: 11 November 2016  11:59:59AM
[    45.667] xorg-server 2:1.18.4-2+rpi1 (https://www.debian.org/support)
[    45.667] Current version of pixman: 0.32.6
[    45.667]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[    45.667] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    45.667] (==) Log file: "/var/log/Xorg.0.log", Time: Thu Nov 18 19:06:12 2021
[    45.677] (==) Using config directory: "/etc/X11/xorg.conf.d"
[    45.677] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    45.684] (==) No Layout section.  Using the first Screen section.
[    45.684] (==) No screen section available. Using defaults.
[    45.684] (**) |-->Screen "Default Screen Section" (0)
[    45.684] (**) |   |-->Monitor "<default monitor>"
[    45.694] (==) No device specified for screen "Default Screen Section".
        Using the first device section listed.
[    45.694] (**) |   |-->Device "Allwinner A10/A13 FBDEV"
[    45.694] (==) No monitor specified for screen "Default Screen Section".
        Using a default monitor configuration.
[    45.694] (==) Automatically adding devices
[    45.694] (==) Automatically enabling devices
[    45.694] (==) Automatically adding GPU devices
[    45.706] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    45.708] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[    45.708]    Entry deleted from font path.
[    45.713] (==) FontPath set to:
        /usr/share/fonts/X11/misc,
        /usr/share/fonts/X11/100dpi/:unscaled,
        /usr/share/fonts/X11/75dpi/:unscaled,
        /usr/share/fonts/X11/Type1,
        /usr/share/fonts/X11/100dpi,
        /usr/share/fonts/X11/75dpi,
        built-ins
[    45.713] (==) ModulePath set to "/usr/lib/xorg/modules"
[    45.713] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
[    45.713] (II) Loader magic: 0x6e7f20
[    45.713] (II) Module ABI versions:
[    45.713]    X.Org ANSI C Emulation: 0.4
[    45.713]    X.Org Video Driver: 20.0
[    45.713]    X.Org XInput driver : 22.1
[    45.713]    X.Org Server Extension : 9.0
[    45.715] (--) using VT number 2

[    45.715] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[    45.716] (II) no primary bus or device found
[    45.717] (II) LoadModule: "glx"
[    45.727] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    45.834] (II) Module glx: vendor="X.Org Foundation"
[    45.834]    compiled for 1.18.4, module version = 1.0.0
[    45.834]    ABI class: X.Org Server Extension, version 9.0
[    45.834] (==) AIGLX enabled
[    45.834] (II) LoadModule: "fbturbo"
[    45.834] (II) Loading /usr/lib/xorg/modules/drivers/fbturbo_drv.so
[    45.842] (II) Module fbturbo: vendor="X.Org Foundation"
[    45.842]    compiled for 1.18.4, module version = 0.5.1
[    45.842]    Module class: X.Org Video Driver
[    45.842]    ABI class: X.Org Video Driver, version 20.0
[    45.842] (II) FBTURBO: driver for framebuffer: fbturbo
[    45.858] (WW) Falling back to old probe method for fbturbo
[    45.858] (II) Loading sub module "fbdevhw"
[    45.858] (II) LoadModule: "fbdevhw"
[    45.859] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[    45.862] (II) Module fbdevhw: vendor="X.Org Foundation"
[    45.862]    compiled for 1.18.4, module version = 0.0.2
[    45.862]    ABI class: X.Org Video Driver, version 20.0
[    45.862] (II) FBTURBO(0): using /dev/fb0
[    45.862] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[    45.863] (II) FBTURBO(0): Creating default Display subsection in Screen section
        "Default Screen Section" for depth/fbbpp 24/32
[    45.863] (==) FBTURBO(0): Depth 24, (==) framebuffer bpp 32
[    45.863] (==) FBTURBO(0): RGB weight 888
[    45.863] (==) FBTURBO(0): Default visual is TrueColor
[    45.863] (==) FBTURBO(0): Using gamma correction (1.0, 1.0, 1.0)
[    45.863] (II) FBTURBO(0): hardware: BCM2708 FB (video memory: 7011kB)
[    45.863] (**) FBTURBO(0): Option "fbdev" "/dev/fb0"
[    45.863] (**) FBTURBO(0): Option "SwapbuffersWait" "true"
[    45.863] (II) FBTURBO(0): processor: Unknown
[    45.863] (II) FBTURBO(0): checking modes against framebuffer device...
[    45.863] (II) FBTURBO(0): checking modes against monitor...
[    45.863] (--) FBTURBO(0): Virtual size is 1824x984 (pitch 1824)
[    45.863] (**) FBTURBO(0):  Built-in mode "current"
[    45.863] (==) FBTURBO(0): DPI set to (96, 96)
[    45.863] (II) Loading sub module "fb"
[    45.863] (II) LoadModule: "fb"
[    45.863] (II) Loading /usr/lib/xorg/modules/libfb.so
[    45.874] (II) Module fb: vendor="X.Org Foundation"
[    45.874]    compiled for 1.18.4, module version = 1.0.0
[    45.874]    ABI class: X.Org ANSI C Emulation, version 0.4
[    45.874] (==) Depth 24 pixmap format is 32 bpp
[    45.911] (II) FBTURBO(0): using backing store heuristics
[    45.919] (II) FBTURBO(0): can't load 'g2d_23' kernel module
[    45.919] (II) FBTURBO(0): failed to enable the use of sunxi display controller
[    45.919] (II) FBTURBO(0): No sunxi-g2d hardware detected (check /dev/disp and /dev/g2d)
[    45.919] (II) FBTURBO(0): G2D hardware acceleration can't be enabled
[    45.919] (II) FBTURBO(0): enabled fbdev copyarea acceleration
[    45.919] (==) FBTURBO(0): Backing store enabled
[    45.935] (==) FBTURBO(0): DPMS enabled
[    45.935] (II) FBTURBO(0): failed to enable hardware cursor
[    45.935] (II) FBTURBO(0): no 3D acceleration because the driver has been compiled without libUMP
[    45.935] (II) FBTURBO(0): if this is wrong and needs to be fixed, please check ./configure log
[    45.938] (==) RandR enabled
[    45.982] (II) SELinux: Disabled on system
[    45.989] (II) AIGLX: Screen 0 is not DRI2 capable
[    45.989] (EE) AIGLX: reverting to software rendering
[    48.702] (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
[    48.705] (II) AIGLX: Loaded and initialized swrast
[    48.705] (II) GLX: Initialized DRISWRAST GL provider for screen 0

ls -al /usr/share/X11/xorg.conf.d

total 32
drwxr-xr-x 2 root root 4096 Nov 18 18:54 .
drwxr-xr-x 1 root root 4096 Nov 18 18:55 ..
-rw-r--r-- 1 root root 1350 Nov 11  2016 10-quirks.conf
-rw-r--r-- 1 root root  788 Sep 30  2016 40-libinput.conf
-rw-r--r-- 1 root root 2747 Oct 28  2016 70-wacom.conf
-rw-r--r-- 1 root root  607 Dec  7  2016 99-fbturbo.conf

ls -al /dev/fb*

crw-rw---- 1 root video 29, 0 Nov 18 19:05 /dev/fb0

Thank you very much !

How is the display looking when the Touch Display plugin has started and how is it looking with the plugin disabled? Do you see something changing?

white screen in both cases. :cry:

Please try the following:

Open “/usr/share/X11/xorg.conf.d/99-fbturbo.conf” with

sudo nano /usr/share/X11/xorg.conf.d/99-fbturbo.conf

and change

Option "fbdev" "/dev/fb0"

to

Option "fbdev" "/dev/fb1"

Save the file hitting Ctrl-x, y and Enter.

Disable and re-enable the Touch Display plugin.

white screen

I couldn’t test the following, but you may try at your own risk to

  1. open “/etc/modules”

sudo nano /etc/modules

and add

spi-bcm2835
fbtft_device
  1. create a file “/etc/modprobe.d/fbtft.conf”

sudo nano /etc/modprobe.d/fbtft.conf

with the content

# /etc/modprobe.d/fbtft.conf
options fbtft_device name=adafruit18_green 
gpios=reset:27,dc:25,cs:8,led:24 speed=40000000 bgr=1 fps=60 custom=1 height=128 width=128 rotate=180
  1. add to “/boot/userconfig.txt”
hdmi_cvt = 128 128 60 1 0 0 0
hdmi_group = 2
hdmi_mode = 1
hdmi_mode = 87
  1. reboot

Hi,

It work !! Thank you !

Now how can i configure the keys?

:+1: Great!

For the buttons you can probably add multiple “gpio-key” overlays to “/boot/userconfig.txt” like this:

# KEY1
dtoverlay=gpio-key
dtparam=gpio=21
dtparam=label=
dtparam=keycode=

# KEY2
dtoverlay=gpio-key
dtparam=gpio=20
dtparam=label=
dtparam=keycode=

# KEY3
dtoverlay=gpio-key
dtparam=gpio=16
dtparam=label=
dtparam=keycode=

# Joystick UP
dtoverlay=gpio-key
dtparam=gpio=6
dtparam=label=
dtparam=keycode=

# Joystick DOWN
dtoverlay=gpio-key
dtparam=gpio=19
dtparam=label=
dtparam=keycode=

# Joystick LEFT
dtoverlay=gpio-key
dtparam=gpio=5
dtparam=label=
dtparam=keycode=

# Joystick RIGHT
dtoverlay=gpio-key
dtparam=gpio=26
dtparam=label=
dtparam=keycode=

# Joystick PRESS
dtoverlay=gpio-key
dtparam=gpio=13
dtparam=label=
dtparam=keycode=

Note: The above code is not meant to be copied and pasted only. You obviously need to add the desired “label” and “keycode” values for each button.

You find available keycodes here.

Also have a look at the plugins “GPIO Buttons”, “GPIO Radio Buttons” and “Gpio Random” which allow to assign GPIO inputs to certain Volumio actions (e.g. play/pause, volume up, volume down, previous, next, shutdown etc.). If you want to assign one or more of the HAT’s buttons by plugin you need to remove the corresponding “gpio-key” overlay(s) from “/boot/userconfig.txt”.

Hi,

thank you very much.
I have set the 3 buttons. For the joystick I have a bit of difficulty, but I don’t think I would be able to use it because the image on the screen is too little.

Could I use this screen as if it were a 16x2 lcd? Where do I see the song and have the buttons to turn up the volume and stop the play? Without a touch display plugin ?

Yes, screen is a bit tiny for navigating with the joystick I guess. I would probably use the joystick’s switches to control volume up (joystick up), volume down (joystick down), previous (joystick left), next (joystick right) and play/pause (joystick press) and the other three keys for … :thinking: something other :wink:

The display cannot be controlled like a classic 16x2 LCD. You would have to program an appropriately adapted UI that imitates a 16x2 LCD. To show this UI you would need the Touch Display plugin or something similar.

Possibly nowhere since the resolution is so low that the UI is reduced to minimal elements.

Thank you very much! I fixed all the keys.
I wanted to try to put the 2° lcd screen on the raspberry pi zero, without touch display plugin.
Is there a lighter alternative to the touch display plugin? To display only the name of the song?

Thank you,