Protocol Analyzer Support for HDQ (Single Wire Battery Monitor Protocol)

I would like to register a feature request for Saleae Logic 2 (or a plugin) to support the HDQ (single wire battery monitor) protocol. The HDQ protocol is widely used by TI’s Battery Fuel Gauge IC’s.

From HDQ Communication Basics:

HDQ communication between a host and slave device uses a single-wire, open-drain interface. The communication protocol is asynchronous return-to-one referenced to Vss. A passive pullup resistance is required to pull the HDQ line to a high state when neither the host nor the slave is pulling the line low during the two-way communication over the single wire interface. The interface uses a command-based protocol, where the host sends a command byte to the HDQ slave device. The command directs the slave either to store the next eight bits of data received to a register specified by the command byte (write command), or to output the eight bits of data from a register specified by the command byte (read command). Command and data bytes consist of a stream of bits that have a maximum transmission rate of 5 Kbits/s. The least-significant bit of a command or data byte is transmitted first. The first 7 bits of the command word are the register address and the last command bit transmitted is the read/write (R/W) bit.

Further documentation: HDQ Communication Basics for TI’s Battery Monitor ICs.

I have located a HDQ library on Github, which may be of help when implementing: GitHub - mozzwald/HDQLib: Texas Instruments HDQ implemenation for Arduino

If I get desperate to be able to have access to an analyzer, I may set aside the time to attempt to implement the analyzer myself, and will naturally update this issue with any progress/code.

@morten.hattesen Thanks for letting us know your need for this.

In case you get a solution working, I’d love to add your custom protocol analyzer to our list of community shared analyzers below!

We won’t be able to work on something like this anytime soon, however, I’ve added your feature request to our ideas page below, with a link back to this forum post.

For quick reference, our analyzer SDK for creating custom low-level analyzers in C++ can be found below.

Feel free to keep us updated on your progress!