Kiosk mode for Raspberry Pi

Hello and welcome to our blog post today!


In today's post we would like to show how you can operate a Raspberry Pi in kiosk mode.


We need for the project:

1x Raspberry Pi (3B or 3B + recommended) including power supply
1x suitable MicroSD card with at least 4GB
1x HDMI cable
1x screen with HDMI input
1x Ethernet cable

For the installation:

1x USB keyboard
1x USB mouse


The Raspberry Pi is connected via HDMI to a screen, which should display information. You probably know such advertisements from the canteen, the school, the waiting room at the doctor or the information boards that you encounter in everyday life.

In our case, the content of a website should be displayed on the screen. In this way, this data can be updated easily and centrally, very practical if you e.g. want to keep an eye on a company network or your home automation.

Our Raspberry Pi should turn on the screen at a certain time and then turn it off again in the evening.

The kiosk mode of the Chromium browser is ideal for this, but today we use a finished image on an SD card with the name "chilipie-kiosk", in which everything is already prepared and therefore easy to put into operation.


The installation

We download from the first step  download the current SD card image and flash it using Etcherto an SD card.

Write chilipie kiosk with etcher on SD card


To do this, we select the chilipie-kiosk image as the source, the SD card as the target, and click "Flash!". All data on the SD card (or the selected target drive) will be deleted!

Now insert the SD card into the Raspberry Pi and connect a keyboard, the screen, the network cable and, if desired, a mouse.

After the first start, a logo appears with the message "Please wait".

Home screen

After a short time we are greeted by a locally saved website that explains some of the chilipie kiosk.


Welcome Screen

The display is a locally saved website in a Chromium web browser in full screen mode.

If we now press F11 on the keyboard, we leave full screen mode and see a typical browser window with address bar. With the key combination Ctrl + L we jump to the address line and can enter our destination URL there.

The browser remembers the currently entered address and the login information, and the last used address is automatically searched for after a restart.

As a test you can enter the URL of our shop here:

We are testing our shop page


System configuration

As is typical for Linux, several terminals are already preconfigured, between which you can switch using the key combination Ctrl + Alt + function key.

Ctrl + Alt + F1  is the current view. The graphical user interface including Chromium runs here. Means F11  we can switch between normal mode (with visible address line) and full screen mode.

Ctrl + Alt + F2  is the raspi-config tool. Here you can change the password, change the network settings and much more.

raspi-config screen


Ctrl + Alt + F3  gives us a Linux shell in which we can make further settings.

Linux shell


If you use a German keyboard layout like I do and don't know the Querty layout by heart (especially the special characters), working in the terminal can quickly become frustrating.

Therefore, in this example we change the keyboard layout. For this we go with the key combination Ctrl+Alt+F2 into the raspi-config tool, and select point 4 "Localisation Options", followed by point 1 "Local change".




We scroll down to the point "de DE.UTF-8" (or the AT for Austria, the CH for Switzerland, etc.) and select the entry by pressing the Empty Off.

set locale

Next we will be asked what the location for the system environment should be. Here too I choose en DE.UTF-8 Off.


Now we go on "<finish>"so that the Raspberry Pi performs a new start, and then go again using Ctrl+Alt+F2 in the raspi-config tool.

Here we can change the user's password "pi" in the first menu item, change the host name, set the time zone, and under "Advanced Options" we may enable overscan if there are black borders on the screen, or, as with me, the text does not quite fit on the monitor.

In order to automate processes time-controlled, chilipie kiosk uses the cron service. The settings are stored in a text file. To edit this we need to go to the shell briefly. We press for this Ctrl+Alt+F3.

Linux console 1

To edit the table we give the command "crontab -e" for "edit". Here we are asked which editor we want to use. If you are not sure, you should register 2 "nano" decide because it is the easiest to use. To move the cursor, we use the Arrow.

"crontab -e" command 

We comment on the times for automatic input or input. Turn off by "#" Remove at the beginning of the line and adjust the time as required.

Means Ctrl+X we leave the nano editor and confirm that we want to save the changes with the Key "J"Yeah. The proposed name is, okay, so we confirm it by Enter.


Final remarks

If a yellow flash symbol is displayed on the upper right screen, this means that the power supply used is too weak.

Depending on the screen used, it may well be that it causes problems when entering or leaving. Shut it down. Often this can be controlled by using the screen settings (automatic shutdown after X minutes).

Public displays are a preferred target of attack. It should therefore be built in such a way that the Connections not accessible for unauthorised persons mind.


