Skip to content

About

Free hardware monitor dashboard for 1920x480 mini displays (Windows + Linux). A simple AIDA64 SensorPanel alternative.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Memory Monitor

A free, simple system monitor for 1920x480 mini displays, for Windows and Linux.

A lightweight alternative to AIDA64 SensorPanel: plug in one of those 8.8" bar displays, run Memory Monitor, and it moves itself onto the display and shows live CPU, GPU, RAM, VRAM, disk, network and FPS gauges.

2026-10-29.19-43-05.mp4

.NET 8 Platform Platform License


📸 Screenshot

Memory Monitor Screenshot Memory Monitor running on a 1920x480 mini display with real-time CPU, GPU, RAM, VRAM, Disk, and Network monitoring Memory Monitor Screenshot Graph Display mode Memory Monitor on Linux with two GPUs Linux version on a PC with two GPUs: each card gets its own half-size GPU and VRAM dial, with the game FPS in the middle


💬 About This Project

Initially I put one of these on my christmas list thinking I would use it for an information display. Little did i know that this was just a display. Ya I know, dummy lol. Anyway, I saw that there was a program that would do what I wanted called AIDA64. After looking at it and seeing how involved it was this was not for me. I just wanted a simple display to show my usage. Plus I didn't want to pay for it :P. So this was my vacation project! Feel free to use and modify it to suite your needs! I may add some different displays with different looks if I get enough interest. Let me know! And hope this is useful for you! I've tried to bug check it best I could, but if there is one you find, please let me know and i'll try and get it fixed.

Rick DFS


Overview

Memory Monitor is a real-time monitoring tool for Windows and Linux designed for secondary/mini displays (1920x480). Built with .NET 8 (Windows Forms on Windows, Avalonia on Linux), it features beautiful circular gauge visualizations with temperature monitoring for both CPU and GPU. Program will automatically detect a 1920x480 display and move itself over to it. No moving the display each time.

Key Features

  • Automatic Placement - Moves itself to your 1920x480 (or other very wide) display
  • Two Display Modes - Switch between Circular Gauges and Bar Graph views
  • Smooth Mode Transitions - Fade animation when switching display modes
  • Real-Time CPU Monitoring - Track CPU usage with temperature display
  • GPU Monitoring - Native NVIDIA (NVML) and AMD (ADL) support with temperature; other GPUs through Windows' GPU performance counters
  • System Memory Tracking - Monitor RAM usage with detailed statistics
  • GPU VRAM Monitoring - Video memory usage and true total capacity (including cards over 4 GB)
  • Disk I/O Monitoring - Read/write throughput with auto-scaling
  • Network Monitoring - Upload/download speed with auto-scaling
  • Temperature Display - CPU and GPU temperatures shown inside gauges
  • FPS Monitoring - Real-time game frame rate from HWiNFO/RTSS
  • Date & Time Display - Current date and time on mini monitor
  • Touch Gesture Support - Full touch input for mini monitors with touchscreen
  • Remembers Your Choices - Display mode, FPS mode and selected GPU/disk/network are kept between sessions
  • Mini Monitor Optimized - Designed for 1920x480 secondary displays

🐧 Linux Version

A Linux version lives in MemoryMonitor.Linux/. It's a separate .NET 8 project using the Avalonia UI framework, so it doesn't affect the Windows build or installer.

It has the same circular gauge and bar graph displays, automatic placement on the 1920x480 display, a system tray icon, device selection, and game FPS through MangoHud in place of HWiNFO/RTSS. On PCs with two GPUs it shows both cards stacked in the GPU and VRAM columns (coming to Windows in a later release). It installs per user from a release tarball with an install script; touch gestures aren't ported yet.

See the Linux README for requirements, installing, building, and MangoHud setup.


🎨 Display Modes

Memory Monitor offers two beautiful display modes:

