Skip to content

PraiseTechzw/BLEDiagnosticConsole

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MeterProbe — BLE Diagnostic & Protocol Discovery Tool

Native Android application for diagnostic exploration of Inhemeter proprietary BLE electricity meters.

Technology Stack

  • Language: Kotlin
  • UI: Jetpack Compose (Material 3)
  • Architecture: MVVM + Repository
  • BLE: Direct BluetoothGatt API (No 3rd-party libs)
  • Local Storage: Room (Traffic logging + Sessions)
  • Min SDK: 26 (Android 8.0)
  • Target SDK: 34

Key Features

1. BLE Scanner

Active device discovery with real-time RSSI updates. Automatically highlights target Meter devices (Name: IHM9037284645308).

2. GATT Explorer

Hierarchical view of all discovered services and characteristics. Supports raw reads and provides entry point for proprietary writes.

3. Traffic Console

Safe interface for sending HEX payloads.

  • Validation: Rejects invalid HEX input.
  • Confirmation: Requires explicit user consent before any write operation.
  • Quick Payloads: Shortcuts for common diagnostic bytes (00, 01, FF).

4. Traffic Logging

Persistent log of all TX (Client-to-Server) and RX (Server-to-Client) traffic.

  • Directional Coloring: TX in Green, RX in Blue.
  • Filtering: Live search by UUID or payload HEX.
  • Export: Writes .txt packet logs to the device Downloads folder.

5. Snapshot Screen

One-tap diagnostic read of the 4 most critical proprietary characteristics:

  • Status Byte (5f78df94)
  • Value A (64b4e8b5)
  • Value B (42c3dfdd)
  • Value C (b7de1eea)

Operating Instructions

Connecting to a Meter

  1. Launch MeterProbe.
  2. Grant requested Bluetooth and Location permissions.
  3. Tap the Bluetooth icon in the top bar to start scanning.
  4. Locate the device named IHM9037284645308 and tap it.
  5. The device will automatically connect, negotiate MTU, and discover services.

Discovering Protocol Commands

  1. Navigate to the GATT Explorer.
  2. Select a proprietary characteristic.
  3. Use the Read button to capture raw responses.
  4. Use the Write button to enter the Console.
  5. Enter suspected HEX commands and observe the results in the Traffic Logs tab.

Exporting Evidence

  1. Navigate to the Logs tab.
  2. Tap the Download icon in the top bar.
  3. Find the file MeterProbe_log_<timestamp>.txt in your device's Downloads folder.

Safety & Compliance

  • Zero Automatic Writes: Not even upon connection. All writes are user-initiated.
  • Confirmation Requirement: Every write triggers an AlertDialog to prevent accidental commands.
  • GATT Queueing: Implements a serial queue for all operations to prevent GATT concurrency errors (Error 133).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages