{"id":49187755,"url":"https://github.com/errorx2/hd2-log-viewer","last_synced_at":"2026-07-05T02:00:35.326Z","repository":{"id":352446921,"uuid":"1214998060","full_name":"ERRORX2/HD2-LOG-VIEWER","owner":"ERRORX2","description":"Why read a CSV when it can read itself?","archived":false,"fork":false,"pushed_at":"2026-07-04T11:02:31.000Z","size":1403,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-07-04T12:04:16.003Z","etag":null,"topics":["automated","csv-reading","hardware-report","stability-testing","troubleshooting"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ERRORX2.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-19T10:43:55.000Z","updated_at":"2026-07-04T11:02:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"0bf75276-498c-4ebf-bcf1-659c1a156988","html_url":"https://github.com/ERRORX2/HD2-LOG-VIEWER","commit_stats":null,"previous_names":["errorx2/hd2-log-viewer"],"tags_count":54,"template":false,"template_full_name":null,"purl":"pkg:github/ERRORX2/HD2-LOG-VIEWER","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ERRORX2%2FHD2-LOG-VIEWER","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ERRORX2%2FHD2-LOG-VIEWER/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ERRORX2%2FHD2-LOG-VIEWER/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ERRORX2%2FHD2-LOG-VIEWER/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ERRORX2","download_url":"https://codeload.github.com/ERRORX2/HD2-LOG-VIEWER/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ERRORX2%2FHD2-LOG-VIEWER/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35141083,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-05T02:00:06.290Z","response_time":100,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automated","csv-reading","hardware-report","stability-testing","troubleshooting"],"created_at":"2026-04-23T05:03:18.153Z","updated_at":"2026-07-05T02:00:35.308Z","avatar_url":"https://github.com/ERRORX2.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![HD2 Log Viewer Logo](assets/icon.ico) \n# HD2 LOG VIEWER\n![Build Status](https://github.com/ERRORX2/HD2-LOG-VIEWER/actions/workflows/build.yml/badge.svg)\n![Latest Release](https://img.shields.io/github/v/release/ERRORX2/HD2-LOG-VIEWER?color=blue\u0026label=Latest%20Version)\n\n**HD2 LOG VIEWER** is a professional-grade telemetry utility designed for high-frequency hardware log analysis. Optimized for stability testing, thermal diagnostics, and hardware troubleshooting, it provides an interactive interface for visualizing and diagnosing data from **HWiNFO64**, **GPU-Z**, and **MSI Afterburner**.\n\n---\n\n## 🚀 Installation \u0026 Deployment\n\n### 📦 Option 1: Latest Windows Release (Recommended for Most Users)\n\n\u003c!-- LATEST_RELEASE_START --\u003e\n### 🚀 Latest Windows Release: v1.6.5 (2026-07-05)\n\n- Download: [release_release_v1.6.5.zip](https://github.com/ERRORX2/HD2-LOG-VIEWER/releases/download/v1.6.5/release_v1.6.5.zip)\n\n### 🔐 Integrity\n\n\u003cdetails\u003e\n\n\u003csummary\u003eCryptographic Hashes\u003c/summary\u003e\n\n* EXE SHA256: `099C9C646CBCCAEBEFF2E75B01BF86AD0BE1C45ACED233BB0CCBDAE60D450A4A`\n* Groups JSON SHA256: `2710F6B17317CD911D1C1DB6F68056FDD77306761FD250ADC895BBF54DF1F275`\n* Manifest SHA256: `242313C91CEA58F8FA268BEC584E59F581781BB35DA59BE02AA55C044D3381C3`\n* ZIP SHA256: `072FD4D99AEF9DC1D6911619A4BF782880FFAFF748C2A768212831986703AE86`\n\n\u003c/details\u003e\n\u003c!-- LATEST_RELEASE_END --\u003e\n\n1. Download the **[Latest Release](../../releases/latest)**.\n2. Download the `HD2_LOG_VIEWER_latest.zip` archive.\n3. **Extract the ZIP fully** to a folder of your choice.\n4. Run `HD2_LOG_VIEWER.exe`.\n\n*Ensure `groups.json` stays in the same folder as the EXE to load your presets.*\n\n---\n\n### 🛠️ Option 2: Running on Linux (Arch/CachyOS)\n1. Install dependencies \n```sudo pacman -S git python tk python-pandas python-matplotlib python-numpy python-pip```\n2. git clone ``https://github.com/ERRORX2/HD2-LOG-VIEWER.git``\n3. cd ``HD2-LOG-VIEWER``\n4. python ``HD2_LOG_VIEWER.pyw``\n\n---\n\n### 🛠️ Option 3: Running from Source (For Developers)\n\n**Prerequisites:**\n* Python 3.12\n* pip\n\n1. git clone ``https://github.com/ERRORX2/HD2-LOG-VIEWER.git``\n2. cd ``HD2-LOG-VIEWER``\n3. pip install ``pandas matplotlib numpy``\n4. pythonw ``HD2_LOG_VIEWER.pyw``\n\n---\n\n## 📖 Usage\n\n1. **Load a Log:** Launch the app and select your HWiNFO64 CSV. A spinner dialog loads it in the background.\n2. **Select Sensors:** Use the categorized sidebar to toggle sensors, or apply a saved preset. Use the search box to filter by name.\n3. **Analyze:** Hover over the chart for a live synchronized readout. Use Multi-Plot, Heatmap, Delta, or Time mode to change the view.\n4. **Diagnose:** Click **🔬 Diagnose Hardware Signatures** to run the full analysis and review any findings. Use **📋 Copy Discord Summary** to share results instantly.\n5. **Save Presets:** Type a name and click Save to store the current sensor selection. Share it via the clipboard icon next to each preset.\n6. **Export:** Save a PNG of the current chart or generate a full HTML report for offline sharing or archiving.\n\n---\n\n## 🛠️ Core Features\n\n### 📊 Visualization\n* **Multi-Plot Mode:** Split sensors into categorized subplots - temperatures, clocks, voltages, utilization - for side-by-side comparison without overlap.\n* **Heatmap Mode:** Color-coded stress visualization across all selected sensors simultaneously, using absolute thresholds for known sensor types and per-sensor normalization as fallback.\n* **Δ Delta Mode:** Graph the absolute difference between sensor values over time - useful for tracking GPU core vs. hotspot spread or VRM thermal delta.\n* **Time Mode:** Switch the X-axis between raw polling ticks and actual elapsed time when a timestamp column is detected.\n* **Interactive Tooltip:** Hover over any point on the chart for a synchronized readout of all plotted sensors at that exact moment.\n* **Signal Event Timeline:** A dedicated timeline strip below the chart marks where hardware anomalies were detected. Click any marker to jump directly to that moment and see what triggered it.\n* **Chart Export:** Save the current view as a high-resolution PNG (300 DPI) including the full sensor legend, or copy it directly to the clipboard with `Ctrl+C`.\n\n### 🔍 Sensor Management\n* **Categorized Sensor List:** Sensors are automatically sorted into groups - Temperatures, Utilization, Clocks, Power, Voltage, Fan Speeds - for fast navigation across large logs.\n* **Live Search:** Filter the sensor list in real time by typing; results update instantly.\n* **Out-of-Spec Filter:** One click hides all normal sensors and shows only those currently reading outside safe thresholds, highlighted in the list.\n* **Sensor Alias System:** Permanently rename ambiguous or hardware-specific sensor columns so they are correctly identified across any future log file from the same machine.\n* **Preset Groups:** Save any combination of selected sensors as a named preset. Apply, rename, delete, or share presets via clipboard - paste a shared preset from another user directly into the app.\n\n### 🔬 Diagnostics\n* **Hardware Failure Diagnosis:** Runs a full signature scan and presents findings as severity-tagged cards (Critical / Warning / Info) with plain-English descriptions, evidence values, and one-click sensor selection to jump straight to the relevant chart.\n* **Session Summary Narrative:** Automatically generates a plain-English paragraph summarizing the most significant findings and any causal relationships between issues detected.\n* **Discord Summary Copy:** Copies a compact, formatted summary of the session narrative and all detected signals - including severity and evidence - ready to paste directly into Discord or a support ticket.\n* **Real-Time Signature Badges:** The sidebar shows a live count of critical, warning, and info signals as soon as the scan completes in the background, without opening the diagnosis window.\n* **Out-of-Spec Detection:** Independently flags individual sensors that exceed configured thresholds, separate from the full signature engine.\n* **Detected Hardware View:** Parses the CSV label rows to identify and display the actual hardware devices present in the log - CPU, GPU, storage drives, network adapters, and more - grouped by category.\n\n### 🔁 Session Comparison\n* **Reference Baseline:** Pin the current session as a reference, then load a second CSV to compare directly against it.\n* **Overlay Mode:** Draws both sessions on the same axes so differences in thermals, clocks, or power are immediately visible.\n* **Delta Summary Panel:** Shows avg/max/min differences between the current and reference session for every selected sensor, displayed as an annotated panel on the chart.\n* **Swap Reference:** Swap the current and reference sessions without reloading either file.\n\n### 📄 Reporting\n* **HTML Report Export:** Generates a fully self-contained HTML report including detected hardware, session summary, all signature findings, out-of-spec sensors, per-sensor charts (selected and by category), PSU rail voltages, and a full statistics table. No internet connection required to view.\n\n### 🎨 Theming\n* **14 Built-in Themes:** Dark (Default), Light (Default), Slate, Teal, Forest Green, Crimson, Steel, Lime, Violet, Lavender, Cobalt, Neon Blue, Sand, Monochrome, and the Helldivers 2 theme.\n* **Theme Editor:** Customize any theme's background, surface, border, text, accent, plot line colors, and heatmap band colors using a color picker. Save as a named user theme.\n* **Import / Export Themes:** Share themes as `.json` files. Import a theme file and it is immediately available in the editor.\n* **Persistent Theme:** The active theme and all customizations are saved and restored between sessions.\n\n### ⚙️ Settings \u0026 Configuration\n* **Limits Editor:** Configure every detection threshold - temperature limits per component type, voltage rail safe ranges, power maximums, fan stall thresholds, frametime limits, and all signature-specific sensitivity parameters.\n* **Signature Controls:** Enable or disable individual signatures from the settings panel. The signal timeline and badge counts update accordingly.\n* **Tooltip Toggle:** Enable or disable the hover tooltip from the top bar without restarting.\n* **Crash Recovery:** Automatically trims corrupted or zeroed rows commonly left at the end of logs after crashes or hard resets.\n* **Update Notifications:** Checks for new releases silently on startup. If an update is found, you can open the release page, ignore that specific version, or disable future notifications. A manual check is available via the ⟳ button at any time.\n* **Debug Dump:** A hidden developer panel (`Ctrl+F8`) shows all resolved sensor columns, detected values, fabric clock ratios, PSU rail analysis, and internal state - useful for diagnosing why a signature did or did not fire.\n\n---\n\n## 🔬 Diagnostics Engine\n\nHD2 LOG VIEWER includes an advanced signature detection system that analyzes system behavior across thermals, power delivery, memory stability, storage performance, and OS-level scheduling.\n\n### 🧠 Detection Coverage\n\n**🌡️ Thermal \u0026 Cooling**\n* CPU thermal throttling and sustained temperature stress\n* GPU hotspot and edge-to-hotspot delta analysis\n* VRAM junction temperature throttling\n* VRM and MOSFET overheating\n* Chipset / PCH thermal throttling\n* Fan stall detection during active load\n\n**⚡ Power \u0026 Voltage**\n* CPU clock stretching (major and minor) - effective vs. requested clock ratio analysis per core\n* GPU power limit saturation and oscillation\n* PSU +12V rail sag and ripple analysis\n* Multi-rail voltage out-of-spec detection (+12V, +5V, +3.3V)\n* Laptop power delivery failure / limp mode detection\n* Phantom GPU clock cap detection\n\n**🧬 Memory \u0026 Fabric**\n* System RAM exhaustion and virtual memory / pagefile overflow\n* VRAM overflow with spillover into system memory\n* Ryzen FCLK/UCLK fabric desync (DDR4 and DDR5 modes)\n* Memory XMP/EXPO profile disabled detection\n* Memory controller clock mismatch\n\n**🧩 System \u0026 OS**\n* Hardware (WHEA) errors\n* GPU driver TDR / timeout pattern detection\n* CPU bottleneck (GPU idle while CPU saturated)\n* Background process CPU interference\n* GPU priority conflict from background applications\n* GPU engine wait bottleneck (PresentMon frame data)\n* Kernel driver / DPC latency spikes\n* PCIe bus interface chokepoint and signal instability\n\n**💾 Storage \u0026 I/O**\n* Drive I/O bottleneck and sustained 100% activity\n* NVMe and SSD thermal throttling\n* S.M.A.R.T. hardware failure flags\n* SSD lifespan critical and wear warnings\n* Pagefile overuse\n\n**🧪 Meta \u0026 Platform**\n* Sensor alias validation and auto-detection prompting\n* Log row integrity and crash-truncation cleanup\n* USB rail voltage sag\n\n---\n\n## ⚖️ License\n\nMIT License - Developed for the hardware enthusiast and troubleshooting community.\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferrorx2%2Fhd2-log-viewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferrorx2%2Fhd2-log-viewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferrorx2%2Fhd2-log-viewer/lists"}