![]() |
HDD Health Monitor Free HDD S.M.A.R.T. Health Monitor for Windows |
||
|
|||
Author: Ari Sohandri Putra · ARImetic Inc.
Sponsor: <https://github.com/sponsors/arisohandriputra/>
HDD Health Monitor is a 100% free and open-source Windows utility that reads raw S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) data directly from your physical drives and presents it in a clean, easy-to-read interface.
S.M.A.R.T. is a built-in system found in almost every modern hard disk drive (HDD), solid-state drive (SSD), NVMe drive, and many USB-connected drives. It continuously collects dozens of internal measurements - such as read error rates, temperatures, reallocated sectors, and power-on hours - that can indicate whether a drive is healthy or starting to fail.
HDD Health Monitor makes all of this information visible to you at a glance, warns you before problems become data loss, and keeps a historical record so you can track changes over time.
| Item | Requirement |
| Operating System | Windows 11 / 10 / 8.1 / 8 / 7 / Vista |
| Privileges | Administrator (required to read S.M.A.R.T. data from the kernel) |
| Disk Space | Under 2 MB |
| RAM | Minimal - runs comfortably on any modern PC |
| Dependencies | None - single standalone .exe, no installer needed |
HDDHealthmonitor.exe from the official release page.
The program is a single .exe file - there is no installer, no setup wizard, and
nothing is written to your registry during normal use. You can run it directly from any folder,
a USB stick, or your Desktop.
The main window is divided into several areas:
| Area | What it shows |
| Drive Selector Buttons (top row) | One button per detected physical drive. The button label shows the drive's model name. Click a button to select that drive and view its details. Only one drive is active at a time. |
| Drive Info Panel | Model name, serial number, firmware version, drive type (HDD / SSD / NVMe / USB / M.2 / eMMC), capacity, and temperature in °C. |
| Health Bar | A colored progress bar showing the overall health percentage of the selected drive (0–100%). Green = good, Yellow = caution, Red = bad/failing. |
| Performance Bar | A colored progress bar showing the estimated performance percentage derived from S.M.A.R.T. attributes such as seek error rate and throughput. |
| S.M.A.R.T. Attribute Table | Full list of S.M.A.R.T. attributes reported by the drive. See Section 6 for details. |
| Status Bar (bottom) |
For ATA/SATA drives: shows counts of Uncorrectable errors, Reallocated sectors,
Pending sectors, and Error log events. For NVMe drives: shows Available Spare percentage and Percentage Used. |
| History Graph Button | Opens the history graph window for the selected drive. See Section 8. |
The Health % figure gives you a single number (0–100%) that summarizes the condition of your drive. It is calculated from the S.M.A.R.T. attribute values reported by the drive itself:
| Health Range | Color | Meaning |
| 70% > 100% | Green | Good > drive is healthy |
| 40% > 69% | Yellow / Orange | Caution > one or more attributes are deteriorating; monitor closely |
| 20% > 39% | Red (Warning) | Warning > significant issues detected; consider backing up data |
| 0% > 19% | Red (Critical) | Critical > drive failure imminent; back up immediately |
For NVMe drives, health is calculated from the drive's own Health Information Log (Log Page 02h), which includes percentage-used lifetime, available spare, and critical warning flags.
The Performance % meter reflects how well the drive is performing relative to its rated capabilities, based on attributes such as seek error rate, throughput performance, and spin-up time. A new drive typically shows close to 100%. Mechanical wear and increasing error rates will lower this figure over time.
The attribute table lists every S.M.A.R.T. measurement reported by the currently selected drive. Each row contains:
| Column | What it means |
| ID |
The attribute number in hexadecimal (e.g., 05h). This is a standard identifier
defined by the ATA specification or the drive manufacturer.
|
| Attribute Name | A human-readable name for the attribute (e.g., "Reallocated Sectors Count", "Temperature"). |
| Value | The current normalized value (typically 0–253). Higher is generally better for most attributes. When this value reaches or falls below the Threshold, the drive flags a potential failure. |
| Worst | The lowest (worst) normalized value this attribute has ever recorded since the drive was manufactured. Useful for spotting past events even if the drive has since recovered. |
| Raw | The actual count or measurement in native units - for example, the real temperature in °C, the actual number of reallocated sectors, or the total power-on hours. This is often the most useful column for everyday monitoring. |
| Status |
OK > attribute is within normal range. WARNING > attribute is approaching its threshold or shows a non-zero count for a critical measurement. FAILED > attribute has reached or breached its failure threshold. |
Tip: The most important attributes to watch on a traditional HDD are Reallocated Sectors Count (ID 05h), Current Pending Sectors (ID C5h), Uncorrectable Sectors (ID C6h), and Reallocation Event Count (ID C4h). Any non-zero raw value in those four attributes is a warning sign and should not be ignored. For SSDs, also watch Remaining Life Percentage (ID A9h / E7h) and Program Fail Count (ID ABh).
HDD Health Monitor watches your drives in the background and pops up a Windows tray balloon notification the moment a problem is detected. You do not need to keep the window open - as long as the program is running (even minimized to tray), alerts will appear.
The following conditions trigger automatic notifications:
| Condition | Threshold | Severity |
| Temperature Warning | Drive temperature ≥ 55 °C | Warning |
| Temperature Critical | Drive temperature ≥ 65 °C | Critical - power down or improve airflow immediately |
| Health Warning | Health percentage falls below 40% | Warning - back up your data |
| Health Critical | Health percentage falls below 20% | Critical - back up immediately |
| S.M.A.R.T. Predictive Failure | Drive reports a SMART failure status via the ATA Return Status command | Critical |
| Reallocated Sectors Detected | Raw value of Reallocated Sectors Count (ID 05h) > 0 | Warning |
| Uncorrectable Errors Detected | Raw value of Uncorrectable Sectors (ID C6h) > 0 | Critical |
| NVMe Critical Warning | Drive sets any critical warning bit in the NVMe Health Log (spare below threshold, temperature exceeded, media errors, etc.) | Critical |
Each alert is sent only once per session to avoid flooding you with repeated notifications. If the condition clears (e.g., temperature drops back below the warning threshold) and then returns, the alert will fire again.
The History Graph window lets you see how a drive's health has changed over time. To open it, click the History Graph button in the main window, or go to View → History Graph.
What the history graph shows:
The history data is saved to disk so it persists between sessions - you can close and reopen the program and still see the trend from previous days or weeks.
Tip: Use the history graph to spot gradual deterioration that might not be obvious from a single reading. A slowly rising temperature or a slowly increasing reallocated sector count over weeks is a clear early-warning sign.
HDD Health Monitor places an icon in the Windows system tray (notification area, bottom-right of the taskbar) for every detected drive. Each tray icon shows the drive's current health percentage as a small colored number:
| Icon Color | Meaning |
| Green | Health ≥ 70% - drive is healthy |
| Yellow / Orange | Health 40%–69% - caution |
| Red | Health < 40% - warning or critical |
| Blue | Health data not yet available (drive still being scanned) |
Right-clicking a tray icon shows a small menu with two options:
When you click the window's close button (×), the program minimizes to tray rather than quitting, so monitoring and alerts continue running in the background. To exit fully, use File → Exit or right-click the tray icon and choose Exit.
You can save a PNG image of the main window at any time. This is useful for sharing your drive's S.M.A.R.T. data with a technician or posting it in a support forum.
To save a screenshot:
HDDH_Screenshots\, with a filename that includes the date and time
(e.g., HDDH_20260622_143055.png).
HDD Health Monitor is hot-plug aware. When you connect a USB drive while the program is running, it automatically detects the new drive and adds it to the drive selector within about 1–2 seconds. No restart is required.
Similarly, when you safely remove or unplug a USB drive, the program removes its button and tray icon automatically.
Note: Whether S.M.A.R.T. data is available for a USB drive depends on the USB bridge chip inside the drive enclosure. See Section 12 for supported USB bridge chips.
HDD Health Monitor supports the following drive types and uses the appropriate low-level communication method for each:
| Drive / Interface Type | Access Method | Notes |
| ATA / SATA HDD & SSD | ATA Pass-Through Direct (IOCTL_ATA_PASS_THROUGH_DIRECT), with fallback to
Legacy SMART IOCTL |
Full S.M.A.R.T. support including attribute table, error log, and self-test log |
| M.2 SATA SSD | Same as SATA above | Identified separately as M.2 SATA type |
| NVMe SSD (internal PCIe / M.2) | Windows Storage Query Property (IOCTL_STORAGE_QUERY_PROPERTY), reading
NVMe Health Information Log (Log Page 02h) |
Shows NVMe-specific attributes: Available Spare, Percentage Used, Power-On Hours, Power Cycles, Unsafe Shutdowns, Media & Data Integrity Errors, and temperature sensors |
| USB Drives — Standard SAT | SCSI-ATA Translation (SAT) via IOCTL_SCSI_PASS_THROUGH_DIRECT using
ATA PASS-THROUGH (A1h / 85h commands) |
Works with most modern USB enclosures that implement SAT properly |
| USB - JMicron Bridge | JMicron vendor-specific protocol | Supports JMicron chips: 152D:0578, 152D:0565, and related models |
| USB - ASMedia Bridge | ASMedia vendor-specific protocol | Supports ASMedia chips (174C:xxxx series) |
| USB - Realtek Bridge | Realtek vendor-specific protocol | Supports Realtek bridge chips (0BDA:xxxx series) |
| USB - Cypress / I-O Data Bridge | Cypress vendor-specific protocol | Supports Cypress (04B4:6830) and I-O Data bridge chips |
| USB - Prolific Bridge | Prolific vendor-specific protocol | Supports Prolific chips (067B:2773 and related) |
| USB - Sunplus Bridge | Sunplus vendor-specific protocol | Supports Sunplus chips (04FC:0C25 and related) |
| USB - Logitec Bridge | Logitec vendor-specific protocol | Supports Logitec USB-SATA bridge chips |
| USB NVMe - JMicron NVMe Bridge | JMicron NVMe-over-USB vendor protocol | Supports JMicron NVMe bridges: 152D:0583, 152D:0586, and related |
| USB NVMe - ASMedia NVMe Bridge | ASMedia NVMe-over-USB vendor protocol | Supports ASMedia NVMe bridge 174C:2362 and related |
| USB NVMe - Realtek NVMe Bridge | Realtek NVMe-over-USB vendor protocol | Supports Realtek NVMe bridge 0BDA:9210 and related |
| USB NVMe - VLI Bridge | VLI VL716/VL717 NVMe vendor protocol | Supports VLI chips 2109:0900 and related |
| USB NVMe - FMA Bridge | FMA NL6221 NVMe vendor protocol | Supports FMA bridge 0BDA:9220 and related |
| USB - ASMedia ASM1352R RAID | ASMedia ASM1352R dual-drive RAID bridge protocol | Supports ASMedia ASM1352R (174C:1352) |
| SCSI | SCSI Log Sense (page 0x2F / 0x0D) | Reads temperature and limited health data from SCSI/SAS drives |
Note: If your USB drive enclosure uses a bridge chip not listed above, the program will still attempt a generic SAT connection. If that fails, the S.M.A.R.T. data will not be available but the drive will still appear in the drive list with its model and capacity.
HDD Health Monitor recognizes drives from the following manufacturers and applies any vendor-specific S.M.A.R.T. attribute mappings automatically:
| Brand | Notes |
| Samsung | HDD & SSD; vendor-specific SSD attributes supported |
| Western Digital (WDC) | HDD & SSD; helium drive attributes supported |
| Seagate | HDD & SSD; vendor-specific attribute mappings |
| Toshiba | HDD & SSD |
| Hitachi / HGST | HDD |
| Intel | SSD; End-to-End Error Detection attribute supported |
| Micron / Crucial | SSD; Uncorrectable Error Count attribute supported |
| Kingston | SSD; Erase Fail Count attribute supported |
| SanDisk | SSD |
| SK Hynix | SSD; SATA PHY Error Count attribute supported |
| Kioxia (Toshiba Memory) | SSD & NVMe |
| ADATA | SSD; Average Erase Count attribute supported |
| PNY | SSD |
| Corsair | SSD |
| Lexar | SSD & Flash |
| Silicon Power | SSD |
| Team Group | SSD |
| GoodRAM | SSD |
| Plextor | SSD |
| OCZ | SSD |
| Other / Unknown | Standard ATA S.M.A.R.T. attributes used |
The table below lists all S.M.A.R.T. attributes that HDD Health Monitor can display, their IDs, and what they mean in plain language. Not every drive reports every attribute - you will only see the ones your particular drive supports.
Criticality key:
● Critical > A non-zero raw value or a failed
threshold is a serious warning sign. Back up your data immediately.
● Advisory > Worth watching; deterioration
here may indicate developing problems.
○ Informational > Normal operational counters; not directly linked to
failure prediction.
| ID | Name | Criticality | What it means |
| 01h | Raw Read Error Rate | Advisory | Rate of hardware read errors. Some manufacturers (e.g., Seagate) start this at a high raw value - check the normalized value against the threshold rather than the raw number. |
| 02h | Throughput Performance | Informational | Overall throughput efficiency of the drive. |
| 03h | Spin-Up Time | Informational | Time (in milliseconds) for the drive platters to reach operating speed on startup. Increasing values can indicate a weakening spindle motor. |
| 04h | Start/Stop Count | Informational | Total number of spindle start/stop cycles since manufacture. |
| 05h | Reallocated Sectors Count | Critical | Number of bad sectors that have been found and remapped to spare areas. Any non-zero value is a red flag. A rising count means the drive surface is deteriorating. |
| 07h | Seek Error Rate | Advisory | Rate of positioning errors when the read/write head moves to a new location. High rates can indicate mechanical wear or head alignment problems. |
| 08h | Seek Time Performance | Informational | Average efficiency of seek operations. |
| 09h | Power-On Hours | Informational | Total number of hours the drive has been powered on since manufacture. Useful for estimating age and remaining lifespan. |
| 0Ah | Spin Retry Count | Critical | Number of times the drive had to retry spinning up. Any retries indicate mechanical problems with the spindle motor. |
| 0Bh | Calibration Retry Count | Informational | Number of times the drive had to recalibrate its heads. |
| 0Ch | Power Cycle Count | Informational | Total number of times the drive has been powered on and off. |
| 16h | Current Helium Level | Advisory | For helium-filled drives (e.g., some WDC/HGST models). Indicates remaining helium pressure. A drop may indicate a seal leak. |
| 1Ah | Remaining Rated Life | Advisory | Estimated percentage of rated life remaining (primarily on enterprise SSDs). |
| 0Dh | Soft Read Error Rate | Advisory | Rate of errors that were corrected by the drive's ECC engine without needing a reallocation. |
| BEh | Airflow Temperature | Informational | Air temperature measured inside the drive casing. |
| BFh | G-Sense Error Rate | Informational | Errors caused by shock or vibration. Relevant for laptop drives. |
| C0h | Power-Off Retract Count | Informational | Number of times the heads were retracted due to sudden power loss. |
| C1h | Load/Unload Cycle Count | Informational | Total number of times the heads have been loaded and unloaded from the parking ramp (common on laptop drives with Automatic Acoustic Management). |
| C2h | Temperature | Informational | Current drive temperature in °C. Displayed prominently in the drive info panel. |
| C3h | Hardware ECC Recovered | Informational | Number of errors corrected by hardware Error Correction Code. A count here does not necessarily mean the drive is failing - all drives do some ECC correction. |
| C4h | Reallocation Event Count | Critical | Total number of reallocation attempts (successful or not). A non-zero value confirms bad sectors have occurred on this drive. |
| C5h | Current Pending Sectors | Critical | Sectors that the drive suspects are unstable and has flagged for reallocation on the next write. Any non-zero value is urgent. These may cause read errors right now. |
| C6h | Uncorrectable Sectors | Critical | Sectors that could not be read or written even after multiple retries and ECC correction. Any non-zero value means permanent data loss has occurred in those locations. |
| C7h | UltraDMA CRC Error Count | Advisory | Errors in data transfer between the drive and the host controller via the SATA/ATA cable. Non-zero values often indicate a faulty cable or connector rather than a failing drive - try replacing the data cable first. |
| C8h | Write Error Rate | Critical | Rate of errors during write operations. |
| BCh | Command Timeout | Advisory | Number of commands that timed out during operation. |
| BDh | High Fly Writes | Informational | Number of write operations performed when the read/write head was flying too high above the platter (detected by an internal sensor). |
| BBh | Uncorrectable ECC Error | Critical | ECC errors that could not be corrected. Indicates serious media problems. |
| B8h | End-to-End Error | Critical | Errors detected when data was compared between the drive's internal buffer and the storage media. Indicates a data integrity problem. |
| B7h | SATA Downshift Error Count | Advisory | Number of times the SATA link speed was downgraded due to communication errors. May indicate cable or controller issues. |
| EFh | SATA PHY Error Count | Advisory | Physical layer errors on the SATA interface. |
| F1h | Total LBAs Written | Informational | Total amount of data written to the drive over its lifetime (in logical block addresses). On SSDs this is important for estimating remaining write endurance. |
| F2h | Total LBAs Read | Informational | Total amount of data read from the drive over its lifetime. |
| ID | Name | Criticality | What it means |
| A9h / E7h | Remaining Life Percentage / SSD Life Left | Advisory | Estimated percentage of the SSD's write endurance remaining. When this reaches 0%, the SSD has exhausted its rated P/E cycle budget - it may still function, but is no longer guaranteed by the manufacturer. |
| ABh | Program Fail Count | Critical | Number of flash programming (write) failures. Any non-zero value indicates failing NAND flash cells. |
| ACh | Erase Fail Count | Critical | Number of flash erase failures. Non-zero values indicate damaged NAND cells. |
| ADh | Wear Leveling Count | Informational | Number of times the SSD's wear leveling algorithm has cycled through the NAND blocks. Higher values mean the drive has been used more heavily. |
| AEh | Unexpected Power Loss | Informational | Number of times the SSD experienced a sudden power cut while write operations were in progress. |
| AFh | Power Loss Protection Fail | Critical | The SSD's capacitor-based power-loss protection circuit failed to complete a save during a power outage. |
| A0h | Unsafe Shutdown Count | Informational | Number of times the SSD was powered off without a clean shutdown sequence. |
| E9h | NAND Writes (GB) / Media Wearout | Informational | Total gigabytes written to the NAND flash, or a media wearout indicator (vendor-specific interpretation). |
| EAh | Average Erase Count / Total Writes | Informational | Average number of erase cycles across all NAND blocks, or total host writes (vendor-specific). |
| FCh | Newly Added Bad Flash Block | Critical | Number of NAND flash blocks that have been marked bad during operation (in addition to factory-bad blocks). |
For NVMe drives, the following values from the NVMe Health Information Log (Log Page 02h) are displayed:
| Field | ID | What it means |
| Available Spare | 03h | Percentage of spare NVMe blocks remaining (starts at 100%). |
| Available Spare Threshold | 04h | The minimum spare percentage set by the manufacturer. A critical warning fires when Available Spare falls below this. |
| Percentage Used | 05h | Drive manufacturer's estimate of the percentage of rated life used (0–255%). Values over 100% mean the drive has exceeded its rated endurance. |
| Power On Hours | 09h | Total hours the NVMe drive has been powered on. |
| Power Cycles | 0Ch | Total number of power cycles. |
| Unsafe Shutdowns | 10h | Number of unclean power-off events. |
| Media and Data Integrity Errors | 11h | Critical - count of unrecovered data integrity errors. Any non-zero value is serious. |
| Menu | Item | Shortcut | Action |
| File | Save Screenshot | Ctrl+S | Save a PNG image of the main window to your Documents\HDDH_Screenshots\ folder |
Q: The attribute table shows "Run as Administrator and click Refresh". What do I do?
A: Close the program, then right-click HDDHealthmonitor.exe and choose
Run as administrator. S.M.A.R.T. data requires administrator-level access to the
Windows kernel driver.
Q: My USB drive shows up but the S.M.A.R.T. table is empty or shows no data.
A: The USB bridge chip inside your enclosure may not support S.M.A.R.T. pass-through, or it may
use a protocol not yet supported. The drive will still appear in the list with its model name and
capacity, but health data will not be available. Try a different enclosure if you need S.M.A.R.T.
readings from that drive.
Q: I see a non-zero Reallocated Sectors count. Should I be worried?
A: Yes. Even a single reallocated sector means the drive has found a bad spot on the disk and
moved data away from it. A small count (1–5) on an older drive may be stable for a long time, but
any non-zero value is a signal to back up your data now and replace the drive when
convenient. A rising count is urgent - replace the drive immediately.
Q: The health percentage suddenly dropped. Is the drive about to fail?
A: A sudden drop usually means a new S.M.A.R.T. attribute has crossed its threshold or a critical
raw value (like pending sectors) has appeared. Check the attribute table for any rows showing
WARNING or FAILED status. Back up your data as a precaution and monitor the
drive closely over the next few days.
Q: My NVMe drive's "Percentage Used" shows 0%. Is it new?
A: Not necessarily - it means less than 1% of the rated write endurance has been consumed. NVMe
drives with heavy workloads will show increasing values over months or years. The drive is
perfectly fine until this number approaches 100%.
Q: The temperature alert fired but my room is cool. Is something wrong?
A: The alert threshold is 55 °C (warning) and 65 °C (critical). HDDs and SSDs run hotter
than room temperature, especially under load or in enclosed cases with poor airflow. Check that
your PC case fans are working and that the drive has adequate clearance. Sustained temperatures
above 55 °C will shorten the drive's lifespan.
Q: How do I stop the program from running in the background?
A: Right-click the tray icon and choose Exit, or go to
File → Exit. Simply closing the main window only minimizes the program to
the tray; it keeps running until you explicitly exit.
Q: Can I run this on more than one drive at the same time?
A: Yes. HDD Health Monitor scans and monitors all physical drives simultaneously. Each
drive gets its own tray icon, and alerts are generated independently for each. Use the drive
selector buttons at the top of the window to switch the detail view between drives.
Q: Where are the history files stored?
A: History data is saved alongside the executable in the same folder where
HDDHealthmonitor.exe is located, so keep the program in a folder where you have write
permission (not in C:\Program Files\ unless you run as Administrator).
Q: Is this program free? Does it expire?
A: Yes, HDD Health Monitor is 100% free and open-source software (MIT License). It does not
expire, does not nag, and does not require registration. If you find it useful, consider
supporting the author via
GitHub Sponsors.
Copyright © 2026 ARImetic Inc. All Rights Reserved