Circular Gauges Mode (Default)

  • Classic needle gauge visualization
  • 6 circular gauges in a horizontal row
  • FPS gauge between GPU and VRAM gauges
  • Date/time display in corners
  • Animated needle movements with glow effects

Bar Graph Mode

  • Modern animated bar graph panels
  • 5 panels: CPU, GPU, VRAM, Drive, Network
  • Rolling 12-point history animation
  • Gradient-filled bars with glow effects
  • Futuristic corner accents

Switching Display Modes

Right-click the system tray icon → Display Mode:

  • Circular Gauges - Classic needle gauge display
  • Bar Graph - Modern animated bar panels

Smooth fade transition (300ms) provides a polished experience when switching. Your choice is remembered the next time Memory Monitor starts.


Display Layout

Circular Gauges Mode

The application displays 6 gauges in a horizontal row, optimized for 1920x480 displays:

Gauge Color Information
RAM Blue Memory usage (GB used / total)
CPU Red CPU usage (%) + Temperature
GPU Orange GPU usage (%) + Temperature
FPS Color-coded Frames per second (gaming)
VRAM Purple Video memory (GB used / total)
DISK Green Disk I/O throughput (MB/s)
NET Yellow Network throughput (Mbps)

Additional Display Elements:

  • Date in the top-left corner
  • Time in the top-right corner (12-hour format)

Bar Graph Mode

5 panels displayed horizontally:

Panel Color Information
CPU Cyan CPU usage (%) + Temperature
GPU Green GPU usage (%) + Temperature + FPS
VRAM Purple Video memory usage
DRIVE Orange Disk I/O activity
NETWORK Cyan Upload/Download speeds

FPS Monitoring

Memory Monitor displays your game's real-time frames per second, read from HWiNFO.

FPS Gauge Features

  • Color-Coded Quality Indicator:
    • 🟢 Green (60+ FPS) - Excellent, butter-smooth gaming
    • 🟡 Yellow-Green (45-59 FPS) - Good, very playable
    • 🟠 Orange (30-44 FPS) - Acceptable, playable with some stutter
    • 🔴 Red (<30 FPS) - Poor, significant performance issues
  • Auto-scaling font for 1-4 digit FPS values
  • Circular Gauges: Dedicated FPS gauge between GPU and VRAM
  • Bar Graph: FPS shown in GPU panel

When FPS Appears

The FPS display appears automatically while a game is reporting a frame rate (through RTSS or a game overlay feeding HWiNFO), and hides again when the game closes. It works for fullscreen, borderless and windowed games.

FPS Display Options

Right-click tray icon → FPS Display submenu (available in both display modes):

  • Auto-detect (default) - Show FPS whenever a game reports it
  • Always Show - Show FPS whenever HWiNFO has a reading
  • Always Hide - Never show FPS

Your choice is remembered when switching display modes and after restarting.

Setup Requirements

  1. Download and install HWiNFO
  2. Download and install RTSS (RivaTuner Statistics Server)
  3. Launch HWiNFO → Settings → Enable "Shared Memory Support"
  4. Launch your game with RTSS overlay enabled
  5. The FPS gauge appears automatically while the game is running

Note: FPS monitoring requires HWiNFO with "Shared Memory Support" enabled and RTSS or a game overlay that reports FPS to HWiNFO.


Touch Gesture Support

For mini monitors with touchscreen capability, Memory Monitor supports the following gestures:

Swipe Gestures

  • Swipe Left/Right - Switch between monitors
  • Swipe Down - Minimize to system tray

Tap Gestures

  • Tap on GPU/Disk/Network Gauge - Cycle through available devices
    • Each tap advances to the next device (wraps around)
    • Toast notification shows newly selected device
    • Mouse clicks show the full popup menu instead, for precise selection
  • Long Press - Show context menu at touch location
  • Two-Finger Tap - Toggle "Always on Top" mode

