Tutorial.X10 History

Hide minor edits - Show changes to markup

September 02, 2013, at 02:59 AM by Tom Igoe -
September 02, 2013, at 02:58 AM by Tom Igoe -
Changed lines 51-52 from:

NOTE: I have no plans to develop this library further at this time. If you're looking for further developments, check out Doug Clinton's fork of creatrope's version.

to:

NOTE: I have no plans to develop this library further at this time. If you're looking for further developments, check out Doug Clinton's fork of creatrope's version.

Deleted lines 55-56:

NOTE: I have no plans to develop this library further at this time. If you're looking for further developments, check out Doug Clinton's fork of creatrope's version, at https://github.com/DougC/arduino-x10. If you are interested in going further with X10, Doug's repository is a good place to start.

September 02, 2013, at 02:57 AM by Tom Igoe -
Changed line 57 from:

If anyone's interested in helping to develop this library further, please contact me at tom.igoe at gmail.com

to:

NOTE: I have no plans to develop this library further at this time. If you're looking for further developments, check out Doug Clinton's fork of creatrope's version, at https://github.com/DougC/arduino-x10. If you are interested in going further with X10, Doug's repository is a good place to start.

January 22, 2013, at 05:50 PM by Tom Igoe -
Changed lines 49-50 from:

Version 0.4 is compatible with Arduino 1.0.1.

to:

Version 0.4 is compatible with Arduino 1.0.3.

NOTE: I have no plans to develop this library further at this time. If you're looking for further developments, check out Doug Clinton's fork of creatrope's version.

June 18, 2012, at 11:13 PM by Tom Igoe -
Changed lines 19-22 from:

x10 myHouse = x10.begin(8, 9, 10); // initializes X10 on pins 9 (zero crossing pin) and 10 (data pin); pin 8 would be rx pin, though rx is not yet implemented

Note: rxPin is declared for future use, when receive is implemented. As of now, you can use any value, and it won't reserve a pin

to:

x10 myHouse = x10.begin(8, 9, 10); // initializes X10 on pins 9 (zero crossing pin) and 10 (data pin)

Note: rxPin is declared for future use, when receive is implemented. As of now, you can use any value, and it won't reserve a pin. In the example above, 8 is just a placeholder until I get time to write the receive functions

June 18, 2012, at 11:12 PM by Tom Igoe -
Changed lines 17-18 from:

x10(int strLength) - initialize an instance of the X10 library on two digital pins. e.g.

to:

x10.begin(rxPin, txPin, zeroCrossingPin) - initialize an instance of the X10 library on three digital pins. e.g.

Added lines 21-22:

Note: rxPin is declared for future use, when receive is implemented. As of now, you can use any value, and it won't reserve a pin

June 18, 2012, at 11:11 PM by Tom Igoe -
Changed lines 19-20 from:

x10 myHouse = x10(9, 10); // initializes X10 on pins 9 (zero crossing pin) and 10 (data pin)

to:

x10 myHouse = x10.begin(8, 9, 10); // initializes X10 on pins 9 (zero crossing pin) and 10 (data pin); pin 8 would be rx pin, though rx is not yet implemented

June 17, 2012, at 03:56 PM by Tom Igoe -
Changed lines 11-19 from:

Download: X10.zip

To use, unzip it and copy the resulting folder, called TextString, into the lib/targets/libraries directory of your arduino application folder. Then re-start the Arduino application.

When you restart, you'll see a few warning messages in the debugger pane at the bottom of the program. You can ignore them.

As of version 0.3, here's what you can do:

to:

Download the library from GitHub

