Release v0.4.5Windows · Open source

Peripheral Battery Monitor

A lightweight Windows 11 app that shows the battery of wireless mice, keyboards, headsets and other devices in the tray — no vendor software or third-party drivers.

  • v0.4.5latest release · October 24, 2026
  • 3ways to read battery: HID, BLE, Windows
  • 2UI languages
  • 0drivers or admin rights needed
Overview

About the project

Vendor utilities only show their own devices, often need extra drivers and run in the background all the time. Peripheral Battery Monitor brings the battery of every wireless device into the tray and a compact dashboard.

For devices with proprietary protocols — the AJAZZ AJ139 2.4 GHz receiver and the Apple Magic Keyboard — the app reads HID battery reports directly. BLE devices with the standard Battery Service are read and send change notifications; others are found through Windows battery properties. It installs without admin rights and updates from GitHub Releases — the latest release, v0.4.5, shipped on October 24, 2026.

Features

What the system does

  • Your kind of tray

    One combined icon for up to four devices or a separate icon per device; battery symbols or the lowest percentage.

  • Compact dashboard

    Device cards appear and disappear automatically, with device and connection icons and pages instead of scrolling.

  • Bluetooth Battery Service

    BLE devices exposing the standard battery service are read on connect and send battery-change notifications.

  • Auto-discovery

    Bluetooth Classic, BLE and USB/HID devices are grouped per physical device without duplicates.

  • Honest data

    Disconnected and unconfirmed devices stay out of the tray and alerts, and missing data is never shown as zero.

  • Disconnect from a card

    A Bluetooth device can be disconnected from the dashboard while keeping its pairing.

  • Updates & rollback

    Pick a release to update to or roll back to an older one, with SHA-256 validation; settings are kept.

  • Ukrainian & English

    Switchable UI language, settings grouped into General, Tray icons and Notifications.

  • Privacy

    No key logging, telemetry or cloud accounts — only the keyboard's battery collection is read.

Architecture

How it is built

  1. Native C# launcher

    Runs the app in a PowerShell runspace and switches the active version via a pointer — updates and rollbacks are staged side by side.

  2. C# device providers

    AJ139 over its 2.4 GHz receiver (65-byte HID reports, filtering of false charge jumps) and the Apple Magic Keyboard over Bluetooth.

  3. Win32 HID, SetupAPI & BLE GATT

    P/Invoke into hid.dll and setupapi.dll to find interfaces by VID/PID; the standard 180F service and 2A19 characteristic for BLE.

  4. Windows Forms UI

    Tray, paged dashboard, a standard Windows toolbar and settings; state reaches the UI through locked snapshots.

  5. CI/CD on GitHub Actions

    On windows-latest: parser, battery-stability, install, upgrade and rollback tests; a vX.Y.Z tag publishes a release with SHA256SUMS.

Integrations

External services

  • GitHub ReleasesRelease picker, updates and rollback with integrity checks.
  • Bluetooth LE Battery ServiceBattery level and change notifications (0x180F / 0x2A19).
  • Windows device propertiesBattery and connection state for discovered devices.
  • AJAZZ AJ139 V2 MCProprietary HID protocol of the 2.4 GHz receiver.
  • Apple Magic KeyboardBattery reports over Bluetooth.
Technologies

Project stack

Application

  • PowerShell 5.1
  • C#
  • .NET Framework
  • Windows Forms

Windows API

  • HID
  • SetupAPI
  • Bluetooth LE GATT
  • Device Properties
  • P/Invoke

Infrastructure

  • GitHub Actions
  • GitHub Releases
  • SHA-256

Have an idea or a project?

Open to collaboration on business systems, CRM and integrations. Drop me a line — let's talk.

vhnatovskyi@hotmail.com