Hello, I want to design a blinking LED module that can run stand-alone, but also synchronize with other identical modules over a single shared SYNC wire.
The behavior I’m trying to achieve is:
Each module has its own local oscillator that drives LEDs at about 0.7 Hz (≈1.4 s period).
When running alone, the module just uses this local 0.7 Hz oscillator to blink.
All modules are connected to a common SYNC line:
Each module should output a short pulse (around 10–20 ms) once per 0.7 Hz cycle on this SYNC line.
At the same time, each module should monitor the SYNC line.
If a module detects pulses from another module, it should phase-lock its own 0.7 Hz oscillator to those pulses, so that all modules end up blinking in sync.
There is no fixed master: whichever module happens to lead can temporarily act as the timing reference, and the others should follow. If that “master” disappears (powered off or disconnected), the remaining modules should continue blinking using their own oscillators (and re-establish sync among themselves).
The SYNC line is a single wire with a pull-up; each module needs to be able to both pull it low to generate a pulse and sense pulses generated by others.
What kind of circuit topology , synchronization scheme or IC is suitable for this?
How can I implement:
a local ~0.7 Hz oscillator, and
a mechanism to reset/adjust its phase based on pulses seen on the SYNC line, so that multiple modules converge to synchronized blinking?
A solution using discrete logic / op-amps / comparators or a small microcontroller is fine; I’m mainly interested in the synchronization method (e.g., edge-triggered reset, simple PLL-like scheme, monostable + RC oscillator alignment, etc.) and how to avoid bus contention on the single SYNC wire.





