UPB home automation system clone

Arpad Toth has released the results of three years of research on the Universal Powerline Bus (UPB) home automation system. This system is widely used in Europe for control of home lighting and other applicances and appears similar to the X10 systems. Arpad’s article titled “Cloning the UPB home automation system” details the reverse engineering of the device’s hardware and firmware and his construction of a homebrew control unit.

Manufacturer’s documentation on the UPB can be found in this 68 page PDF.

Via the contact form.

Join the Conversation


  1. What an amazing work !!!
    I work on PLCBUS chip module 201071 from SSSE electronic since 2 years and I didn’t have joy to communicate in I2C with it…
    This is an OEM solution, and I started to build a prototype…
    I have a question : how did you make all this measures because ground is on neutraal…and oscilloscope doesn’t like that… Have you an isolation transformer ?? differential probes ??
    Hope you will answer me

  2. Thanks !! I already had DS version 2.10, not very clear….
    You simulated with PSPICE ?

    In fact open solution is easier to debug than 201071 module !!!

  3. I used multisim, but stick with the suggested schematic (from the datasheet).
    Plcbus uses X10 like protocol, it’s easier.

    Try to read from one of the registers mentioned in the datasheet with I2C.
    If that doesnt work either, you might have a defected IC.

    Unfortunately chines english is not perfect:D

  4. Hello,

    i am try to communicate over I2c to the plcbus module, but nothing is happend. Have an Logic analyzer but i cannot see my addresses? But the Module isn’t defected while i can see action on the analyzer. Please can anyboby help me? I don’t know is it slave or multimaster working, too.



  5. Hello,
    Are you working with PLCBUS 201071 ??
    If yes, module is slave I2C in a time window from zero crossing + 1.8ms to zero crossing + 1.8ms + 2.5ms only !
    So be careful, if you try to communicate outside this time window, module is I2C master !!!
    Second, you need to put resistors to I2C lines of module…they are open drain, and the datasheet is wrong !!! no inside resistors on these pins
    Good luck

  6. Thank you very much……

    You don’t know what you are doing with this. You are my rescue!!!

    Slave even outside of zero cross master!!! Yes this is logic!!!

    Have you do working it??


    when i get action, i will tell you…. Thanks so much. You are the one and only that could helped me!!


  7. i had contact few times 2 years ago…with SSSE, le rest is one year of searching with tests, logic analyzer, digital scope, and a lot of patience !!!
    No chance to join them now…
    ;-((( they won’t give anything anymore

  8. And I think the best way is to inspire of amazing work done by mrx23dot !!! to leave plcbus module for OEM solution…better, to define how it works, it’s code in a microcontroller, we have hardware soon (thanks again mrx23dot !!!).
    PLCBUS is the french more simple adaptation of UPB, made for USA and UK 60 Hz , so quite easy to use, well documentated protocol.

  9. Hello, and thank you for your answers.

    I have tried to get an action on the Analyzer with the Zero Cross Detection and TMR1 from UPB Clone. But when i read at the analyzer, it isn’t to see. Only the Masterfunction of PLC i can see on the analyzer. Had tested my zerocrossdetect and its just fine. But i Think my I2C dosen’t run in the ┬ÁC. Have an Atmega8. Can you help me with an code example ? Please.

    Thank you for your reading.



  10. Hello,

    i have found my fault. My zero cross detection doesn’t start my TMR1 Timer on the atmega8. I have taken the C- Sources from mrx23dot. But this don’t start them. At my shematic, i have an 330K resistor at the ZeroCrossing Input. But when i place a Port at the end of the five Sample Trigger, i can see on my analyzer the signal that are confused. it means that the signal is not continous. at the first it is a signal of 10ms, then it came a signal of 1ms and then a signal of 30ms. But i don’t know why?

    Please can you help me.



  11. Hello,
    Sorry I don’t “speak” C….
    Have you a debug tool ?? like AVR JTAG ICE mkII or something like that to trace your code ??
    Very useful…

  12. Thank you for your answer. You don’t use C? But how you are doing your zerocross? With Bascom or another program? at the night, i have tested the zerocrosscode from mrx23dot. But i had seen only confused pulses on the analyzer. i had tried to disable the samplenumber and then the pulses are better before!?! can you tell me why? The input before INT1 i have seen very clear on the analyzer. but when the signal would be get manipulate by the code, it is getting very bad!!!!???!!

    do you have an idea?



Leave a comment

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.