I'm working on adding AGC to the XTB-II TW523 emulation mode. The XTB-II fully error checks all incoming messages, and sufficient noise can cause messages to be rejected. Since the XTB-II can recognize X10 signals down to the sub 10 mV region, continuous background noise can be a problem.
All X10 data is transmitted with its compliment. Only half the sample windows should contain a X10 signal burst (neglecting the 1110 start pattern). So a simple means of detecting noise is to look for pulses in every sample window. More than a couple of counts (caused by random glitches) in every window would mean the presence of background noise, and the sample threshold should be increased.
This appears to work well in an X10 environment. However, Insteon transmissions will cause a problem. They appear as noise to X10 because they appear in every X10 sample window. Once the Insteon signal goes away, the threshold will recover. However, a low-level X10 command closely following an Insteon command could be missed.
There are a couple of ways to deal with this, and I'd like your opinions. One is to speed up the recovery rate so the threshold decreases more rapidly. Another is to sample for noise at a position other than where the Insteon signal can appear. Unfortunately, that means noise appearing in the X10 sample window would be ignored. Or, maybe this won't be a problem at all, and can be ignored. Comments?