Code Monkey home page Code Monkey logo

chilipie-kiosk's Introduction

chilipie-kiosk

Easy-to-use Raspberry Pi image for booting directly into full-screen Chrome, with built-in convenience features for unattended operation. Perfect for dashboards and build monitors.

Features

Screenshots

▲ Customizable, full screen        ▲ Boots directly into a simple     ▲ WiFi & other system config
      startup graphics                  getting started -guide          is just one keypress away
  • Boots directly to full-screen Chrome - with all the features of a modern browser
  • No automatic updates - no surprises due to Chrome (or other packages) suddenly updating
  • Automatic crash-recovery - accidental unpowering won't result in "Chrome did not shut down correctly :("
  • Custom startup graphics - displays customizable graphics instead of console messages during startup
  • Lightweight window manager - uses Matchbox for minimal clutter and memory footprint
  • HDMI output control - ready-made scripts for turning off the display outside of office hours, for example
  • Cursor hiding - if you leave a mouse plugged in, the cursor is hidden after a brief period of inactivity
  • Automatic reboots - reboots the Pi nightly, when nobody's watching, to keep it running smoothly
  • Based on a recent Debian - if you want to add your own tweaks, all the expected packages are one apt-get away
  • Batteries included - the most common how-to's and ProTips have been collected to the first-boot document

Getting started

  1. Check that you have compatible hardware.
  2. Download the latest image.
  3. Decompress it.
  4. Flash the image onto your SD card. We recommend Etcher for this: it's delightfully easy to use, cross platform, and will verify the result automatically. If you know what you're doing, you can of course also just sudo dd bs=1m if=chilipie-kiosk-vX.Y.Z.img of=/dev/rdisk2.
  5. Optional: Set URL before boot
  6. Optional: Setup automatic WiFi
  7. Insert the SD card to your Pi and power it up.
  8. You should land in the first-boot document, for further instructions & ideas.

Set URL before boot

  1. After flashing remount your SD card.
  2. Create a chilipie_url.txt in your SD cards boot folder or /home/pi.
  3. Write URL in first line of file.

Note: You can user ${SERIAL} to get Pi's serial number into URL.

Automatic WiFi setup

  1. After flashing remount your SD card.
  2. Create a wpa_supplicant.conf in your SD cards boot folder
  3. Copy the sample wpa_supplicant.conf file into the boot folder on the SD card.
  4. Replace WiFi-SSID and WiFi-PASSWORD with your WiFi configuration.
  5. Optional: Set the country code to your country code e.g. DE.

Sample wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US

network={
  ssid="WiFi-SSID"
  psk="WiFi-PASSWORD"
  key_mgmt=WPA-PSK
}

Hardware

Works with all Raspberry Pi versions. Versions 3 and 4 are recommended, though, since the smaller ones can be a bit underpowered for rendering complex dashboards. The 3 and 4 also come with built-in WiFi, which is convenient (though both official and off-the-shelf USB WiFi dongles can work equally well).

Make sure you have a compatible 4+ GB SD card. In general, any Class 10 card will work, as they're fast enough and of high enough quality.

The Pi needs a 2.5 Amp power source. Most modern USB chargers you'll have laying around will work, but an older/cheaper one may not.

Common issues

  • I get a kernel panic on boot, or the image keeps crashing. The Raspberry Pi is somewhat picky about about its SD cards. It's also possible the SD card has a bad sector in a critical place, and dd wasn't be able to tell you. Double-check that you're using a blessed SD card, and try flashing the image again.
  • I see a "rainbow square" or "yellow lightning" in the top right corner of the screen, and the device seems unstable. This usually means the Pi isn't getting enough amps from your power supply. This is sometimes the case in more exotic setups (e.g. using the USB port of your display to power the Pi) or with cheap power supplies. Try another one.
  • The display control scripts don't turn off the display device. Normal PC displays will usually power down when you cut off the signal, but this is not the case for many TV's. Please check if your TV has an option in its settings for enabling this, as some do. If not, you can try your luck with HDMI CEC signals, but the TV implementations of the spec are notoriously spotty.
  • The MicroSD card isn't flashing correctly, I don't see the boot partition. This commonly happens on Windows computers and can be fixed by extracting the chilipie*.img file from the tar.gz. You will need to use an extraction tool that supports both gzip and tar archive formats, such as 7zip. Extract the contents of the img.tar.gz file, then extract the contents of the resulting img.tar file again. You should be left with an .img file, which you can then use with Etcher to flash your SD card.

