Correct, send data over the only two connections available, that are also providing power.

To give this a bit of flesh, imagine addressing your Low Voltage Yard lighting. Two wires existing all over the yard. They normally are supplied with 12 vac. Insert a control box between the transformer and the yard wire that has a rectifier and H-bridge that reverse the lines at intervals of either 5 kHz or 8.5kHz. The receiver has a bridge rectifier and cap for storage of power and taps the raw lines to collect intelligence. On model trains, address, speed, accessory control, etc, are communicated. The commercial systems and the spec have a method for limited feedback by current (load) pulsing the line for simple acknowledgment.

Since my use is not for controlling trains, but instead, yard lighting and such, I need to be able to get into the code and tweak. The only examples of code that I have found are asm and as you can imagine, very dependent on cycle counts for correct timing. I'm not sure that I can handle that reliably. If someone had already done it in PBP, I could look at and get some ideas. I'm pulling apart the .asm code now and trying to get my arms around it so that I can do it a bit easier. I may be able to leave the message collection in .asm, and just write around it, but first I have to get the interspersed (and carefully timed) "train" stuff out of it and get the pulse measurement and word collection back working.

My app uses Darrel's DT-ints to generate 8 channels of PWM. To mix that with watching for, and decoding 100us and 200us pulses is a lot. My path is to separate them on different PICS until I can get it working. Once that is running, I will look at a faster PIC or moving up the food chain.


Hope that gives everyone a better idea of what I'm trying to do. Looks like my chance to figure this out and have something to contribute.

Thanks
Bo