To use, unzip it and copy the resulting folder, called X10, into the libraries directory of your sketch folder (you may have to create the libraries directory if you've never installed a library before). Then re-start the Arduino application.

As of version 0.4, here's what you can do:

Deleted lines 26-31:

version(void) - get the library version. Since there will be more functions added, printing the version is a useful debugging tool when you get an error from a given function. Perhaps you're using an earlier version that doesn't feature the version you need! e.g.

Serial.println(myHouse.version());   // prints the version of the library 

Changed lines 47-48 from:

Version 0.3 is compatible with Arduino 0012.

to:

Version 0.4 is compatible with Arduino 1.0.1.

January 18, 2009, at 01:58 PM by Tom Igoe -
Changed lines 56-57 from:

Version 3 is compatible with Arduino 0012.

to:

Version 0.3 is compatible with Arduino 0012.

January 18, 2009, at 01:57 PM by Tom Igoe -
Changed lines 11-13 from:

Download: X10.zip Δ

to:

Download: X10.zip

Changed lines 18-19 from:

As of version 0.2, here's what you can do:

to:

As of version 0.3, here's what you can do:

Added lines 56-57:

Version 3 is compatible with Arduino 0012.

January 18, 2009, at 03:03 AM by Tom Igoe -
Changed lines 11-12 from:

Download: X10.zip

to:

Download: X10.zip Δ

June 20, 2007, at 05:23 PM by Tom Igoe -
Changed lines 19-22 from:

X10(int strLength) - initialize an instance of the X10 library on two digital pins. e.g.

X10 myHouse = X10(9, 10); // initializes X10 on pins 9 (zero crossing pin) and 10 (data pin)

to:

x10(int strLength) - initialize an instance of the X10 library on two digital pins. e.g.

x10 myHouse = x10(9, 10); // initializes X10 on pins 9 (zero crossing pin) and 10 (data pin)

June 20, 2007, at 05:22 PM by Tom Igoe -
Added lines 29-34:

version(void) - get the library version. Since there will be more functions added, printing the version is a useful debugging tool when you get an error from a given function. Perhaps you're using an earlier version that doesn't feature the version you need! e.g.

Serial.println(myHouse.version());   // prints the version of the library 

Deleted lines 56-61:

version(void) - get the library version. Since there will be more functions added, printing the version is a useful debugging tool when you get an error from a given function. Perhaps you're using an earlier version that doesn't feature the version you need! e.g.

Serial.println(myHouse.version());   // prints the version of the library 

June 20, 2007, at 05:21 PM by Tom Igoe -
Changed lines 9-10 from:

Attach: X10-schematic.jpg

to:
June 20, 2007, at 05:21 PM by Tom Igoe -
Changed lines 49-50 from:

For a full explanation of X10 and these codes, see this technote

to:

For a full explanation of X10 and these codes, see this technote

June 20, 2007, at 05:20 PM by Tom Igoe -
Changed lines 9-10 from:

Attach: X10.png

to:

Attach: X10-schematic.jpg

June 20, 2007, at 05:19 PM by Tom Igoe -
Changed lines 49-50 from:

For a full explanation of X10 and these codes, see

to:

For a full explanation of X10 and these codes, see this technote

June 20, 2007, at 05:18 PM by Tom Igoe -
Changed lines 3-4 from:

This library enables you to send and receive X10 commands from an Arduino module.

to:

This library enables you to send and receive X10 commands from an Arduino module. X10 is a synchronous serial protocol that travels over AC power lines, sending a bit every time the AC power crosses zero volts. It's used in home automation. You can find X10 controllers and devices at http://www.x10.com, http://www.smarthome.com, and more.

This library has been tested using the PL513 one-way X10 controller, and the TW523 two-way X10 controller. Both of these are essentially X10 modems, converting the 5V output of the Arduino into AC signals on the zero crossing.

To connect an Arduino to one of these modules, get a phone cable with an RJ-11 connector, and cut one end off. Then wire the pins as follows:

Attach: X10.png

Changed lines 49-50 from:
to:

For a full explanation of X10 and these codes, see

June 20, 2007, at 04:59 PM by Tom Igoe -
Added lines 1-52:

X10 Library

This library enables you to send and receive X10 commands from an Arduino module.

Download: X10.zip

To use, unzip it and copy the resulting folder, called TextString, into the lib/targets/libraries directory of your arduino application folder. Then re-start the Arduino application.

When you restart, you'll see a few warning messages in the debugger pane at the bottom of the program. You can ignore them.

As of version 0.2, here's what you can do:

X10(int strLength) - initialize an instance of the X10 library on two digital pins. e.g.

X10 myHouse = X10(9, 10); // initializes X10 on pins 9 (zero crossing pin) and 10 (data pin)

void write(byte houseCode, byte numberCode, int numRepeats) - Send an X10 message, e.g.

myHouse.write(A, ALL_LIGHTS_ON, 1);     // Turns on all lights in house code A

There are a number of constants added to make X10 easier. They are as follows:

  • A through F: house code values.
  • UNIT_1 through UNIT_16: unit code values
  • ALL_UNITS_OFF
  • ALL_LIGHTS_ON
  • ON
  • OFF
  • DIM
  • BRIGHT
  • ALL_LIGHTS_OFF
  • EXTENDED_CODE
  • HAIL_REQUEST
  • HAIL_ACKNOWLEDGE
  • PRE_SET_DIM
  • EXTENDED_DATA
  • STATUS_ON
  • STATUS_OFF
  • STATUS_REQUEST

version(void) - get the library version. Since there will be more functions added, printing the version is a useful debugging tool when you get an error from a given function. Perhaps you're using an earlier version that doesn't feature the version you need! e.g.

Serial.println(myHouse.version());   // prints the version of the library 


If anyone's interested in helping to develop this library further, please contact me at tom.igoe at gmail.com

Share