Acknowledgements

This project is a grateful recipient of Futurice Open Source sponsorship. Thank you. 🙇

chilipie-kiosk's People

Contributors

arch-vile avatar austinbv avatar birdybro avatar c0un7-z3r0 avatar cedricwalter avatar crisp2u avatar houzvicka avatar jareware avatar prauscher avatar slocomptech avatar solarshado avatar sualko avatar thibmaek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chilipie-kiosk's Issues

Clarify upgrade policy

Some people have ran e.g. dist-upgrade after installation, which has caused issues. Make sure the README clearly indicates that this is meant to be an appliance.

Remote view/management for browser and content

Hello,

this is a very nice kiosk setup! I used to have raspbian with chromium kiosk with some unclutter and a few bits more. But this one is far more advanced with nightly reboot, hourly refresh, zoom, password saving etc. 👍 👍 👍

I'm only missing one feature which is to see (and change) the browser (and content) remotely. My use case is that the screen is few hundred kilometers away and I need to check if it has a proper content loaded. Also I could get a call that something is not properly shown and I need to be able to see what is actually shown to troubleshoot it properly.

My setup right now is using Teamviewer for this. I tried to install it via command line in chilipie-kiosk and actually it was successful (installing the teamviewer-host_armhf.deb with around 100MB of dependencies). I even could set it up properly via command line (running 'teamviewer setup' command). Problem is that I can only connect when the console is active on tty2. Otherwise I can't connect.

I'm not keen on using Teamviewer at all but just need ANY remote management solution to be able to see and change the content of the browser. For sure FOSS is preferred!

And thank's a lot for this great project!
Greetings

chromium-browser does not work on Google sites

Google sites, such as Google Analytics dashboards, do not work with the version of chromium-browser currently installed. Attempts to access those pages give the famous _ERR_SSL_PROTOCOL_ERROR_ and the --ignore-certificate-errors command line flag does not affect the situation.

According to an answer at askubuntu.com this issue manifested in some particular versions of chromium-browser package, and have since been fixed. So an update to the package would be needed here. However, I heard from @jareware that more current version of Chromium segfaults on the image at the moment, so there might be even more work required to fix this issue than what it looks like.

Calibrate touchscreen

Thank you for the easy to use package!

I am using a 5" touchscreen, which requires calibration to be precise.
For this, I need to install apt-get install xinput-calibrator (which works) and then go into the GUI to Menu-->Preferences-->Calibrate Touchscreen.

How do I get to the GUI where I could do this? I've noticed that startx is installed, but I assume focuses on Chrome.

Do you know how to get to this menu / get to the GUI in this image?

Green screen on chromium-browser with video at fullscreen

Is not really a direct chilipie-kiosk issue but i'm not sure how can I solve this in a remote device.

Not sure if some one ever heard about it , there is a "common" issue in chrome if you play video at full screen it shows a green screen, in my case the script also beak as this is a remote device I don't have many more info just that it happens every single time it plays a video.

Its safe to update chromium or reinstall it at all? and how? :P

or any other solution for this issue.

*I have about 10 devices an only 1 has this issue.

Any thoughts of making a container version or script to create image?

I was looking to potentially use this in conjunction with some other tools. but each assume that they are the boot image. I figure there are two ways to have them work together.

  • Have Chilipie in a Docker container and run alongside the or
  • have some type of script (or ansible.com type playlist) that creates the environment. This could then be used to create a full SDcard image or Docker type container

I haven't finalized any decision but an example of what I would like to work with is something like Belena ( https://www.balena.io/what-is-balena/ ) or similar ( with a preference for open-source)

Are there any plans in this direction?
Feature Request

Pre-setting URL during flash

We should support writing a file to the /boot partition right after flashing, which would contain the default URL the kiosk navigates to after boot.

This would allow fully unattended deployments, meaning you don't need to plug in a keyboard or SSH over, as the kiosk would navigate to the desired URL on its own, after plugging in the power.

