X10
Troubleshooting:
Fixing a 40 year old
technology in the year 2022
Spoiler alert: It's the
"Signal-Suckers"
More X10: the Heat
pump problem solved
X10: On again, Off
again
In 2019, I finally gave
up on X10. My house has several lamps in the living room, and for
years I used X10 to switch and dim them using an old plug-in X10
Mini Controller. I noticed that if modules were on the same power
phase (120V circuit) as the controller, then they worked OK. When
they were on the other leg, they never worked. I installed a
passive coupler near my power box to no avail. So I limited the
use to a single circuit and used a power strip to plug in 5 or 6
modules. Moving modules to other parts of my house just did not
work.
Since my X10 system was barely working on one circuit, I was
reluctant to add RF control to the system. Never mind PC or
timer control. Adding more comms channels could only make the
reliability worse was my (flawed) thinking.
Then in 2019 we installed a new AC / Heat pump unit for the house.
X10 stopped working completely when the heat pump was on! You can
imagine that my wife soon tired of "Hey honey, could you please
turn off the heat so I can turn on the lights". I found this 5
circuit, $25 light control system on Amazon and removed all
my X10 hardware. This worked fine for 4 years. But only 5
circuits and no dimming was a step backwards from the good-old X10
days...
I investigated several WiFi solutions, and none were as simple,
convenient, cheap, or reliable as a little button box to switch
lights on and off. For me, the WiFi killer was the lack of a
small, multiple-circuit button box like the X10 HR12A or even the
old MC460.
I am reluctant to buy WiFi light bulbs. Light bulbs should be
cheap and disposable. Having a WiFi controller and dimmer in a
light bulb is just wrong to me. If you want dimming, use a dimable
light bulb and a separate dimable controller. When the bulb or its
power supply go bad as they inevitably will, you want to dispose
of as little electronics as possible. Yeah, I know I'll never get
color light bulbs with that thinking...
Now that I'm retired, I had some time to investigate the X10
problems that have always bugged me. I'm an EE, this shouldn't be
so hard of a problem. I looked at commercial X10 signal tracers
and decided they were expensive and limited. I wanted something
that would:
- Measure X10 signals
- Measure power-line
noise
- Help find noise
sources
- Help find "Signal
Suckers"
To investigate my issue
with X10, I built up a simple prototype X10 Signal Tracer. It
couples the 120KHz X10 signal, filters out the 60Hz power line,
and allows me to see the X10 raw signal and power line noise on my
oscilloscope. It can:
- Allow oscilloscope
to view and measure X10 signals
- View and measure
power line noise
- Safely isolate the
power line voltage
- High-pass filter to
reject 60 Hz and harmonics
- Bandwidth about
10KHz to a couple of MHz
- Quick, cheap, and
easy to build.
- I want it NOW
I threw this circuit together with parts I had on hand using the
"Ready. Fire. Aim." approach to circuit design. I guessed that 10
turns per winding was about right for a 120KHz transformer. A
toroid would work, but I didn't have any small toroid cores. So I
used an old 1970's pot-core I had: Ferroxcube 2213, 3B7
ferrite, no gap. Any modern ferrite with Al of 4000-6000nH would
work. I had a 3 winding bobbin which allowed the 2 windings to be
separated, but a 2 winding bobbin would also work fine. I used
30AWG wire-wrap wire for the windings, figuring 2 layers of
wire-wrap wire insulation would easily withstand 120VAC plus power
line surges. I taped the core half's and bobbin together. The
transformer inductance is 460uH, which should be fine. I tested
the transformer frequency response using a function generator 1V
p-p sine wave, and a scope. I had some film caps, 0.022uF, 400VDC.
The circuit did an excellent job of isolating and reducing the AC
120VAC, 60 Hz. I started with a load resistor R1 of 1K.
499/510 ohms is better.
The response at 100KHz is very good. I measured the 20KHz response
and it was about 1/20 the 100KHz, so about -26db. There is a bit
of resonance, so it's not really a high-pass filter. So it doesn't
measure noise well, but does a good job at X10's 100KHz.
To scope the raw power line voltage, I just use a second scope
probe on the raw AC Line (in x10 mode. Confusing, huh). Not the
safest, but if I build this into a proper box, I'll add a voltage
divider and just BNC outputs so I won't have to mess with probes.
This is not a super-portable solution, but since modern scopes are
small, it's not so terrible to lug one around the house to make
some remote X10 measurements.
Here is a scope shot of X10 activity. This thing works great! This
test is in my lab, where I have 4 power strips (signal-suckers) on
2 outlets. X10 works within this room, but the signals are not
strong enough to pass to devices on the other phase. Note that at
this scale, the X10 bursts cannot be seen at all on the 120VAC
line. They are there, I promise. The test circuit is doing a fine
job of filteing out the 60Hz. Also note the spike and other low
level power line noise.
I was surprised to see three 1mS bursts per half-cycle, separated
by 1.7mS. All of my X10 sources do this. After a bit of head
scratching, I realized that this is to accommodate 3-phase power.
These 3 pulses line up with the zero-crossings of 3 phase 60Hz
power. I have searched and searched for an X10
specification, and found none. Where is a bloody X10 electrical
spec?
The signal above is about 500mV p-p. If you measure closer to the
X10 source, the signal is about 2V p-p.
A lot has changed
since the '70s
When X10 was designed in
the late 70's, a home probably had no electrical loads that used
switching power. Nowadays every wall wart, LED light bulb,TV, PC,
charger, and dozens of other devices contain switching power
supplies that operate between 40 and 200Khz. If they have a
(valid) CE or FCC sticker, they should be OK. It's a miracle that
X10 works at all. We do have CE testing, so thanks for that.
Unfortunately, for nearly every switcher, there is one or more X
safety rated capacitor across the line to filter the switching
noise. These act as "Signal Suckers". Their low impedance at 120
KHz reduces the X10 signal.
BTW I recently read the excellent The Art of
Electronics X Chapters which has a section on p477 on TVS
use in power strips, showing several power strip implementations.
I found that the main cause of my X10 loss is my numerous power
strips. I use several large 12 outlet strips, and each one has a
surge protector and filter. Here is a simplified schematic of such
a power strip. The basic, non-surge, 6 outlet power strips
generally have no filter or surge components.
X10 signals are carried on the line and neutral as "normal-mode"
signals. The common-mode choke is there to reduce common-mode
noise, and does not significantly reduce normal-mode
(differential) signal of X10. The X safety rated, across the line,
capacitor CX is the only component in the circuit that causes a
significant reduction in X10 signal. Here is a table of capacitor
impedance vs. capacitor values at 120 KHz, the X10 frequency,
calculated using Xc = -j / (2 * pi * 120KHz * C).
Capacitor
|
Impedance
at 120KHz
(-j Ohms)
|
25nF: |
53
|
50nF: |
26.6
|
100nF: |
13.3
|
200nF: |
6.6
|
500nF: |
2.6
|
1000nF: |
1.3
|
These are all low impedance values that will shunt X10 signals,
with the larger caps being particularly bad. My 1950's house has
several power strips, all wired in parallel, and all shunting the
X10 signal. To make it worse, any other devices with switching
power supplies have X capacitors which shunt the X10 signals. This
includes PCs, laser printers, TVs...
I measured a few power strip's capacitances. Any C meter can do
this by simply measuring the AC Line to Neutral, making sure the
power switch is ON. I used my DER DE-5000 LCR meter at 1KHz.
At 100KHz the values are generally lower. Here are a few power
strip X capacitance measurements. All "surge arrestor" power
strips have large X capacitors.
- Belkin, 12 outlet,
surge, 315nF
- Belkin, 12 outlet,
surge, 450 nF
- APC, 7 outlet,
surge, 460 nF
- Universal, 6
outlet, surge, Model 71645, 24nF
- Amazon Basics, 12
outlets, surge, Model S9NC01RB00, 932 nF
- Four different
6-outlet power strips, all < 1nF
Here are the capacitance
values of some office equipment I have:
- Brother color laser
printer, 553 nF
- Canon flatbed
scanner: 210 nF
I measured about 10
different switching power supplies from CUI, TDK, Meanwell, and
Condor, plus a few PC power supplies. They all measured between
500 and 1200nF. Any of these is a significant signal-sucker.
I measured a handful of small phone and USB chargers and they all
measure about 100pF. Apparently these do not contain large X
capacitors.
I removed the 470nF X cap from a Belkin power strip that powers
several X10 modules. X10 works better, but not on both sides of
the power line though. This was not a simple operation. Many power
strips are held together with one-way screws. You need to
push hard to get them out. I try to replace these with regular
phillips screws. Here is the Belkin strip I modified.
Here is the surge board with TVS covers removed. The 470 nF X-cap
is the large grey rectangle. There are 6 orange TVS and 3 blue
ones. Not sure how exactly they are wired.
Ready to re-install with the X-cap removed and the funky TVC
covers back in place.
FilterLinc
I added a FilterLinc X10
Filter, model 1626-10 to my Lab / Office Computer circuit. This
circuit is one of my worst Signal-Suckers with 2 power strips, a
PC, Laser printer, Scanner, Monitor, and a host of other stuff.
The results were excellent! X10 now works much better in the
office and and even couples to the other phase throughout the
house reasonably well. The X10 signals in his room and on this
circuit went from marginally visible to quite strong.
I opened the FilterLink and it has high quality components, a
proper fuse, and good construction. The design is a T- filter with
2 17 uH inductors and a considerable capacitor: 2.2uF. There are 2
capacitors bridging the inductors.
Conclusions
You can probably make X10
work. It will take work, since signal-suckers are everywhere.
If you can move some of your Signal-suckers to a non-X10 circuit,
good. The further they are away (in house wire length) from the
receivers, the better.
Try to replace large, filtered (surge) power strips with smaller,
unfiltered ones.
If not, signal-suckers can be plugged into filters such as
FilterLinc 1626-10 (10A) and 1626 (5A) or XPPF. Beware of running
XPPF at >3A. It has no protection for over-current and there
are stories of causing fires. Having a few FilterLinc's on hand is
probably good.
It's probably not practical or safe for normal humans to modify
their power strips to remove or reduce the X caps. Doing so
reduces their filtering and possible surge arresting effectiveness
a bit, but should have no other adverse effects. I did this on
only one strip that is my main X10 strip with 6 modules.
Definitely do NOT remove any X-Caps from any switching power
supplies. They are needed for noise and regulatory.
For phase coupling: use an active coupler or a separate RF
receiver on each leg. My experience is that the passive ones are
not very good.
Building a DIY X10
receiver??
All of the X10 receivers
in the various X10 modules use proprietary ICs and circuits. I've
build various frequency dependent de-modulators over the years.
How hard can this be? I considered building a modern X10
receiver using a combination of analog circuits and
microprocessor. It should be able to:
- Measure and quantify
line noise and X10 signal strength
- Decode all X10
commands
- Open hardware and
software using Arduino CPU
- Reasonably low cost
- Do both isolated and
non-isolated versions
- Be the front-end for
various controls: Relays, AC Light dimmers, DC light controls
The key is a good,
low-cost amplitude (AM) demodulator / detector for the 120KHz X10
pulses. I considered a few options for this:
- Basic diode
- Precision rectifier
- Integrated AM demod
(AD8361, 8361, etc.)
- Mixer / demod
(NE602 / SA602A)
- Synchronous demod
- Diode bridge
- CMOS Switch
(Tayloe demodulator)
- Analog Multiplier
I like the Tayloe
demodulator, It does frequency-dependent I-Q demodulation
nicely and lends itself to low-frequency operation:
- Uses a low-cost CMOS
4:1 analog mux such as 74hc4053
- I and Q outputs
filtered by simple capacitor or RC
- 120KHz I and Q
clocks can be 480KHz oscillator plus dual D flip-flop
- I and Q outputs then
filtered and digitized by slow (1mS) 10 bit ADC on Arduino
- Amplitude detect
uses simple Euclidean detection (square root of sum of the
squares of I and Q) in firmware
- X10 signal threshold
is set using baseline noise level
- Decoder uses time
filter by knowing when in the power line cycle the X10 signals
should appear
- This approach also
directly measures signal and noise levels
- Provisions for
serial port monitoring, and small (OLED) status display
An isolating
transformer can be fairly simple, consisting of a toroid core
with a reasonable number of turns of insulating wire. This can
be used for both receiving and transmitting x10.
Using an Arduino allows
fancier and better dimming control such as LED trailing-edge
dimmers. These use FETs instead of Triacs and allow better
control of LEDs. Here's a
video on these types of circuits. And another
Youtube. The circuit is more complex than a simple Triac dimmer,
but is more flexible. This could make possible X10 color lights,
12V lighting...
References
Here is another nerd's
x10 noise musings that I found useful:
https://coreyswrite.com/electronics/home-automation/need-x10-signal-reliability-some-thoughts/
Here is a nice list of X10 module schematics:
https://www.edcheung.com/automa/circuit.htm
Dave's Home Page
More X10: the Heat
pump problem solved
Last Updated: 4/10/2023