Customize the splash screen

The logo displayed at the start is not suitable for use in very serious environments such as public authorities, schools, etc. optimized. Therefore, we will show you how to change this starting screen. The easiest way to do this is to store an image on a web server.

We have prepared a very tasty image, and put it on our server for you.

On the chilipie we first finish the full screen mode in which we F11 Press.

Now we enter the following URL in the address line (depending on the keyboard it may be that the keys y and z are switched!) Quote:

Adjust the background, step 1

After the image has been opened, we click the image with the right mouse button and choose the option "Save image under...".

Save image...


In the "Save" dialog we click on the top left "Author's Edition"and then to the existing file"background.png" which we want to overwrite.

In the next step we click on "Save" at the bottom right and confirm in the last step that we want to replace the existing file.

Overwrite the file background.png

From now on, the AZ-Delivery logo will be displayed on startup!

Now don't forget to adjust the URL again to show the page you want after restarting.


We hope you enjoyed this post today and are excited to see where you will use this project. From the status display of your home automation system, through displays in waiting rooms at doctor's surgeries, or day tickets in the canteen, a lot is possible.




Basics of softwareRaspberry pi




Hallo, kann ich das System auch ohne Tastatur und Maus über ein Terminalprogramm wie z.B. Putty Konfigurieren ? Welches sind die entsprechenden Dateien. Vielen Dank im Voraus. Mit freundlichen Grüssen Klaus-Dieter Brinkmann



Danke für das image und die tolle Anleitung/Erklärung!

Habe es unter einem Raspberry Pi 3 jetzt am laufen!

Jetzt habe ich aber noch zwei Fragen:
1.) Läuft es auch auf einem Raspberry Pi 4 ?
2.) Kann ich das Bild vom Raspberry auch drehen um 90‘ Grad?

Vielen Dank




Danke für das Image, funktioniert auf Anhieb prächtig!
Ich verwende einen qualitativ hochwertigen 17" Touchscreen an meinem PI4.
Wie könnte ich bitte das Backlight des Monitors über die Commandline steuern? Ich suche und probiere seit Tagen vergebens.
Danke für eine Rückmeldung im Voraus!

Manuel Wenger

Manuel Wenger

Hallo und danke für die ausführliche Anleitung, Läuft soweit prima und stabil seit einer Woche.
Hätte da aber noch 2 Fragen dazu.
1. Ist es Möglich eine feste http Adresse festzulegen zu der der Pi nach einem Reset zurückkehrt. Momentan gebootet er ja mit der letzen Adresse die aufgerufen wurde.
2. Ist es möglich Seiten zu sperren, bei mir gehts um ein Buchungssystem für Tennisplätze, auf dem es einen Link zum Hersteller gibt, und wenn man den klickt kommt man nicht mehr auf die Buchungsoberfläche zurück.
Vielen Dank
Manuel Wenger



Hallo AZ-Delivery

Danke für diese tolle Anleitung!
Ich benötige dies für mein SmartHome Display (Anzeige einer IoBroker Webseite). Da meine alte Konfiguration mit dem Midori Browser Probleme machte, wollte ich auf Chronium umstellen und bin durch Google auf euch gestossen.

Das Einzige was mir noch Probleme macht, ist, dass ich die Funktion des Bildschirmschoners benötige welche im Chilipe-kiosk Modus Standardmässig nicht aktiv ist. Ich habe am Raspi (HDMI) ein Waveshare Display angeschlossen welchen ich mit dem Display on /off Script auch problemlos ein / aus schalten kann. Nur schaffe ich es nicht, dass der Display 1-2 Minuten nach der letzten Mausbewegung (Touch-Panel per USB) aus geht. Einschalten sollte er wieder, wenn der Touch-Panel erneut berührt wird (Maus Signal per USB).
Habt Ihr mir eine Idee wie ich den Screensaver wieder aktiveren kann?
Übrigens, die von mir beschriebene Funktion hatte unter Midori super funktioniert. Ich fände es toll, wenn Ihr das Tutorial um diesen Punkt ergänzen würdet, Gibt sicher einige die Ihren Display mit der Touch Funktion steuern möchten.

Liebe grüsse




Ich habe eine Webseite mit Passwortschutz.
Bei jedem Refresh muss ich das Passwort neu eingeben.

Leave a comment

All comments are moderated before being published

Recommended blog posts

  1. Install ESP32 now from the board manager
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - ESP programming via WLAN