this post was submitted on 05 Jul 2025
5 points (85.7% liked)

DIY Electronics and Hardware

123 readers
1 users here now

founded 2 months ago
MODERATORS
 
top 1 comments
sorted by: hot top controversial new old
[–] yucandu@lemmy.world 2 points 1 week ago

I've seen tons of little desktop USB display gadgets that show all your system stats like temperatures and fan speeds.

But I've seen very few that show your in-game framerate. Turns out that's because it's more challenging - requires directly polling Rivatuner shared RAM. But the advantage is that we can poll it as fast as we want! And then after transmitting it over USB-to-serial at 115200 baud, we can display up-to-date in-game framerates with a graph almost as fast as RTSS's built in OSD!

C# is used for the desktop app for maximum performance - it polls temps and fan speeds at 0.5hz and FPS at 10hz, this way there is 0 measurable CPU usage from the app or any of the apps it is polling (LibreHardwareMonitor for temps/fan speeds, Rivatuner for FPS).

PlatformIO is used for the ESP32C3 device for maximum compiling speed - I got tired of waiting 10 minutes for Arduino IDE to compile.