Skip to content

Miraculik/heatpulse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

HeatPulse

A lightweight PowerShell script that logs CPU temperature, power draw, per-core temperatures, and the top CPU-using processes to a CSV file. Works on both AMD and Intel CPUs.

Features

  • Downloads the latest LibreHardwareMonitor library automatically on first run
  • Logs CPU package temperature and individual core temperatures
  • Logs CPU package power (watts)
  • Captures the top five processes by PerfMon CPU% each sample (raw plus approx. share of PC = raw ÷ logical CPUs)
  • Plain CSV output — easy to chart in Excel or Power BI
  • No separate installer beyond PowerShell + admin rights

Requirements

  • Windows PowerShell or PowerShell 7
  • Run as Administrator (required by the script and performance counters)

How to use

  1. Save HeatPulse.ps1 to a folder on your PC.
  2. Open an elevated terminal and follow Running from PowerShell below.

Running from PowerShell (recommended)

1. Open PowerShell as Administrator

  1. Press Win + X.
  2. Choose Terminal (Admin) or Windows PowerShell (Admin).

2. Go to the script folder

cd "C:\path\to\HeatPulse"

Replace C:\path\to\HeatPulse with the folder where you saved HeatPulse.ps1.

3. Allow scripts (first time only)

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

4. Start monitoring

.\HeatPulse.ps1

You should see:

Monitoring started. Live summary refreshes every 5s. Press Ctrl+C to stop.

5. Stop and open the log

Press Ctrl+C to exit cleanly; the CSV path is printed when you stop.

Open HeatPulse_Log_<timestamp>.csv (a new file each run) in Excel or Power BI to build charts.


CPU percentages vs Task Manager

Per-process figures come from Windows performance counters (Win32_PerfFormattedData_PerfProc_Process / PerfMon-style % Processor Time), not from Task Manager’s UI code.

  • PerfMon raw can go above 100% on multi-core CPUs (a threaded process sums time across logical processors). Theoretical ceiling scales with logical CPU count.
  • Approx. % of PC (also written ~pc in the dashboard) is raw ÷ Logical_CPU_Count. That is an approximate “share of the whole machine” comparable to how many people read Task Manager — but still not identical, because Task Manager smooths differently and refreshes on its own cadence.
  • Samples are taken every 5 seconds at one instant, so brief spikes may look bigger here than Task Manager’s averaged column.

CSV columns

Column Description
Timestamp Sample time (yyyy-MM-dd HH:mm:ss)
CPU_Temp_C CPU package-style temperature where available
CPU_Power_W Package power (watts), when reported by sensors
Core_Temps Per-core readings, e.g. `Core #0: 45°C
Logical_CPU_Count Logical processors used for ~pc normalization (same row to row unless hardware changes)
Top_Processes Human summary: top five by raw counter, ~X% pc, raw Y% per process
CPU_ApproxSystemPct Same order as Top_Processes: semicolon-separated approximate % of PC values
CPU_PerfRaw Same order: semicolon-separated PerfMon raw % values

Files

File Purpose
HeatPulse.ps1 Monitoring script
HeatPulse_Log_<yyyy-MM-dd_HH-mm-ss_fff>.csv New log each run
LibreHardwareMonitorLib.dll Downloaded on first run into the same folder as the script

Notes

  • First run downloads the LibreHardwareMonitor assets (~ few MB); later runs reuse the DLL.
  • Administrator rights are required.
  • Always use Ctrl+C to stop so the loop can tear down cleanly and finalize the CSV.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors