A plug-and-play Bitcoin Timechain Calendar display using a Raspberry Pi 4 and 3.5" touchscreen. Perfect for displaying the Timechain Calendar as a dedicated kiosk device.
- ✅ Full-screen Timechain Calendar display
- ✅ Touch-enabled 3.5" LCD interface
- ✅ Auto-start on boot (no keyboard/mouse needed after setup)
- ✅ Clean kiosk mode (no browser UI elements)
- ✅ Low power consumption
- ✅ Compact form factor
- Raspberry Pi 4 (2GB RAM minimum, 4GB recommended)
- 3.5" TFT LCD Touchscreen with XPT2046 touch controller and ILI9486 driver
- Compatible models: Waveshare 3.5" RPi LCD, similar SPI displays
- MicroSD Card (16GB minimum, Class 10 recommended)
- Power Supply (Official Raspberry Pi 5V/3A USB-C power supply)
- Case for Raspberry Pi + display
- USB keyboard/mouse (for initial setup only)
- Raspberry Pi OS Bookworm (32-bit) - Legacy or standard version
- Internet connection for initial setup
-
Download Raspberry Pi Imager
-
Insert your microSD card
-
In Raspberry Pi Imager:
- Choose Raspberry Pi OS (32-bit) (Bookworm)
- Select your microSD card
- Click the gear icon for advanced options:
- Enable SSH
- Set username:
pi(or your preference) - Set password
- Configure WiFi (optional)
- Click Write
-
Insert the microSD card into your Raspberry Pi and power it on
SSH into your Raspberry Pi or connect a keyboard/monitor:
Update the system:
sudo apt update && sudo apt upgrade -yEdit the boot configuration:
sudo nano /boot/firmware/config.txtAdd these lines to the [all] section at the bottom:
[all]
dtparam=spi=on
dtoverlay=piscreen,drm,speed=18000000Save and exit (Ctrl+X, Y, Enter).
Run the Raspberry Pi configuration tool:
sudo raspi-configNavigate to:
- System Options (S5)
- Boot / Auto Login (S5)
- Select Desktop Autologin (B4)
- Finish and reboot when prompted
Create the touchscreen input configuration:
sudo nano /etc/X11/xorg.conf.d/10-touchscreen.confAdd this content:
Section "InputClass"
Identifier "ADS7846 Touchscreen"
MatchProduct "ADS7846"
MatchDevicePath "/dev/input/event0"
Driver "evdev"
EndSection
Save and exit.
Install Chromium and screen blanking prevention:
sudo apt install chromium-browser unclutter -yCreate the autostart directory:
mkdir -p ~/.config/lxsession/LXDE/Create the autostart file:
nano ~/.config/lxsession/LXDE/autostartAdd this content:
@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE
@xscreensaver -no-splash
@xset s off
@xset -dpms
@xset s noblank
@unclutter -idle 0
@chromium-browser --kiosk --noerrdialogs --disable-infobars --no-first-run --disable-pinch --overscroll-history-navigation=0 --app=https://timechaincalendar.com
Save and exit.
sudo rebootAfter rebooting, your Raspberry Pi should automatically display the Timechain Calendar in full-screen kiosk mode!
To display a different website, edit the autostart file:
nano ~/.config/lxsession/LXDE/autostartChange the URL in the last line:
@chromium-browser --kiosk ... --app=https://your-website-here.com
If your display is rotated incorrectly, edit /boot/firmware/config.txt:
sudo nano /boot/firmware/config.txtModify the piscreen line to include rotation:
dtoverlay=piscreen,drm,speed=18000000,rotate=90Options:
rotate=0- No rotation (default)rotate=90- 90 degrees clockwiserotate=180- 180 degreesrotate=270- 270 degrees clockwise
If touch coordinates are inaccurate, you may need to calibrate. The calibration file should exist at:
/etc/X11/xorg.conf.d/99-calibration.confInstall the calibration tool:
sudo apt install xinput-calibrator -yRun calibration from the desktop:
DISPLAY=:0 xinput_calibratorFollow the on-screen prompts to tap calibration points.
Issue: Display shows console but no desktop appears
Solutions:
- Verify
/boot/firmware/config.txthas the correct piscreen overlay - Check that you're using Raspberry Pi OS Bookworm (not Trixie/Debian 13)
- Ensure you selected "Desktop Autologin" in raspi-config
- Check that lightdm is running:
systemctl status lightdm
Issue: "Failed to start session" error on display
Solution:
Edit /etc/lightdm/lightdm.conf:
sudo nano /etc/lightdm/lightdm.confIn the [Seat:*] section, ensure:
user-session=LXDENOT LXDE-pi-labwc or LXDE-pi-x.
Issue: Touch input doesn't work
Solutions:
- Verify the touchscreen config exists:
cat /etc/X11/xorg.conf.d/10-touchscreen.conf - Check if touch events are detected:
sudo evtest /dev/input/event0(tap the screen) - Install evdev driver if missing:
sudo apt install xserver-xorg-input-evdev -y - Reboot after making changes
Issue: Touch coordinates are inverted or wrong
Solution:
The calibration values in /etc/X11/xorg.conf.d/99-calibration.conf may need adjustment. Use xinput_calibrator to recalibrate.
Issue: Desktop loads but Chromium doesn't launch
Solutions:
- Verify autostart file exists:
cat ~/.config/lxsession/LXDE/autostart - Check the file path is correct (capital LXDE)
- Ensure chromium-browser is installed:
which chromium-browser - Check for errors: Look in
~/.xsession-errors
Issue: LCD-show scripts don't work with newer OS versions
Solution:
This project uses the native piscreen kernel driver, NOT the older LCD-show scripts. The LCD-show repository is outdated and incompatible with Raspberry Pi OS Bookworm. Stick with the instructions in this README.
Issue: Repositories show "invalid for another X days" errors
Solution:
sudo date -s "2025-11-19 12:00:00"
sudo systemctl enable systemd-timesyncd
sudo systemctl start systemd-timesyncdIssue: Apple Magic Keyboard with Touch ID won't pair
Solution: Magic Keyboards with Touch ID use proprietary Bluetooth protocols that don't work reliably with Linux. Use a standard Bluetooth keyboard without Touch ID, or a USB keyboard.
raspberry-pi-timechain-kiosk/
├── README.md # This file
├── configs/
│ ├── config.txt.snippet # Boot configuration snippet
│ ├── 10-touchscreen.conf # X11 touchscreen configuration
│ └── autostart # LXDE autostart configuration
├── scripts/
│ └── install.sh # Automated installation script
└── docs/
└── images/
└── kiosk-preview.jpg # Project preview image
Contributions are welcome! Please feel free to submit a Pull Request.
- Touch calibration may vary between different 3.5" display manufacturers
- Some Apple Bluetooth keyboards (with Touch ID) are not compatible
- Display brightness cannot be adjusted via software on most SPI displays
- Display refresh rate is limited by SPI bus speed
- Timechain Calendar - The displayed Bitcoin block time calendar
- Raspberry Pi Foundation - For the Raspberry Pi platform
- Linux kernel developers - For the piscreen/fbtft display drivers
This project is licensed under the MIT License - see the LICENSE file for details.
For issues or questions:
- Check the Troubleshooting section above
- Open an issue on this GitHub repository
- Consult the Raspberry Pi Forums
Enjoy your Bitcoin Timechain Calendar Kiosk! 🚀₿
