I would like to implement in my home a kind of notification system to make calls between rooms, either by designing it myself or by finding an existing design. Basic idea is that there will be several terminal devices (below called “terminals”) A, B, C, D, ... at different places. Each terminal will have separate button for every other terminal (so for example terminal A will have buttons “B”, “C”, “D” and so on), separate LED for every other terminal (thus terminal A will have LEDs “B”, “C”, “D” and so on), and one bell (like usual electric doorbell). The buttons will be used to make calls, and the LEDs will indicate the caller.
How it should work
Suppose Alice (who is currently near terminal A) would like to call Bob (who is currently near terminal B). Then Alice pushes button “B” on the terminal device A. As a result, the LED marked “A” lights up on the terminal B, and the bell on the terminal B rings. Terminals C, D, etc. stay quiet. Bob hears the bell and sees the LED and goes to terminal A to look/ask what happened.Further elaboration
There will be at most 16 terminals and at least 5 terminals.
Instead of multiple LEDs there might be one or two seven-segment displays on every terminal, to show caller’s ID.
Optionally, there will be also button "call all other terminals at once", e.g. to call B, C, D etc. from A simultaneously. This (as well as other optional features) will largely depend on whether it simplifies or complicates things.Wires
All terminals will be powered from single power supply (instead of having batteries in every terminal), thus at least two wires will go through all terminals (Vcc and GND). Depending on schematics, third power wire might be needed. Further, low-frequency wire-based communication is preferred over high-frequency wireless communication for several reasons, including lack of experience with radio frequencies. Up to 8 additional wires for communication (i.e. not counting power wires) should be acceptable, with all cables meeting at single point (the location of power source). Alternatively, there might be additional mediating device which is connected to every terminal.Simultaneous calls
There may be problem if two calls are made simultaneously from different terminals. This can be mitigated by locking terminals B, C, D once terminal A is activated, and unlocking them back once A is deactivated. Anyway, this issue can be ignored completely, assuming that any combination of simultaneous calls will not destroy the circuitry.Design
I have a (still rough, no schematic yet) idea of how to accomplish the above project with general-purpose hard logic (gates, counters, encoders, decoders). Each terminal might send two bursts of impulses, one burst encoding caller, another burst encoding receiver. One or two communication wires might be enough. This seems to be nontrivial but viable. Perhaps I will have to find someone to review my schematics before trying to implement it.
However, I have strong feeling that this or similar problem is already solved and implemented in some specialized integrated circuits or electronic modules that can be just plugged in with minimal/moderate additions. I'm unsure how to search for such a solution, though, as well as whether the cost will be viable for me. My attempts at “multidirectional doorbell”, "home notification system" and several other queries did not provide anything relevant.
Maybe remote controls might be repurposed into terminals (calling part), with different commands for different receivers and different protocols for different callers, but then either every receiver must be able to understand all callers (multiple receiving modules in every terminal?), or there must be at least 20 different commands supported by remote control (to cover 5 terminals) to 240 different supported commands (to cover 16 terminals). I did not investigate the idea with remote controls closely, though.Question(s)
Can you point to an existing solution with multiple "peer" terminal devices which is primarily intended for making simple non-voice notifications? Or to any ideas of how this might be implemented? Or to existing places on the web where the same thing is discussed under different name / in different setting? Are there existing solutions to other problems (like remote controls) which could be adapted for this purpose?
Please note that I will not accept answers suggesting programmable chips/microcontrollers/anything which must be programmed, even if this will really simplify remainder of circuit. (I am not saying such answers will be totally useless, since other people with different skills may have the same problem! Also, a few jumpers or micro-switches inside every terminal device to assign unique IDs to terminals are acceptable, even though this can be considered 'programming'.)
If nothing else, I will try using gates and counters. Even if the whole thing will turn out infeasible for me at this point, I'll still be glad to know what are existing possibilities.
Any input is welcome!