Requirements for Touch

  • Touchscreen-enabled mini monitor with HID-compliant touch hardware
  • USB data cable connection (not power-only)
  • Windows-recognized touch drivers

Temperature Monitoring

GPU Temperature

  • NVIDIA GPUs - Native support via NVML (nvml.dll)
  • AMD GPUs - Native support via ADL (atiadlxx.dll)
  • Displayed inside the GPU usage gauge

CPU Temperature

The application uses multiple methods to obtain CPU temperature:

  1. LibreHardwareMonitor (Primary) - Works on most systems
  2. HWiNFO Shared Memory (Fallback) - Required for some Intel 12th/13th/14th gen CPUs

HWiNFO Setup (For CPU Temperature)

If CPU temperature shows 0°C or doesn't appear:

  1. Download HWiNFO from https://www.hwinfo.com/
  2. Install and run HWiNFO (Sensors-only mode is sufficient)
  3. Enable Shared Memory Support:
    • Click the Settings button (gear icon)
    • Check "Shared Memory Support"
    • Click OK
  4. Keep HWiNFO running in the background

Why is HWiNFO needed?
Some modern Intel CPUs require a kernel driver to read temperature sensors. HWiNFO has broader hardware support and exposes sensor data through a shared memory interface.


Requirements

System Requirements

  • Operating System: Windows 10/11 (x64)
  • .NET Runtime: None needed - the installer includes the .NET 8 runtime
  • Privileges: Administrator (for hardware sensor access)

GPU Drivers (for GPU monitoring)

  • NVIDIA: Latest GeForce/Quadro drivers
  • AMD: Latest Radeon drivers

Getting Started

Installation

  1. Download the latest .msi installer from Releases
  2. Run it and approve the administrator prompt
  3. Launch "Memory Monitor" from the Start Menu or the desktop shortcut

The app installs to C:\Program Files\Memory Monitor. Installing a newer version upgrades the existing one in place; there's no need to uninstall first. To remove it, use Settings → Apps (Add/Remove Programs).

Upgrading from 2.4.4 or older? Earlier installers put the app in C:\Program Files (x86). The 2.4.5 installer removes that copy automatically. If an old Memory Monitor 1.0.0.0 entry is still listed in Add/Remove Programs, uninstall it by hand. It's from an early build that newer installers can't detect.

Running the Application

The app asks for administrator rights each time it starts (needed to read hardware sensors). Approve the prompt and it moves itself to your mini monitor.


Building from Source

Prerequisites

  • Visual Studio 2022 or later (optional - the dotnet CLI is enough)
  • .NET 8.0 SDK
  • LibreHardwareMonitor source, cloned next to this repository (the project references ..\LibreHardwareMonitor\LibreHardwareMonitorLib)
  • WiX Toolset v5 for the installer - restored automatically from NuGet, nothing to install

Build Steps

# Clone both repositories side by side
git clone https://github.com/LibreHardwareMonitor/LibreHardwareMonitor.git
git clone https://github.com/rickbme/Memory-Monitor.git
cd Memory-Monitor

# Build
dotnet build "Memory Monitor\MemoryMonitor.csproj" -c Release

# Run (asks for administrator rights)
& "Memory Monitor\bin\Release\net8.0-windows\win-x64\MemoryMonitor.exe"

Creating the Installer

MemoryMonitorSetup\build-installer.bat

This publishes the app, builds MemoryMonitorSetup\bin\x64\Release\MemoryMonitorSetup.msi, and MemoryMonitorSetup\Verify-Installer.ps1 checks the result. The version comes from <Version> in Memory Monitor\MemoryMonitor.csproj. See the installer guide for details and the release checklist.


Project Structure

