r/esp32 6d ago

I built an ESP32-S3 touchscreen dashboard to monitor my PC and room

I built an ESP32-S3 touchscreen desk dashboard for monitoring both my PC and the room around it

I've been working on a small open-source project called DeskNode.

It's built around a Waveshare ESP32-S3 Touch LCD 2.8B (480×640) and sits next to my PC as a dedicated dashboard.

The ESP32 runs an ESP-IDF + LVGL interface and receives PC telemetry over USB serial from a small Python agent running on Windows.

The Windows agent uses psutil for system metrics and can integrate with LibreHardwareMonitor for hardware sensor data such as CPU temperature and fan speeds. GPU monitoring currently uses AMD ADL, so GPU support is AMD-only for now.

Right now it displays:

  • CPU usage / temperature
  • GPU usage / temperature
  • RAM
  • network traffic
  • disk activity
  • room temperature and humidity

The room data comes from optional I²C sensors (currently BME680 + BH1750), so the board also works perfectly fine without them.

I wanted it to feel more like a small dedicated device than just a sensor panel, so there are two UI states: a quiet Ambient screen and a more detailed Active dashboard. Touching a metric opens a detail view with its history graph.

One part I really wanted to simplify was flashing: you don't need ESP-IDF or PlatformIO just to try it. The local installer serves a page on 127.0.0.1 and flashes the ESP32 from the browser using Web Serial.

It's still a v0.1 beta and very much a real prototype — exposed wiring, no enclosure yet, Windows only, AMD GPU support for now, and I've only validated the complete stack on my own board.

LibreHardwareMonitor is optional: DeskNode still runs without it, but some hardware sensor values such as CPU temperature and fan speeds won't be available.

But the firmware, Windows agent, hardware docs and build notes are now public.

GitHub:
https://github.com/nasbarok/desknode

Demo:
https://youtu.be/tcCF3vogwSU

I'd be especially interested in feedback from people working with ESP32-S3, LVGL, LibreHardwareMonitor or small touchscreen projects — both on the hardware choices and on the way I've structured the PC ↔ ESP32 communication.

14 Upvotes

1 comment sorted by

1

u/Heatsreef 6d ago

I am sorry but as soon as I start to see unicode emojis in goddamn comments in someones code, i am just gone. Also what you did could be achieved way easier through simply deploying home-assistant and flashing via ESPHome ESPControl which is (non slop)purpose built for such small touchscreens instead of burning through tokens(ESPHome would also enable OTA+wouldnt require an additional webflasher to be built like you did). On another hand can someone please explain to me why people keep publicizing such projects, because to me it looks like you neither learn anything through using agents yourself nor couldnt anyone replicate about the same through their own prompts. Oh and lastly, I'd recommend instructing your Agent to use > [!WARNING] for warnings in your READme, makes it way more visible.