{ "@context":[ "https://www.w3.org/ns/activitystreams", {"Hashtag":"as:Hashtag"} ], "published":"2023-07-03T20:31:37.325Z", "attributedTo":"https://krall.sh/actors/evan", "to":["https://www.w3.org/ns/activitystreams#Public"], "cc":["https://krall.sh/actors/evan/followers"], "content":"

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.


https://github.com/EvanKrall/raspberrypi-linux/commit/354e1a71079559d1b2cded459980322dfb2adcc5

https://github.com/EvanKrall/pwm_serial_analyzer

", "mediaType":"text/html", "attachment":[{"url":"https://krall.sh/uploads/6f2a4fdb/c675/499e/1.png","mediaType":"image/png"}], "type":"Note", "id":"https://krall.sh/objects/5I_ohxlezzY" }