Wednesday, May 20, 2009

The CM17A and Arduino

My first X10 project was to create an interface between the Arduino and the CM17A (aka "Firecracker"). The CM17A is a dongle that wirelessly (RF) sends X10 commands to X10 RF receivers. The receivers then send signals down the house wiring to control lights and appliances.

After many hours of Googling, I could not find any examples of an interface other than some written in assembler. However, I did find lots of good information about the protocol that is used to talk to the CM17A. With that I was able to write a small program ("sketch") that demonstrates how to have the Arduino talk to the CM17A. I wrote up an article with the explanation and example and posted it on the Arduino Playground here. It should tell you all you need to know.
I made a short video of a simple example where a TV remote is used to have the CM17A send X10 commands to a light.




Don't let the custom boards and led matrix scare you. There are much simpler ways to use the CM17A with Arduino. In a future post I will describe how it can be used to send the temperature to a home made X10 Controller.

7 comments:

  1. Excellent Work.
    I need to control my Room lamp with Arduino so that i can turn that lamp on/off. Is it possible?

    ReplyDelete
  2. Thank you!
    What you want to do is totally possible.
    The link to the "Playground" article in the post above will give you all you need to interface the Arduino to the Firecracker. In fact since I wrote it, someone made an library out of it.
    Then all you need is an X10 RF receiver like the TM751.
    (If you don't want to dim, you can plug the lamp directly into the TM751 - otherwise you need a lamp module too.)
    Good luck on your project.

    ReplyDelete
  3. Brilliant hacking. I have a X10 CM11A which I am thinking to control with an Arduino. Unfortunately I don't have a CM17A but might grab one since I've seen your success. The CM11A has a serial DB9 connection which is normally controlled by a PC. I am curious if the same protocol will work with this X10 controller. It seems logical since the the X10 Windows program is designed to control the CM11A and the CM17A.. hmm.... I guess I'll try it.

    Thanks,

    Eddie

    ReplyDelete
  4. The "playground" article you wrote looks like it will be a big step in the right direction for my project. Thank you!

    ReplyDelete
  5. You're most welcome.
    Good to hear it helped!

    ReplyDelete
  6. I cannot get the example on the playground to work using the cm11a. Any suggestions?

    ReplyDelete
  7. I think it only works with a CM17A.

    ReplyDelete