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.
Excellent Work.
ReplyDeleteI need to control my Room lamp with Arduino so that i can turn that lamp on/off. Is it possible?
Thank you!
ReplyDeleteWhat 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.
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.
ReplyDeleteThanks,
Eddie
The "playground" article you wrote looks like it will be a big step in the right direction for my project. Thank you!
ReplyDeleteYou're most welcome.
ReplyDeleteGood to hear it helped!
I cannot get the example on the playground to work using the cm11a. Any suggestions?
ReplyDeleteI think it only works with a CM17A.
ReplyDeleteThanks for this information and supported libraries. Were you able to determine the codes for all lights on / off? Of course, I could loop through and do it manually for the range I use, but wondering if there is a single command that all units respond to.
ReplyDeleteI believe there is a command for all on and all off. But frankly it's been years since I worked on this. I didn't need these commands so I probably didn't include them.
ReplyDeleteAs a start, look in X10Firecracker.cpp at
prog_uint16_t cmndCode[] PROGMEM = {
Then if look at the CM17A documentation you should find the commands to add to that section. (If I'm not mistaken ;-)
Good luck with your project.
John
Thanks for the reply and tip. I've got it all working nicely now, with the arduino backend web server accepting string tokens via the URL to dynamically send any house, unit, and action commands to it for processing, making it nice and easy to add / remove outlets / modules w/o having to modify the compiled sketch going forward.
DeleteIf I get a chance, for fun, I'll post a little demo, so you can see how others have benefited from your initial work. Thanks again.
Cheers.
Good to hear. I'd be happy to link to it here if you do.
ReplyDeletequeria fazer controle dos x10 pelo arduino usando um website alguma dica de interface entre x10 e arduino??
ReplyDeleteIt doesn't look like you are trying very hard to find the answer - but maybe http://brohogan.blogspot.com/search/label/CM17A
ReplyDeletewill help.