This weekend I wrote two decoders for TI's HDQ protocol -- one in the Linux kernel for my pipad project, and one as an analyzer plug-in for Saleae Logic so I could debug the first one.

The kernel implementation is kinda janky, but the Logic plugin is pretty decent. It's actually a generic PWM serial decoder -- should handle any simple serial protocol where the value of the bit is encoded by the length of a pulse.

Screenshot of the Saleae Logic 2 program with my analyzer plugin enabled. Squiggly lines represent the logic level (high or low voltage), and text bubbles above each group of 8 bits show the decoded value.