Originally written and posted 2 June 2001.
Content last modified Tuesday, 16 March 2021 .
External links last verified Friday, 8 June 2016.

CP290 home control interface

CP290 Home Automation Interface

There has been a great deal written about the CP290, including modifications to improve clock timekeeping and the like. It used to be possible to visit the Home Automation Knowledge Base (Dead Link, remaining here in case it gets revived, and for archive searching) and ferret around there for most, if not all, of this useful information compiled by fellow X10ers. Sadly, with the demise of that site, you’ll have to do your own searching.

This page covers what i have to add to (or reiterate regarding) the CP290 saga.


This probably came from Ido Bartana’s site. Found it in my collection and it’s small enough to make available here.

Please Please Please download the following PDF file rather than repeatedly viewing it from this site (if your device supports downloading)! (This should happen automatically in most cases as long as you/your device and software are not doing anything to override forced downloads.) This will help keep my WWW hosting costs low, allowing me to keep this site free and ad-free and donation request free. Thank you!

CP290 schematic (PDF download)

Repair: Not Controlling Modules

Does your CP290 look like it’s happily sending out signals as usual (per its red LED), but nothing’s being controlled, or control is wildly intermittent, and you’ve eliminated powerline interference/weak signal issues as the source? I had this happen, more than once. One time, the CP290 suddenly stopped controlling anything, even modules plugged into the same duplex receptacle with it—total failure. Another time it was the same deal, except intermittently, sometimes it would work once in awhile.

Insufficient or No PLC Signal

Basic signal tracing showed that the PLC signal was OK on the collector of TR5, but not TR3. TR3 2SD667 had failed. Replacing it restored reliable operation.

PLC Signal Present, But Still Not Controlling

This was the case where once in awhile it still randomly worked. Things got even weirder when i looked at the PLC waveform: it was nice and strong and solid. What the heck was going on?!

By chance, when viewing the PLC waveform on the powerline kinda sorta sine wave, i noticed that the PLC signal was shifting its position on the A.C. waveform. Studying the schematic (CP290-3.pdf), i noticed a whole bit of extra circuitry not existing in most X10 controllers, with a connection labeled LSYNC. Studying the circuit—TR1, IC3, etc. etc.—i could see that this was a Line Sync signal output. Then i noticed that the C3 100µF 25V electrolytic capacitor was doing a lot of filtering to make some D.C. Put my sillyscope across it, and saw a lot of ugly unfiltered nastiness. This unfiltered noise was messing with the timing of the LSYNC signal, making it crawl all over the A.C. waveform instead of being where it was supposed to be. Replacing C3 very nicely cleaned up the waveform across it to something much closer to D.C., put the PLC signal back stably where it belonged on the A.C. waveform, and resolved the issue.

Please keep reading through the next section (or jump to Repair at the end), which leads to the reasonable idea that on these older devices it may be a good idea to replace all the power supply electrolytic capacitors.

Repair: CP290 Can’t Communicate with Computer

There are all kinds of possible problems between a CP290’s serial port and the host computer and software. This section assumes a configuration which has been working well for years, then suddenly stops working with no software/hardware changes.


Back Story

skip to final diagnosis

A couple of years ago, i started seeing:

The Interface isn’t responding on the modem port. Do you want to check the cables and try again or go into Demo mode?

Given that this was 20-year-old Macintosh hardware with OS 9.1, and this system had been problematic in other ways in recent years, i went through the usual things: checking that AppleTalk was truly Off (it was), resetting PRAM (didn’t help), carefully cleaning all the electrical contacts between the Mac’s serial port and the CP290 DIN jack (seemed to help one time but not another time). One time it worked after all this messing around, other times it didn’t.

Frustrated, i moved the CP290 to a whole other system with which i used to use it: a Mac Plus with an older (and, frankly, better in most ways) version of the X10 Home Control app. Same problem. I wanted access to the CP290 for the usual seasonal time change stupidity most U.S. states continue to undertake against most reason. This particular time i gave up and let the clock run an hour(+ drift) off until the next time change.

