This document explains the organization and purpose of each file in the Raspberry Pi Timechain Calendar Kiosk project.
raspberry-pi-timechain-kiosk/
│
├── README.md # Main project documentation
├── LICENSE # MIT License
├── CONTRIBUTING.md # Contribution guidelines
├── .gitignore # Git ignore rules
│
├── configs/ # Configuration files
│ ├── config.txt.snippet # Boot config for display driver
│ ├── 10-touchscreen.conf # X11 touchscreen input config
│ └── autostart # LXDE kiosk mode autostart
│
├── scripts/ # Automation scripts
│ └── install.sh # Automated installation script
│
└── docs/ # Additional documentation
├── FAQ.md # Frequently asked questions
├── HARDWARE.md # Hardware shopping list
├── QUICKSTART.md # Quick start guide
├── GITHUB_SETUP.md # GitHub upload instructions
└── images/ # Project images
└── kiosk-preview.jpg # Photo of completed kiosk
Purpose: Main project documentation
Contains:
- Project overview and features
- Complete installation instructions
- Hardware requirements
- Troubleshooting guide
- Customization options
Used by: Everyone - this is the first file people read
Purpose: Legal license (MIT)
Contains: Permission to use, modify, and distribute the project
Used by: Anyone wanting to use or fork the project
Purpose: Guidelines for contributing
Contains:
- How to report issues
- How to submit pull requests
- Code style guidelines
- Testing requirements
Used by: Contributors wanting to improve the project
Purpose: Tells Git which files to ignore
Contains: Patterns for OS files, backups, logs, etc.
Used by: Git automatically when committing
Configuration files that get copied to the Raspberry Pi during installation.
Install location: /boot/firmware/config.txt
Purpose: Configures the display driver at boot
Contains:
- SPI enable command
- piscreen overlay configuration
- Optional rotation setting
How it's used: Manually added to existing config.txt file
Install location: /etc/X11/xorg.conf.d/10-touchscreen.conf
Purpose: Tells X11 to use the touchscreen
Contains:
- Input device matching rules
- evdev driver specification
How it's used: Copied directly to system
Install location: ~/.config/lxsession/LXDE/autostart
Purpose: Launches Chromium kiosk on desktop start
Contains:
- Desktop component startup commands
- Screen blanking prevention
- Chromium kiosk mode command
How it's used: Copied to user's LXDE config
Automation scripts to simplify installation.
Purpose: Automated installer
What it does:
- Updates system packages
- Installs required software
- Configures display driver
- Sets up touchscreen
- Enables auto-login
- Configures kiosk mode
How to use:
chmod +x install.sh
./install.shNote: Requires internet connection and sudo access
Additional documentation files.
Purpose: Answers common questions
Organized by:
- General questions
- Hardware questions
- Software questions
- Setup questions
- Usage questions
- Customization questions
Used by: Users looking for quick answers
Purpose: Shopping list and component guide
Contains:
- Recommended components with links
- Price ranges
- Specifications to verify
- Compatible alternative options
- What to avoid
Used by: People planning to build the kiosk
Purpose: Condensed installation guide
Contains:
- Minimal steps to get running fast
- Quick fixes for common issues
- Checklist format
Used by: Experienced users who want speed
Purpose: Instructions for uploading to GitHub
Contains:
- Step-by-step GitHub repo creation
- Git commands
- Best practices for maintenance
Used by: Project creators sharing their work
Purpose: Store project photos and screenshots
Should contain:
- kiosk-preview.jpg - Photo of working kiosk
- Optional: build process photos
- Optional: troubleshooting screenshots
Used by: README.md to display visual examples
Here's how the files are used during installation:
- User reads README.md
- User manually adds config.txt.snippet →
/boot/firmware/config.txt - User copies 10-touchscreen.conf →
/etc/X11/xorg.conf.d/ - User copies autostart →
~/.config/lxsession/LXDE/ - User reboots
- User reads README.md or QUICKSTART.md
- User downloads and runs install.sh
- Script automatically handles all file copying and configuration
- User reboots
Users typically modify these files:
File: configs/autostart
Line: Last line with --app=https://...
File: configs/config.txt.snippet
Line: Add ,rotate=90 to piscreen line
File: scripts/install.sh
Modify: URL variable, additional packages, etc.
- Update relevant config files in
configs/ - Update
install.shif needed - Document in
README.md - Add to
FAQ.mdif it answers a common question - Update
QUICKSTART.mdif it affects quick setup
- Fix the issue in config files or scripts
- Update troubleshooting in
README.md - Add to
FAQ.mdif it's commonly encountered - Commit with clear description
- Keep README concise - move detailed info to docs/
- Update FAQ when patterns emerge in issues
- Add screenshots to docs/images/
- Keep HARDWARE.md current with tested components
- Raspberry Pi OS Bookworm
- Chromium browser (installed via apt)
- unclutter (installed via apt)
- xserver-xorg-input-evdev (installed via apt)
- All files in this repository
- Internet connection (for downloading packages and viewing website)
✅ All config files
✅ Documentation
✅ Scripts
✅ Small images (<1MB)
❌ OS-specific files (.DS_Store)
❌ Backup files (*.backup)
❌ Large images (>1MB) - use Git LFS
❌ Personal configurations
❌ Logs and temporary files
See .gitignore for complete list.
Open an issue or discussion if:
- You think a file should be organized differently
- You need clarification on a file's purpose
- You want to propose adding new files/directories
This structure keeps the project organized and easy to navigate!