2025-03-28 15:25:29 -04:00
2025-03-28 11:40:49 -04:00
2025-03-28 11:31:30 -04:00
2025-03-28 15:25:29 -04:00
2025-03-28 11:14:48 -04:00
2025-03-28 11:31:30 -04:00
2025-03-28 11:32:22 -04:00

LCD Display Configurator

A Windows-based configuration utility and background service for customizing text output on ESP32-connected displays such as a 1602 LCD or a 4.6" TFT screen.

Banner Image Placeholder


📦 Features

  • 🔌 Communicates with ESP32 over USB serial
  • 📊 Displays real-time system metrics (CPU, RAM, etc.)
  • ⚙️ Full GUI configurator with support for:
    • 1602 LCD
    • 4.6" TFT LCD (placeholder for future)
  • 📁 Config stored in AppData (shared between GUI and background service)
  • 🔄 Windows service auto-starts and auto-recovers on crash
  • 💡 Modular and future-proof design for multiple display types

🖥️ Configuration UI

The WinForms-based configuration tool allows you to:

  • Select system metrics using a dropdown populated from LibreHardwareMonitor
  • Customize line prefixes (e.g., CPU: ) and suffixes (e.g., %, °C)
  • Configure different screen types via tabbed interface

🔧 1602 LCD Tab

  • Line-by-line customization
  • Metric + prefix/suffix control
  • Saves to shared config file in AppData

1602 LCD Tab Screenshot Placeholder


📺 4.6" TFT LCD Tab

  • Coming soon! Layout planned for graphical display customization

About Tab

Displays app info, version, and author attribution.


🛠️ Windows Background Service

  • Continuously reads system metrics
  • Sends output to ESP32-connected LCD
  • Detects connected COM port automatically
  • Reloads config when config.json changes
  • Auto-recovers if the service crashes

Service Config Example:

{
  "ScreenType": "1602",
  "Line1Selection": "Cpu: CPU Total (Load)",
  "Line1CustomText": "CPU: ",
  "Line1PostText": "%",
  "Line2Selection": "Memory: Used Memory (Data)",
  "Line2CustomText": "RAM: ",
  "Line2PostText": " GB"
}

📂 Config File Location

The config file is shared between the UI and service and stored here:

%AppData%\PCPal\config.json

📦 Installation

  1. Clone the repo
  2. Build both projects:
    • DisplayConfigurator (WinForms app)
    • ESP32BackgroundService (Worker service)
  3. Publish the service and install via sc.exe or PowerShell
  4. Run the configurator to apply your settings

🧪 Development


🧰 Tools & Commands

Install the Service:

sc create ESP32BackgroundService binPath= "C:\Path\To\ESP32BackgroundService.exe"
sc failure ESP32BackgroundService reset= 0 actions= restart/5000

Uninstall the Service:

sc stop ESP32BackgroundService
sc delete ESP32BackgroundService

📄 License

MIT License
© 2025 Christopher Koch aka, NinjaPug

Description
ThermalTake Tower X00 LCD Alternative
Readme MIT 621 KiB
Languages
C# 94.6%
C++ 4.2%
PowerShell 1.2%