An AI-powered personal dashboard designed for embedded systems (like Raspberry Pi with a 3.5" LCD). It serves as a "Chief of Staff," summarizing your daily tasks from Gmail and Google Calendar using Google Gemini AI.
- Real-time Notifications: Uses Google Cloud Pub/Sub to trigger instant updates and AI summaries when new emails arrive.
- AI Task Summarization: Employs Google Gemini (
gemini-flash-lite-latest) to analyze emails and calendar events into 3 actionable focus items. - Smart Email Pop-ups: Automatically summarizes the content of new incoming emails using AI.
- Touch Interface: Interactive UI built with Pygame and
evdevfor hardware touchscreen support. - Multi-state UI:
- Standby (Clock): High-contrast clock and next upcoming event.
- Dashboard: Overview of unread emails and calendar schedule.
- AI Summary: Detailed daily brief generated by Gemini.
- Email Popup: Instant AI summary of the latest notification.
- Theme Support: Includes both Dark Mode (
dashboard.py) and Light Mode (dashboard-white.py). - Thai Language Support: Pre-configured with "Prompt" fonts for correct Thai character rendering.
- Display: 480x320 LCD (configured for
/dev/fb1). - Input: Touchscreen device (configured for
/dev/input/event0). - Platform: Linux-based system (Raspberry Pi recommended).
You need a Google Cloud Project with the following enabled:
- Gmail API (ReadOnly)
- Google Calendar API (ReadOnly)
- Cloud Pub/Sub API
- Gemini API (via Google AI Studio)
Place the following files in the proj/ directory:
credentials.json: OAuth 2.0 Client IDs (Desktop app type).pubsub-key.json: Service Account key for Pub/Sub subscriber access.token.json: Generated after the first successful OAuth flow..env: Contains yourGEMINI_API_KEY.
# Install system dependencies (for Pygame and evdev)
sudo apt-get install python3-dev libsdl2-dev libevdev-dev
# Install Python dependencies
pip install -r requirements.txtCreate a .env file in the proj/ directory:
GEMINI_API_KEY=your_gemini_api_key_hereRun the dashboard using the desired theme:
Dark Mode:
python3 dashboard.pyWhite Mode:
python3 dashboard-white.pydashboard.py: Main application logic (Dark Theme).dashboard-white.py: Alternative Light Theme version.fonts/: Thai-compatible TrueType fonts (Prompt Regular/Medium).credentials.json: Google API credentials (not included in repo).pubsub-key.json: Google Cloud Service Account key (not included in repo).token.json: Stored user authentication token.
You can adjust hardware mapping in the script headers:
FB_DEVICE: Framebuffer path.TOUCH_DEVICE: Input event path.CAL_X/Y_MIN/MAX: Touchscreen calibration values.BTN_BG_COLOR: Custom UI accent colors.