Overengineering A Smart Doorbell

Fresh from the mediaeval splendour of the Belgian city of Gent, we bring you more from the Newline hacker conference organised by Hackerspace Gent. [Victor Sonck] works at the top of his house, and thus needed a doorbell notifier. His solution was unexpected, and as he admits over engineered, using machine learning on an audio stream from a microphone to detect the doorbell’s sound.

Having established that selling his soul to Amazon with a Ring doorbell wasn’t an appropriate solution, he next looked at his existing doorbell. Some of us might connect directly to its power to sense when the button was pressed, but we’re kinda glad he went for the overengineered route because it means we are treated to a run-down how machine learning works and how it can be applied to audio. The end result can sometimes be triggered by a spoon hitting a cereal plate, but since he was able to demonstrate it working we think it can be called a success. Should you wish to dive in further you can find more in his GitHub repository.

How would you overengineer a doorbell? Use GNU radio and filters? Or maybe a Rube Goldberg machine involving string and pulleys? As always, the comments are open.

Header image: © Raimond Spekking / CC BY-SA 4.0.

19 thoughts on “Overengineering A Smart Doorbell

  1. If it’s the old style of bell with the interrupting contacts, an AM radio would be an easy way to detect it operating. Could base the detection on a crystal radio placed as close to the bell as possible in order to make it resistant to other sources of EMI.

    1. I just wonder, if the magnet coils give any kind of useful resonance to narrow don the emitted spectrum. I preferred the other way: wire a bridge rectifier and the transmitter of a wireless doorbell in parallel. That gives a very defined radio signal. But in my case there would not have been any spark gap transmitter as it was an AC operated buzzer.

  2. I think I still use the same rectifier-attached-to-a-relay in my apartment today that I have been using back in the nineties when I was still living with my parents. Only thing that changed was the controller attached to the relay’s switch contacts. Suppose I’m boring :-D

    1. Similar to B, a reed switch should be triggered by the bell’s electromagnet. You can usually just slap down a wireless door/window sensor right next to it and trigger your notification/other automations from that.

  3. Replace the doorbell button with a momentary DPDT button. Connect your doorbell through one circuit on the new button. Connect whatever you want to the other circuit to detect button presses. You can even siphon power off the doorbell line to power the button detecting circuit. Keep it in sleep mode until a button is pressed, and then have it wake up and phone home.

  4. I just went to the low tech extreme: P2P (People To People): last month I disconnected the doorbell, been bored to be disturbed early in the morning by Jehovah’s witnesses, or sales representatives …
    As I mainly live in my garden, when I am “available” people can directly talk to me. If I’m not in my garden, I am not available at all :)

  5. My new house came with a wireless doorbell. It could play one of 32 tunes, all of them horrible, and the receiver looked like a bottle of roll-on deodorant. It also had a fairly bright blue LED that blinked every few seconds to show that it was ready to shock you with a bad MIDI rendering of Santa Claus is Coming to Town.

    The PCB contained a radio receiver (nRF thing), a PIC, and an epoxy blob on a separate board that had the speakers connected. So it was quite easy to figure out how the PIC activated the epoxy blob, rehouse it in a simple wooden box, and attach a DRF Mini MP3 module. It now plays the sound of a doorbell ringing (off a 4GB SD card…) and it doesn’t blink. Oh, and it uses USB power because the MP3 player chews through three AAs in about a week.

  6. Why would you risk not receving your amazon package because raspberry crashed?
    Binary Hall sensor is lot more reliable if isolation is needed.
    If high tech is used I would add a camera to ignore it zombies are ringing.

  7. In about year 2000 I made a sampled sound doorbell. no micro, a 4mbit eprom, 3 counters, 16 resistors for r2r dac, tda7052 audio amp. it has a choice of 4 samples 13 seconds each. pcb is 30cm x 70mm and completely through-hole (be kind, I made it over 20 years ago!). When a visitor presses the button power is applied, this is held on by pnp+npn transistors, this is tied to the “top bit” of the counter. This latches the circuit on and after the sample has played it switches off. zero current at standby! I have just changed the first set of 4 alkaline AA cells, they were best before june 2005!

  8. So many ways here. Straightforward would be to grab the switched power from the momentary switch along the way somewhere. You could put a CT around one of the wires, I loved someone elses suggestion of using SDR to detect the AM signal generated by the oscillation of the bell magnet/striker. I can’t help but think the ultimate would be to stick a camera up and use ML to detect people if going down the ML route.

  9. I also had a Ring doorbell and was totally creeped out by what they were doing. I took it apart, threw away the CPU and that creepy code, added an FPGA and Raspberry Pi with camera to drive the Ring’s LED driver, motion sensors, and doorbell button, etc and interfaced to my home automation RS485 interface so it would play a custom doorbell sound over the home intercom. Logs every event in flash and displays all kinds of information on a web server. Has worked for two years without a hitch…

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.