Hi all! Not sure how interesting this will be to everyone, but I've been working on an X10-related project for fun and thought I might do a writeup of my progress here. Let me know what you think!
Elevator PitchIt's a Raspberry Pi hat that interfaces to the RPi using I²C and to X10 using a TW523 (or similar device), as well as a Python library that can be used to interface to X10 using this hat (or alternatively a CM11A).
Current StatusFirmware for the PIC microcontroller on the hat is feature-complete (it also provides an extra UART!) and basic functionality is implemented in the Python library. Next objective is to make a PCB for the RPi hat.
Why Do This?A fair question, considering the existence of heyu and other open source X10 projects. Really, I just wanted to do it for my own home automation system, for fun, and to learn about the X10 protocol. If it is or becomes something that other people find useful, bonus.
Part of the rationale in interfacing to the RPi via I²C is because I plan to stack it with another RPi hat that uses the RPi's UART, thus interfacing using a CM11A was out, and I wanted a second UART to interface with a communicating thermostat that I hope to obtain.
Future PlansBesides making the PCB, I think it'd be cool to write an emulator so that the hat can be used with other X10 software that expects to be able to talk to a CM11A. Adding some manner of premade RPC server to the Python library would be useful as well.
CodeRPi Hat:
https://github.com/lampmerchant/tashtenhatPython Library:
https://github.com/lampmerchant/pyx10