https://github.com/giulio177/rpi_car_infotainment
https://github.com/giulio177/rpi_car_infotainment
car-dashboard dashboard raspberry-pi raspberry-pi-4
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/giulio177/rpi_car_infotainment
- Owner: giulio177
- License: mit
- Created: 2025-03-27T13:31:19.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-01-21T20:59:20.000Z (5 months ago)
- Last Synced: 2026-01-22T04:36:39.206Z (5 months ago)
- Topics: car-dashboard, dashboard, raspberry-pi, raspberry-pi-4
- Language: Python
- Homepage:
- Size: 82 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# RPi Car Infotainment (Lite OS · Pi 4)
A lightweight, touch-friendly car infotainment system for Raspberry Pi.
This branch targets **Raspberry Pi 4** running **Raspberry Pi OS Lite (Bookworm)**, using:
- **Direct framebuffer** rendering (no X/Wayland) via Qt `linuxfb` + `evdev`
- Bluetooth auto-pairing (no code) with **A2DP** audio input from phone
- **PulseAudio (user instance)** with audio out on the **3.5 mm jack**
- **Fixed display mode 1024×600** on both HDMI ports
> If you’re on Raspberry Pi 5 or a Desktop (with X/Wayland), refer to the Pi 5 branch/instructions.
> This document is optimized for **Pi 4 + Lite**.
## Project Structure
```bash
rpi_car_infotainment/
├── assets/ # Icons and other static assets
├── backend/ # Backend functionality
├── deployment/ # Service files, installation scripts, and deployment configs
├── gui/ # GUI components and screens
├── music/ # Music library and related files
├─ scripts/
│ ├─ start_infotainment.sh # Launches the app (Qt linuxfb + evdev, activates venv)
│ ├─ install_rpi_car_infotainment.sh # Install all the necessary settings to work
│ └─ (other helpers)
├── tests/ # Test files
├── tools/ # RF communication and other tools
├── config.json # Configuration file
├── main.py # Main application entry point
└── requirements.txt # Python dependencies
```
## Hardware & OS
- **Raspberry Pi 4** (2GB/4GB/8GB)
- **Raspberry Pi OS Lite (Bookworm)** 64-bit recommended
- 7–10″ HDMI “car” display (physical **1024×600** panel, many controllers advertise 1080p)
- USB/serial touchscreen controller (evdev)
- Audio output via **3.5 mm jack**
# Installation
## 1. Install git
After installing the **Raspberry Pi OS Lite** on the raspberry **with pi as a user**, install git and remove ipv6:
```bash
sudo apt update
sudo tee -a /etc/sysctl.conf >/dev/null <<'EOF'
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
EOF
sudo sysctl -p
sudo apt install -y git
```
## 2. Clone the repo
Clone the repo in your user folder (pi):
```bash
cd /home/pi
git clone https://github.com/giulio177/rpi_car_infotainment.git
cd rpi_car_infotainment
```
## 3. Sart install script
Enable and start the install script:
```bash
chmod +x scripts/install_rpi_car_infotainment.sh
cd /home/pi/rpi_car_infotainment
sudo ./scripts/install_rpi_car_infotainment.sh
```
## 4. Reboot
Reboot the system and you're done:
```bash
sudo reboot
```
# Installation with GUI
## 1. Install git
After installing the **Raspberry Pi OS Lite** on the raspberry **with pi as a user**, install git and remove ipv6:
```bash
sudo apt update
sudo tee -a /etc/sysctl.conf >/dev/null <<'EOF'
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
EOF
sudo sysctl -p
sudo apt install -y git
```
## 2. Clone the repo
Clone the repo in your user folder (pi):
```bash
cd /home/pi
git clone https://github.com/giulio177/rpi_car_infotainment.git
```
## 3. Sart install script
Enable and start the install script:
```bash
cd rpi_car_infotainment/scripts
chmod +x bootstrap.sh
sudo ./bootstrap.sh
```
## 4. Reboot
Reboot the system and you're done:
```bash
sudo reboot
```
#
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.