Bonus points for being able to provide e.g. HTTP basic auth in that file.

Rotate

We're using Hanspree HT225 touch screens with this. We've added the Rotate 90 degree command as we wish to use in Portrait but the touch is all off when in Portrait mode. Am I missing something?

Watchdog

For this Raspian / kernel version to activate watchdog
Simply edit /etc/systemd/system.conf
to include
"RuntimeWatchdogSec=14"?

prompt on startup

Hello,

I recently did a system upgrade on my pis and unfortunately on my chilipie-kiosk.
Everything work flawlessly, but now, I have to type in my login and password on every reboot in order to start x server, then the boot process starts as usual.

Is there anything to edit in order to start x automatically ?

Does chilipie-kiosk support GPIO.

I have a raspbian running chrome in full screen calendar that i hooked a few buttons on to and the python to utlize GPIO to send characters to chromium to control the calendar. Switch views. move forward a month, move back a month. etc.. Can I move this to chilipie-kiosk and make it a little cleaner

Clarify crontab setup somehow

Several people have gone to crontab -e instead of sudo crontab -e to look for the display scripts.

Make it harder to make this mistake, somehow.

Controlled reboot

Currently, the recommended way to shut down the Pi is actually to just unplug it.

For some reason, when you go $ sudo reboot via SSH/terminal access, it'll briefly bring up Chromium again after the shutdown's started, and it will subsequently lose its open tabs setup.

This shouldn't happen.

x86 support

Hi,
first of all great work. I've been using to run digital signage with great success.
Have you tested in a x86 chipset, like an intel i7, for instance, without changes?

Thanks
Bruno

Guideline for Contribution

I'm currently developing a digital signage solution and in much love with this cool project. I would love to contribute to this project and bring a few more features. I didn't use the raspbian image provide though, I only used configurations provided by this project.

I want to stick to guidelines and rules if there is any, and make pull requests. And any documentation on packages and settings used in "raspbian image" would be appreciated.

Thank you so much.

display-on.sh wakes monitor up to wrong tty

I have the following cronjobs:

At 18:30 display-off.sh
At 03:00 sudo reboot (I want a nightly reboot to make sure everything keeps running smoothly)
At 03:10 display-off.sh (because we just rebooted)
At 08:30 display-on.sh

Every morning I see that the kiosks are booted into the raspi-config tty instead of Xorg (The graphical environment). I have done some debugging and believe this is happening:

If I open a console on the raspi-config tty and run the following:
./display-off.sh; sleep 60; ./display-on.sh

the display turns off and back on after 60 seconds, but on the graphical tty instead of the console tty from which I launched this set of commands.

Then if I go back to that console tty and run:
sleep 10; ./display-off.sh; sleep 60; ./display-on.sh
and quickly switch to the graphical tty before sleep 10 finishes the following happens:

The display turns off and back on after 60 seconds, but this time on the graphical tty instead of the console tty.

This leads me to believe that display-on is not functioning correctly and always switches to the opposite tty that was active when display-on is being executed. So when rebooting at 03:00 AM the graphical tty becomes active. Then at 03:10 the display is turned of, but the graphical tty stays active (without an active monitor of course). Then at 08:30 display-on is being executed but it switches to the console tty, because the graphical tty was active at that time.

I think this might be related to: #30 (comment)

My current workaround is the following:

Turn of display at 18:30
Reboot at 08:30, which also turns on the display and opens the graphical tty by default.

Alternatives to wifi conection (BerryLan)

This is an alternative way to get rasperry connected to WLAN more easily and keyboard less

BerryLan

This is the installation instructions for a raspian
sudo apt-get install dirmngr
echo "deb http://repository.nymea.io stretch main" | sudo tee /etc/apt/sources.list.d/nymea.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key A1A19ED6
sudo apt-get update
sudo apt-get install nymea-networkmanager
sudo systemctl disable dhcpcd
reboot

But could be nice if this can me included and informed on the first-boot document (offline version)

chromium needs rng-tools

Without rng-tools Chromium refuses to start due to a starved random pool entropy (on "headless" pi zero, at least).

monitor does not wake up

Hello,

