17

I have a battery-powered RPi Zero W that is going to be hooked into a mobile laser projector. This is an experiential setup, so I need to be able to turn it off and on between uses.

My goal here is to have the RPi startup but not display anything through the projector (HDMI) unless I programmatically tell it to. Can anyone point me in the right direction here on how to do this?

Basically, I'd like to remove the boot splash image and any text, and keep it from going to desktop, preferably just keeping the HDMI completely off.

I have a script that I use to turn the display off, but would love to boot this way:

sudo vcgencmd display_power 0

normmcgarry
  • 271
  • 1
  • 2
  • 5

1 Answers1

23

There is a few things you can try:

  1. Edit /etc/rc.local and add the following lines above exit 0:

    Disable HDMI

    /usr/bin/tvservice -o

this will turn off the display, but only somewhere during the boot sequence

  1. add hdmi_blanking setting to your /boot/config.txt I found the follwing settings here:

    hdmi_blanking=0: HDMI Output will be blank when DPMS is triggered hdmi_blanking=1: HDMI Output will be disabled when DPMS is triggered hdmi_blanking=2: HDMI Output will be disabled on boot and can be enabled using the above listed commands.

But the official documentation does not mention hdmi_blanking=2 only the following 2 settings:

0   HDMI Output will blank instead of being disabled
1   HDMI Output will be disabled rather than just blanking

I think hdmi_blanking=1 should do what you want.

And if that doesn't help you can still try a few other things found in this article:

  • disable_splash=1 in /boot/config.txt

  • Edit /boot/cmdline.txt quiet: disable boot message texts, logo.nologo: removes Raspberry Pi logo in top left corner, vt.global_cursor_default=0: removes blinking cursor

I don't have a TV to try it on my Raspberry Pi.

Guiorgy
  • 103
  • 3
Eugen
  • 488
  • 3
  • 12
  • 6
    What worked for me is setting hdmi_blanking=2, whereas hdmi_blanking=1 didn't really work. Thanks! – diegoreymendez Feb 13 '19 at 17:06
  • 2
    For me, on a Pi Zero, hdmi_blanking in config.txt made no difference in current drawn - I have no screen connected, so I'm only measuring current. The only thing that worked was the tvservice -o call in /etc/rc.local – Rado Mar 17 '21 at 20:42
  • /etc/rc.local has been superseeded by systemd. So you would be better of by writing your own unit file or adding a cronjob like @reboot /usr/bin/tvservice -o – Robert Riedl Oct 12 '21 at 14:53