Finally with the Spring 2021 Daylight Stupid Time change, i’d had enough. After doing the Mac reset dance again, the interface connected, with Home Control telling me that all its content had been blanked out, even though that should not have been the case with a good battery in there. I OK’d that dialog and got the usual time set modal window. What caught my attention was without me doing anything, the interface time kept jumping from where it had been, to 12:00, then 12:xy, where xy were the correct minutes. The jumps would happen every few seconds in a random pattern, and there may have been other wrong times. I also noticed that at some points the top line showing the Mac’s internal clock time would pause for a number of seconds, which on the original Mac OS series means that there’s a lot of processing going on hanging things up for awhile. I went ahead and set the clock, then did a Self Test (came back OK), then set the house code, then sent events to the interface. All seemed to work well, but when i returned the interface to its usual location, the CP290’s top buttons failed to control anything. Pulling out a test module with a light bulb and plugging it into the other half of the same receptacle, i discovered that the interface was not set to the house code i chose, but to house code A (the default).

Final Diagnosis: Power Supply

Mulling over the years of problems and symptoms, especially the recent ones where at first the interface could not be reached by the software at all, then seemed to work but the clock was jumping around and it didn’t really work, reasonably enough i concluded that there must be trash on the serial port lines.

Knowing what i know about electronics in general and X10 products in particular, i didn’t even bother looking at waveforms on the serial port lines: i headed directly to the power supply. I found that the +18V supply was definitely not pure D.C., and the -18V supply was a right mess that looked like it had no capacitive filtering at all! Note that +18V is used for both the serial port and PLC waveform drive, so if it gets too weird the CP290 will fail to control modules. However the -18V supply is only used for the TXD line of the serial port, hence the rest of the CP290 can continue to work happily even when that power supply goes to trash or fails entirely. Also note that these power supplies are zener diode regulated only, hence more sensitive to filter capacitor degradation than the more heavily regulated +5V supply.


Replacing C4 and C5 in the power supply and verifying once replaced that both the +18V and -18V supplies had clean D.C. waveforms over a full range of possible line voltages cured the problem. The interface was seen right away with no messing around/delays, for the first time in years.

It is highly recommended to “shotgun” (replace all) CP290 power supply electrolytic capacitors C3-C7 on general principles when working on them for any reason, for reliable operation with minimal time lost to troubleshooting and repairing weird, possibly random and intermittent failures.

CP290 Alignment

To ensure successful alignment, please be sure to read important information common to all X10 alignment procedures before proceeding.

CPU Frequency Adjustment

I do not know what effect this would have on any external function, therefore i found no reason to adjust TC3, and left it as-shipped from the factory.

PLC Frequency Adjustment

  1. Unplug CP290 and remove the 3 under-foot screws and the one in the battery compartment holding the two body halves together.
  2. Position the unit in a fashion which allows easy adjustment of the two transformers which will be adjusted.
  3. Connect frequency counter to powerline signal sensor (not CP290). Power up counter and signal sensor, allow counter to stabilize.
  4. Short transistor TR5 base to emitter to allow the 120kHz oscillator to free-run.
  5. Connect CP290 to A.C. line.
  6. Adjust transformer TC2 for 120kHz.
  7. Unplug the CP290, powerline signal sensor, and disconnect the frequency counter. Leave the free-run short circuit in place.

PLC Output Amplitude Adjustment

  1. Move the CP290 to the location where it will be used. Bring along oscilloscope and powerline signal sensor; connect these to a separate circuit, or at least an electrically distant outlet on the same circuit.
  2. Set up oscilloscope and powerline signal sensor to monitor the A.C. line.
  3. Connect CP290 directly to the A.C. line.
  4. Adjust transformer TC1 for maximum 120kHz signal amplitude. This is likely to be a broad, “low-Q” peak.
  5. Unplug/disconnect all. Remove the B-E short on TR5.
  6. Connect CP290 to computer and A.C. line. Run self-test. Reload programming. Test for normal operation.
  7. Unplug and reassemble CP290.
Questions/comments may be addressed to: Sonic Purity