Yeah, never used ZCD before either, looked to be the perfect solution for this and a good excuse to play with it.

Problem with the ZCD and my signal is that the bus idles at 35VDC for "long" periods of time and swings +0/-6V from there, not +/-3V around 35VDC.

I figured I'd just slap a capacitor in series to remove the DC-bias and that did put "idle" at GND but then the resulting signal swings between GND and -6V instead of +/-3V so still no zero crossing. Adding a pullup outside of the series resistor sort of helped but made the zero crossing drift "upwards" during the "message". All in all it just didn't work relaibly.

Posted on EEVBlog on how to properly remove the DC-bias and was shot down in flames for selecting the ZCD for this application - which I guess was in order since it did in fact not work :-)

Comparator solution seems to work fine at the moment (these things now even has switchable hysteresis built in) but it has the drawback of being absolute level. For now it'll have to do, this is just an experiment at the moment.

Unfortunately I don't have the device providing the REAL signal so I kind of have to emulate/test as best as I can.

Thanks!