Receive TM1651 serial data in esphome

Hi all. I’m trying to interact with a pool heater which conveniently has a control panel that is hooked up using a connector to the actual controller. I want to wifi-enable this thing to control it (of course).

I’ve devised that the connector has pins for power, pins for controlling a TM1651 chip (to drive some LEDs with symbols) and a pin for a beeper and a small LED.

How would I approach making an esphome config and/or custom component that can receive and read these TM1651 signals? It’s a two-line bus with a clock and a data line, and each time the clock goes HIGH, you can read a bit of the data line. Once enough data is read, you can determine commands, messages and so on (full protocol in datasheets).

I imagine esphome in the end will be able to provide a sensor with some events being triggered for on_message or on_character… but that’s for later.

I couldn’t immediately identify an existing sensor that achieves the same or similar. I found a TM16xx component that can write to a chip, but none that can read. Likewise I haven’t found any other component built up of a data and a clock line that I could peek at :/. If there was a component that could be configured to read from the data line at every clock HIGH, and emit a byte every ACK (as I read it the TM1651 pulls the data line low … somehow) it would be great as a starting block for this project :slight_smile:

Hope someone can help.