I have an 8VAC (can be switched to 12VAC if required) pushbutton bell which is in series with two "ding dong" chimes. The button is illuminated with an incandescent bulb, also in series. Pushing the bell "short circuits" (and so puts out) the bulb, causing the chime hammers to pull back for a ding - releasing the button swings them back for the dong.

I want to smarten this system. To make it as flexible as possible, the idea is to split the sensing of the button from the firing of the chime (controlled with an esp32 or whatever), ie keep the two circuits separate and link them via software as required. I have been advised to use triacs and drivers to control the AC chime circuit and am exploring that idea separately.

Detecting the illuminated button seems a little trickier to do. A similar question on this site suggests using a current sensor which seems an elegant solution, however the circuit there is a regular open/closed one, with the chimes still in series:

Doorbell Press for MCU

  1. Since my button circuit is always closed (for the bulb to illuminate), current is always flowing. Can such a sensor be made to work here? Even though there is always current flowing, I presume the current changes when the button is pushed and that's what I would aim to detect with the sensor.
  2. I understand that that chimes are necessary in the original circuit to provide some load. Since they're no longer in series with the button, would I need to replace them with resistors or something?
  3. If we assume the micro-controller can provide 5V, would it be a better idea to convert the button circuit to a DC one connected to a GPIO pin? I'll still have a closed circuit at all times, so I'm not sure this actually solves anything - unless the low current when the button isn't pressed can be made to be seen as a LOW on the pin somehow? The ESP32 for instance has an ADC pin that can read varying voltages along with this: http://www.vwlowen.co.uk/arduino/current/current.htm

Just use an ordinary relay, whose coil is rated for the 8 or 12 VAC of the chime — but won't pull in on the amount of current the bulb uses — and connect its coil in place of the chime coil. Now you have an independent contact closure you can use any way you like.

  • 2
    \$\begingroup\$ And a big bonus, you don't have to deal with the difficulties of connecting a 100 foot wire to an ESP, dealing with impulses, RFI, lightning etc. Lots of work to make that safe and reliable. \$\endgroup\$ – tomnexus Jun 11 '19 at 16:12
  • \$\begingroup\$ The relay would be best placed in parallel with the chime solenoid (or a replacement R value), and it's current rating has almost nothing to do with the current drawn by the button light (incandescent or LED). If the chime is currently working on 8VAC, the OP simply needs an AC relay, but that is a challenge. It would be best to use a DC relay, and all you need is a very cheap 12VDC Reed relay. \$\endgroup\$ – Jack Creasey Jun 11 '19 at 21:22
  • \$\begingroup\$ @JackCreasey: Reread the question. The OP wants to make the chime operation independent of the button. \$\endgroup\$ – Dave Tweed Jun 11 '19 at 21:24
  • \$\begingroup\$ I read the question. \$\endgroup\$ – Jack Creasey Jun 11 '19 at 21:25
  • \$\begingroup\$ The relays I have handy are srd-05vdc-sl-c with optocouplers (like seen here: techydiy.org/opto-isolated-dual-relay-module-arduino). I suspect the ratings on the relay focus more on the switched circuit than the controlling side. Would these work, and if not how can I choose an appropriate relay? \$\endgroup\$ – Spammy Jun 12 '19 at 11:02

Adding an MCU to a Ding-Dong chime doorbell

The circuit is likely like this currently:


simulate this circuit – Schematic created using CircuitLab

The Reed relay can be almost any 5-12VDC low current unit such as LittleFuse HE3621A1200.
This operates from 12V to 22V without problems, and the 8V supply when rectified would give about 9-10V DC, more than enough to ensure it activates.
Note: Be aware that this particular Reed Relay has an inbuilt diode, so Pin2 must be positive. Many Reed relays do not have the inbuilt diode so are not polarity sensitive.

enter image description here

If you want to drive the original Ding-Dong solenoid you could use a MOC3021 or similar as an isolated driver.
If you want to continue using the chime as well you can eliminate R1 and put the chime solenoid in place of it.

Update: The transformer produces 8VAC and this is fed to two completely separate circuits:

  1. The button circuit.
  2. The Chime circuit.

The two circuits do not interact at all, The only way to activate the chime solenoid is to turn on the MOC3021. I only showed a partial circuit above assuming you'd understand (silly me). The chime would be driven as shown below using a MOC3021 or MOC3023:


simulate this circuit

It is worth noting that the 8V AC from the bell transformer could also be used to power the ESP32, but you'd have to be able to read the transformer rating to decide if this was possible.

  • \$\begingroup\$ Thank you for the comprehensive reply. I wasn't clear in the op but by isolating the chime and button circuits I would be able to "mute" the chime when the button is pressed (as well as act on the button/fire the chime programmatically). I don't think this circuit would allow that? Also I strongly prefer things I understand and your solution slightly made my brain melt ;) \$\endgroup\$ – Spammy Jun 12 '19 at 10:45
  • \$\begingroup\$ Yes the, circuit above will allow the chime to be fired programmatically via the MOC3021. @DaveTweeds answer tried to do the same, but required an AC relay (very very hard to get unless quite physically large) and would still require the chime solenoid be replaced by a resistor of appropriate value. \$\endgroup\$ – Jack Creasey Jun 12 '19 at 14:39
  • \$\begingroup\$ But won't the chime also always fire with the button? We'd want to be able to "mute" the chime without losing the ability to detect the button. \$\endgroup\$ – Spammy Jun 12 '19 at 15:09
  • \$\begingroup\$ No, the chime can only 'chime' if the MOC3021 is turned on in the circuit above. \$\endgroup\$ – Jack Creasey Jun 12 '19 at 15:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.