Memory-Monitor/
├── Memory Monitor/                 # Windows application (WinForms, .NET 8)
│   ├── Program.cs                  # Startup, display mode switching
│   ├── MiniMonitorForm*.cs         # Circular gauges display (1920x480)
│   ├── BarGraphDisplayForm.cs      # Bar graph display
│   ├── CompactGaugeControl.cs      # Circular gauge UI control
│   ├── CPUMonitor.cs               # CPU usage & temperature
│   ├── GPUMonitor.cs               # GPU usage, VRAM & temperature
│   ├── DxgiAdapters.cs             # Links GPUs to their Windows performance counters
│   ├── DiskMonitor.cs              # Disk I/O
│   ├── NetworkMonitor.cs           # Network throughput
│   ├── HardwareMonitorService.cs   # LibreHardwareMonitor wrapper
│   ├── HWiNFOReader.cs             # HWiNFO shared memory reader (CPU temp, FPS)
│   ├── GameActivityDetector.cs     # FPS display mode
│   ├── TouchGestureHandler.cs      # Touchscreen gestures
│   ├── NVMLInterop.cs              # NVIDIA NVML interop
│   ├── ADLInterop.cs               # AMD ADL interop
│   ├── app.manifest                # UAC admin manifest
│   └── CHANGELOG.md                # Detailed change history
├── MemoryMonitorSetup/             # WiX installer - see INSTALLER-README.md
├── MemoryMonitor.Linux/            # Linux version (Avalonia) - see its README
├── USER_GUIDE.md                   # End-user guide (installed with the app)
└── README.md

Troubleshooting

CPU Temperature Not Showing

  1. Ensure application is running as Administrator
  2. Install and configure HWiNFO (see setup section above)
  3. Make sure HWiNFO is running before starting Memory Monitor

GPU Temperature Not Showing

  • NVIDIA: Ensure latest GeForce drivers are installed
  • AMD: Ensure latest Radeon drivers are installed
  • Intel integrated graphics may not support temperature reading

FPS Not Showing

  1. Make sure HWiNFO is running with Shared Memory Support enabled
  2. Make sure RTSS (or another overlay that reports FPS to HWiNFO) is running with the game
  3. Check the tray menu → FPS Display isn't set to Always Hide

Application Won't Start

  1. Approve the administrator prompt - the app needs it to read sensors
  2. Reinstall with the latest installer (it includes everything the app needs)
  3. Check Windows Event Viewer for error details

GPU Support

NVIDIA GPUs

  • GeForce series (GTX, RTX)
  • Full utilization, memory, and temperature support

AMD GPUs

  • Radeon RX series
  • Full utilization, memory, and temperature support

Intel and other GPUs

  • Utilization and VRAM through Windows' GPU performance counters (the same data as Task Manager)
  • No temperature reading available

Version History

See CHANGELOG.md for full details.

v2.5.0 for Linux (2026-11)

  • New: Two-GPU display - with two or more GPUs, the GPU and VRAM columns show the first two cards stacked (half-size dials or half-height bar panels), with the FPS badge in the middle
  • New: Show Both GPUs option in the right-click and tray menus to switch back to one full-size GPU
  • Includes: the Linux fixes from 2.4.5 (AMD Ryzen CPU temperature, network interface matching, tray check timeout, safer log cleanup), which hadn't been released for Linux yet

v2.4.5 (2026-10)

  • Fixed: GPU usage, VRAM and temperatures dropping to 0 after switching display mode
  • Fixed: CPU temperature stopping after switching display mode
  • Fixed: Selected GPU, disk and network not remembered between sessions
  • Fixed: Settings reset to defaults after every upgrade (carried over from 2.4.5 onward)
  • Fixed: FPS Display setting resetting to Auto-detect when switching display mode
  • Fixed: AMD VRAM usage always showing 0; VRAM total capped at 4 GB on some GPUs
  • Fixed: GPU usage on Intel/other GPUs reading the wrong data
  • Fixed: Network adapters missed or double-counted (Intel adapters, Hyper-V/WSL virtual adapters)
  • Fixed: FPS lost when HWiNFO reorders its sensors (e.g. RTSS restart)
  • Fixed: Touch taps on gauges, two-finger tap; swipe arrows and welcome text characters
  • Installer: Now a true 64-bit package installing to C:\Program Files; same-version reinstalls upgrade cleanly
  • Linux: AMD Ryzen CPU temperature, network interface matching, tray check timeout, safer log cleanup

