PhysChen.com
Home
Physics
Popular Science Research
Teaching
IB Programmes
Programming
Notes Projects
Essays
Impressions Insights
Photography
Shenzhen Portrait Cats Others Wuhan Japan
About
Home
Physics
Popular Science Research
Teaching
IB Programmes
Programming
Notes Projects
Essays
Impressions Insights
Photography
Shenzhen Portrait Cats Others Wuhan Japan
About
On this page
    ZeroTick: Lightweight Windows System Diagnostics and Real-Time Tracking Hua Chen's Personal Homepage

    Article Metadata

    • Title: ZeroTick: Lightweight Windows System Diagnostics and Real-Time Tracking
    • Published: Jul 11, 2026
    • Source: https://physchen.com/en/programming/projects/zerotick/
    • Description: Lightweight Windows diagnostics: system tray, millisecond USB/Bluetooth event capture, Bluetooth health checks, BSOD tracing, and one-click repair.

    Table of Contents

      ZeroTick: Lightweight Windows System Diagnostics and Real-Time Tracking

      Jul 11, 2026 · 中文版
      • Windows

      Frequent Wi-Fi and Bluetooth disconnections, accompanied by the annoying ticking sound of USB devices disconnecting and reconnecting, can be incredibly frustrating—especially when the root cause is hard to pinpoint. To address this, I developed and open-sourced a lightweight troubleshooting and real-time tracking tool using Cursor. For more details, check out the GitHub repository.

      Features

      ModuleDescription
      Hardware monitoringReal-time USB / Bluetooth disconnect and transient events via WM_DEVICECHANGE (configurable threshold)
      Bluetooth diagnosticsWMI polling of bthserv and PnP devices; tray alerts on failure
      BSOD tracingMinidump scan plus Event Log BugCheck analysis
      One-click repairRestarts bthserv / Audiosrv and scans USB selective suspend settings
      System trayClose to tray; icon reflects status (normal / warning / alert)
      NotificationsNative Windows toasts when the window is hidden
      HistoryPersistent event log with JSON / CSV export
      Port managerScan local listeners, flag dev leftovers and reserved ranges, release safe processes
      Localization29 display languages, including tray menu strings

      Requirements

      • Windows 10 / 11 (x64)
      • WebView2 Runtime
      • One-click repair works best when run as administrator (right-click → Run as administrator)

      Installation

      From Releases (recommended)

      Download the latest build from Releases:

      • ZeroTick_*_x64-setup.exe — NSIS installer
      • ZeroTick_*_x64_en-US.msi — MSI package

      After installation, ZeroTick stays in the system tray by default.

      Pushing to main with a new package.json version triggers GitHub Actions to tag v* and upload installers. See Contributing → Release.

      Build from source

      Prerequisites: Rust 1.82+ · Node.js 18+

      git clone https://github.com/ichenh/zerotick.git
      cd zerotick
      npm install
      npm run tauri build

      Installers are written to:

      src-tauri\target\release\bundle\nsis\
      src-tauri\target\release\bundle\msi\

      If icons are missing, generate them from app-icon.png: npm run ensure-icons or npm run tauri icon app-icon.png

      Commit app-icon.png or src-tauri/icons/ before publishing — CI requires them to build installers.

      Usage

      1. Launch — ZeroTick runs in the system tray; the main window starts hidden
      2. Open the app — Left-click the tray icon, or right-click → Open Dashboard
      3. Overview — Live USB / Bluetooth timeline; transient disconnects are highlighted
      4. Diagnostics — Check Bluetooth, scan for BSOD dumps, run one-click repair
      5. Ports — Scan local usage and release node / vite dev leftovers
      6. Settings — Thresholds, history limits, display language, notifications, start at sign-in
      7. Quit — Right-click tray → Quit ZeroTick

      Data directory

      User data is stored under %APPDATA%\com.zerotick.desktop\:

      FilePurpose
      settings.jsonUser preferences
      device_history.jsonDevice event history
      zerotick_debug.logDebug log

      Performance

      Target idle usage is about 0% CPU:

      • Hardware monitoring uses a Win32 message pump (event-driven, no polling loop)
      • Bluetooth WMI polls every 60s by default and only notifies on state changes
      • BSOD analysis runs once at startup

      Adjust the Bluetooth poll interval in Settings (15–300 seconds).

      Development

      npm install
      npm run tauri dev    # dev mode (runs prepare-dev automatically)
      npm run build        # frontend only
      cargo test --manifest-path src-tauri/Cargo.toml

      Dev server port: 55555 (see vite.config.js, tauri.conf.json, src-tauri/src/ports.rs).

      Project layout

      zerotick/
      ├── index.html
      ├── src/                    # Vite + Vanilla JS frontend
      │   ├── main.js
      │   ├── i18n.js
      │   ├── locales/
      │   └── styles.css
      ├── src-tauri/              # Rust / Tauri backend
      │   ├── src/
      │   │   ├── monitor.rs
      │   │   ├── bluetooth.rs
      │   │   ├── bsod.rs
      │   │   ├── repair.rs
      │   │   ├── ports.rs
      │   │   ├── settings.rs
      │   │   ├── i18n.rs
      │   │   └── tray.rs
      │   └── locales/tray.json
      ├── scripts/
      ├── CHANGELOG.md
      ├── CONTRIBUTING.md
      └── LICENSE

      Agent conventions: AGENTS.md

      License

      MIT © ZeroTick Contributors

      Previous Next Math Chords: Customizable LaTeX Math Shortcuts for Obsidian Jun 19, 2026
      Xiaohongshu Streamline Icon: https://streamlinehq.com Xiaohongshu
      © 2026 CHEN Hua All rights reserved
      闽ICP备2026003335号 · 粤公网安备44030002014022号
      © Hua Chen / PhysChen.com