Even if the log says everything works fine

Sep 12 07:00:01 chouffe CRON[2627]: (pi) CMD (~/display-on.sh)
Sep 12 07:00:01 chouffe CRON[2631]: (pi) CMD (xdotool key ctrl+R)
Sep 12 07:05:01 chouffe CRON[2682]: (pi) CMD (xdotool key ctrl+Tab)
Sep 12 07:10:01 chouffe CRON[2696]: (pi) CMD (xdotool key ctrl+Tab)
Sep 12 07:15:01 chouffe CRON[2713]: (pi) CMD (xdotool key ctrl+Tab)
Sep 12 07:17:01 chouffe CRON[2724]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Sep 12 07:20:01 chouffe CRON[2744]: (pi) CMD (xdotool key ctrl+Tab)
Sep 12 07:25:01 chouffe CRON[2761]: (pi) CMD (xdotool key ctrl+Tab)

My screen (HDMI Monitor does not wake up).

I tried to call display-on.sh manually, but it seems the script remains stuck on the sudo chvt 2 and the screen never went back.

Did I miss something, how can I wake my screen automatically ?

Is it possible to make boot time faster?

I have not made any comparisons, but my impression is that boot is fairly slow, around 2½-3 minutes before browser is displaying the page.

It is not that big of a deal, just wondering if there where some low hanging fruits somewhere...

Tabs

Is there a way to create a subtle TABS- button? To either toggle between tabs or simply choose one?
Or show only the TABS bar?

Wifi with username/password

Having a hard time finding docs on turning on wifi for more complex networks that require an ssid, username, and password. Is this feature supported at all?

Documentation on what packages were used

I'm somewhat new to the Linux world, and I absolutely love this build, but I need a faster device than a Pi for the website/video we're running in a loop. Can I somehow run this on a different platform than a Pi, and if not, is there any documentation of how exactly this build was created? I'd like to try to duplicate the majority of it on a fresh build of Ubuntu Server, but if I can avoid all of that redundant work, then even better. Thanks for an awesome project!

Rotate the screen and Touchscreen

I can rotate the screen 90 degress by doing display_rotate=1, but the touch does not do this. Every tutorial I have seen has more text files than what is in here by default. Does anyone know how to make the screen and touchscreen rotate 90 degrees?

RPi 3 with 7" touchscreen

How to change keyboard settings

Is there a way to change keyboard settings? It can be quite frustrating for those of us who don't have Finnish/Swedish keyboards

The chilipie-kiosk-v1.2.1.img.zip file appears to be corrupted

when I download the chilipie-kiosk-v1.2.1.img.zip file and try to unzip it is appears to be corrupted.


Extracting to "C:\Users\XXXXX\Documents\"
Use Path: yes   Overlay Files: no
Extracting chilipie-kiosk-v1.2.1.img
Error: Unable to extract "C:\Users\XXXXX\Documents\chilipie-kiosk-v1.2.1.img".

The size of the extracted file (8053063680) does not match the uncompressed size (3758096384) recorded in the Zip file.
Severe Error:  File size doesn't match uncompressed size.

Mouse Speed

Is there a way to adjust the mouse speed / sensitivity?

Refreshing via crontab does not work

My RPi is showing a website of local IP, and refreshes every 30 seconds via jquery. When the network goes down, the RPi brings up the "Page not found" page.

This means that the page cannot reload when the network comes up again, as it is stuck on the Page Not Found page.

I have tried reloading the page every minute using crontab (* * * * * xdotool key ctrl+R), however this doesn't seem to work. Any suggestions on how I can reload the page using crontab or a shell script?

Prevent closing or force-restart of chromium

There is a page(not mine) I am displaying with some buttons.
Each button is opening popup in fullscreen mode. There are no buttons to close it so.
I only can press Alt+F4 to close it. Is there some possibility to make X button of windows visible?
Because people sometimes press Alt+F4 too many times and closes main window which I want to prevent because after that I need to switch to console and start chromium process again or restart Pi.

Composite video output

Not Shure if I'm missing something or there is no support for composite video output.

Have anyone try it?

Changing TTY is slow

I tried to change TTY to terminal, but the system got stuck to "please wait" screen. How long should it take?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.