v2.4.4 (2025-01)

  • New: FPS Display menu now available in Bar Graph mode
  • New: Smooth fade transitions when switching display modes
  • Improved: Both display modes now have feature parity for FPS options

v2.4.3 (2025-01)

  • Fixed: Display mode switching no longer exits the application
  • Fixed: Taskbar visibility issues in both display modes
  • Fixed: Welcome dialog and intro logos only show once per session
  • New: Bar Graph mode has distinct tray icon style

v2.4.2 (2025-01)

  • New: Bar Graph display mode with animated panels
  • New: Display Mode menu for switching between views
  • New: NetworkBarPanelControl for dual upload/download display

v2.4.0 (2025-01-10)

  • New: Date and time display on mini monitor
  • New: FPS gauge with intelligent game activity detection
  • New: Color-coded FPS quality indicator (Green/Yellow/Orange/Red)
  • New: Touch cycling for device selection (GPU, Disk, Network)
  • New: FPS display mode menu (Auto-detect, Always Show, Always Hide)
  • Improved: Aggregate mode always available for Disk and Network
  • Improved: Touch UX optimized for small displays
  • Removed: CPU temperature warning popup (cleaner experience)

v2.3.0 (2025)

  • New: Splash screen with branded DFS logo
  • New: Mini monitor intro logo (1920x480)
  • New: Full touch gesture support (swipe, tap, long-press, two-finger tap)
  • New: Touch-enabled device selection for gauges
  • New: Toast notifications for visual feedback
  • Changed: Application minimizes to system tray instead of taskbar
  • Refactored: MiniMonitorForm split into partial classes for better organization

v2.2.0 (2024-12-26)

  • New: Custom gauge-style application icon
  • New: Dynamic tray icon with color-coded RAM usage (Green/Yellow/Red)
  • New: GaugeIconGenerator for programmatic icon creation
  • Improved: Code quality with SafeUpdate wrapper and proper resource disposal
  • Fixed: Icon format, build configuration, nullable warnings

v2.1.0 (2024)

  • New: Borderless full screen mode for clean display
  • New: Auto monitor detection (4:1 aspect ratio)
  • New: Move to Next Monitor tray menu option
  • New: Always on Top toggle (F11 keyboard shortcut)
  • New: Window dragging support
  • Changed: Larger gauges using 95% of vertical space
  • Changed: Increased label font size for better readability

v2.0.0 (2024)

  • New: Mini monitor display support (1920x480)
  • New: Circular gauge design with needle indicators
  • New: CPU temperature monitoring via LibreHardwareMonitor/HWiNFO
  • New: GPU temperature display in gauges
  • New: Disk I/O and Network monitoring
  • New: Administrator manifest for sensor access
  • Changed: Complete UI redesign for horizontal displays

v1.0.0 (2025)

  • Initial release
  • CPU, GPU, and memory monitoring
  • Native NVIDIA and AMD GPU support
  • Dark mode theme

Contributing

Contributions are welcome! Please feel to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.


Acknowledgments

  • LibreHardwareMonitor - Hardware monitoring library
  • HWiNFO - Hardware information and monitoring tool
  • NVIDIA for NVML API
  • AMD for ADL SDK

Support

If you encounter issues or have feature requests:

  • Open an Issue on GitHub
  • Check existing issues for solutions
  • Provide system information and error details

Made by DFS - Dad's Fixit Shop

Electronics repair, Software, & Game Development

About

Free hardware monitor dashboard for 1920x480 mini displays (Windows + Linux). A simple AIDA64 SensorPanel alternative.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages