X10 Receiver

My first X10 unit was based on the design I found on the internet. The design had several drawbacks:

  • It used a coil that was very difficult to obtain
  • The design (PIC code) does not support the dim and bright functions
  • The triac drive is continuously. This makes driving inductive loads difficult and consumes to much power

In a period of about 2 years the original design changed to the one I’m using now. The receiving part (120kHz filter) was redesigned and does not use the coil anymore.
I based my (simple) designs on the 16F630 PIC. The PIC code was totally rewritten, to also support dim and bright functions, do a better X10 signal filtering and to drive the triac in such a way that also inductive loads could be handled. I added code to enable setting of house and unit code by means of X10 commands.
This basic design has been used for most of my X10 receivers. See some of my projects.

Here is the schematic of a triac dimmer with one button for local control:

Hardware details

  • The power supply

     Warning: the circuitry is connected directly to the mains power; do not build this unless you are absolutely sure what you are doing!!!!

    5 Volt is needed for the PIC controller. A simple "capacitor power supply" will do the job (see schematic). The current that is available (if using a .22uF capacitor), is about 14mA. Together with some electrolytic and ceramic capacitors a zener diode of 5.1V  "regulates" the voltage for the PIC processor. The resistor in series with C2 is limiting the inrush current, and the 1M resistor parallel to C2 un-charges the capacitor.

    • Varistor RV1 takes care of spikes on the mains power lines. 
    • C2 needs to be of high quality (X2).
    • The voltage rating of C2 has to be 400V (for 230V main supply).
  • The 50Hz input

     Th firmware is build for 50Hz input; for 60Hz countries the firmware has to be changed. A 4.7M resistor is directly connected to 2 inputs of the PIC. The internal diodes to GND and VCC take care of clamping the signal.

  • The 120kHz input filter

    The 120kHz X10 signal bursts have to be filtered from the main voltage. This is done by C4, C5, C8 and L1. The combination of C4 and C5 needs to be selected to form a 8.2nF capacitor (or as close as possible). If an oscilloscope and signal generator is available, the peak of the filter can be measured and should be as close as possible to 120kHz. The diodes D5 and D6 protect transistor Q2. Q2 amplifies the X10 signal, which is input to the PIC processor. Q2 should have a high gain (beta); a good candidate is the BC337/25. 

    • C8 needs to be of high quality (X2).
  •  The triac
    The Triac has to be a low gate current type. The  BTA12/600SW is a good choice. This is a so called "high commutation" type, that does not need a snubber network.To minimize power usage, the triac gate will be driven by short pulses.

  • The PIC processor

    The 16F630 is used as a processor.  It's a cheap, low power, 14 pins device with enough memory to use for X10 designs. The PIC has an internal clock of 4 MHz, which is calibrated at the factory. The source code (assembler code)  is available at the download page.