RF-to-Notify: the IoT Bridge for Legacy Doorbells

by tolko in Circuits > Microcontrollers

248 Views, 4 Favorites, 0 Comments

RF-to-Notify: the IoT Bridge for Legacy Doorbells

the setUp.png

It’s a scene played out in backyards everywhere: the delivery driver presses the gate buzzer, the chime rings in the kitchen, but 50 meters away in the workshop, my father-in-law hears... absolutely nothing.

When I suggested a modern smart doorbell, the response was a firm 'No.' They like their button. They don't want a subscription. They just want it to work. So, I was left with a challenge: how do you modernize a legacy RF doorbell without actually replacing it?

Enter RF-to-Notify. By mounting a custom-built ESP32 'sniffer' on the house, I’ve bridged the gap between old-school radio waves and modern connectivity. Now, the legacy chimes still ring, but my father-in-law also gets an instant Telegram alert in his shed, and I get the satisfaction of a 'dumb' doorbell that’s suddenly the smartest sensor in the neighborhood. No batteries, no subscriptions—just pure IoT magic.

Supplies

1111.jpg

To build a bridge between a stubborn doorbell and a distant shed, you don't need a massive budget—just these four "diplomats" of the electronics world:

  1. The Brain: ESP32 Dev Module This is the "General" of the operation. It’s got the processing power to listen for RF signals while simultaneously running a Web UI and chatting with the Telegram servers over Wi-Fi. It’s the brain that turns a "dumb" radio pulse into a smart digital notification.
  2. The Super-Ear: CC1101 RF Transceiver While standard 433MHz receivers are okay, the CC1101 is the professional choice. It’s a high-performance "sniffer" that we can tune specifically to the frequency of the gate button. Think of it as the high-gain ear that hears the doorbell’s "shout" even when the walls are thick and the distance is long.
  3. The Diplomats: Premium Jumper Wires The colorful "spaghetti" that keeps the peace. These wires act as the nervous system, connecting our CC1101 "Ear" to the ESP32 "Brain." Pro tip: Use high-quality ones so you don't have to troubleshoot a loose connection while your father-in-law is waiting for his package!
  4. The Lifeblood: A Standard 5V Phone Charger By skipping batteries and plugging into a wall outlet with a simple micro-USB phone charger, we ensure the bridge never sleeps. No batteries for the parents to forget to change, and no "dead-on-arrival" signals when it matters most.
  5. The Armor: Custom 3D-Printed Enclosure Designed in Tinkercad, this isn't just a box—it’s the "uniform" that makes our bridge look like a professional piece of home security gear. It keeps the "Brain" and "Ear" safe from dust and curious hands, ensuring the jumper wires stay snug and the internal connections remain rock-solid. With precision cutouts for the antenna and the USB power cable, it turns a mess of electronics into a sleek, "Always-On" guardian for the house.

The Radio-Frequency Riddle: If You Can’t Crack It, Repeat It

the setUp.png

Every great project starts with a fail. During that fateful visit to the in-laws, the problem was obvious: the doorbell button at the gate was "shouting," but the receiver in the shed was too far away to hear it. My father-in-law was missing packages, and the house was in a state of "delivery-anxiety."

The obvious fix was an RF extender. But there was a catch—I had no idea what "language" their doorbell was speaking. Most budget doorbells use 433MHz or 868MHz, but their specific digital code (the "secret handshake") was a total mystery to me.

The "Brute Force" Breakthrough

Instead of spending weeks trying to decode a proprietary radio protocol, I decided to build a Protocol-Agnostic Repeater.

My bridge doesn't care if the doorbell is sending a simple pulse or a complex encrypted string. It acts like a digital megaphone: If it hears a signal on the frequency, it immediately re-broadcasts it. This ensured the shed receiver finally "heard" the gate, regardless of the brand or model of the doorbell.

Adding the "Intelligence": The Mark-and-Notify System

But re-transmitting everything was only half the battle. I didn't just want the shed to ring; I wanted a notification on my phone.

I developed a "Signal Sniffer" mode in the Web UI. Here’s how the logic works:

  1. The Observation: I open the Web UI and press the doorbell button.
  2. The Fingerprint: The ESP32 logs the raw data of that specific signal.
  3. The "Mark": In the dashboard, I "Mark" that specific signal as the Target.
  4. The Trigger: Now, whenever the bridge hears and re-translates that specific marked signal, it fires a command to the Telegram Bot API.

The result? The shed gets its boosted radio wave, and the father-in-law gets a "Ding!" on his phone. We didn't just extend a signal; we gave a legacy doorbell a digital brain.

The Connections

ccc222.jpg
ccc.png

This is where the "Signal" meets the "Brain." Wiring can often look like a plate of techno-spaghetti, but think of this step as laying the fiber-optic cable for your father-in-law’s peace of mind. We are connecting the CC1101 (The Ear) to the ESP32 (The Brain) using the SPI protocol—the universal language of high-speed hardware communication.

To ensure our bridge is rock-solid, follow this mapping. Using the CC1101 is a pro-move because it's much more stable than those cheap $1 receivers, but it requires a few more wires to "talk" to the ESP32 correctly.

Visualizing the Bridge (Wiring Schematic)


┌────────────────┐ ┌────────────────┐
│ CC1101 │ │ ESP32 │
│ (The Ear) │ │ (The Brain) │
├────────────────┤ ├────────────────┤
│ VCC ───────────┼────┼───── 3.3V │
│ GND ───────────┼────┼───── GND │
│ CSN ───────────┼────┼───── GPIO 5 │
│ SCK ───────────┼────┼───── GPIO 18 │
│ MOSI ──────────┼────┼───── GPIO 23 │
│ MISO ──────────┼────┼───── GPIO 19 │
│ GDO0 ──────────┼────┼───── GPIO 4 │
└────────────────┘ └────────────────┘

⚠️ The "Don't Fry It" Warning

Pro-Tip: The CC1101 is a sensitive soul. It operates at 3.3V ONLY. If you accidentally plug it into the 5V pin on your ESP32, you’ll be sending your "Ear" to an early retirement in a puff of smoke. Double-check your power rail before plugging in the USB!

A Note on the Jumper Wires

Since this device is "Always-On" and likely tucked away behind a cabinet or near a window, make sure your connections are snug. If a wire jiggles loose, the "Signal-to-Chat" bridge collapses, and we’re back to the father-in-law missing his packages. If you're feeling brave, a drop of hot glue or a bit of electrical tape on the pins will keep the peace for years to come.

The "Single-Command" Deployment

make.png

When I sat down at my father-in-law’s kitchen table to flash the ESP32, I didn't want to look like I was struggling. I wanted it to be fast, clean, and impressive. By using the repository I built, you can achieve the same "Expert" status.

Grab the Blueprint (Clone the Repo)

First, pull the code from the source of truth. Open your terminal and run:

Bash


git clone https://github.com/tlk0s/doorbellExtender.git
cd doorbellExtender

Tell the Bridge the Secrets

Before we "launch," we need to give the ESP32 the keys to the kingdom. Open the configuration file (usually config.h or .env, depending on your setup) and enter:

  1. WiFi Credentials: So the bridge can reach the internet.
  2. Telegram Bot Token: So the "Chat" part of the name actually works.
  3. Your Chat ID: So the bot knows exactly which phone to alert.

The "Magic" Command

This is the "Grand Prize" feature of the installation. Instead of manually installing the CC1101 libraries or the Web Server files, I’ve baked everything into a Makefile.

Plug your ESP32 into your laptop and type exactly one command:

Bash


make all

What just happened? While you take a sip of coffee, the Makefile is doing all the heavy lifting behind the scenes:

  1. Dependency Check: It ensures all the RF and Web libraries are present.
  2. Compilation: It turns the C++ code into a binary "brain" for the ESP32.
  3. Filesystem Upload: It pushes the HTML/CSS for that slick Web UI into the ESP32's flash memory.
  4. Firmware Flash: It installs the logic onto the chip.

A Note for the Curious Tinkerer: The "Secret Menu"

Before you close that terminal and head out to the shed to celebrate your new "Always-On" connection, here’s a pro-tip: Don’t be a stranger to the command line.

While make flash is the star of the show (the "One-Button Peace Treaty"), I’ve built a whole suite of tools into the background to make your life easier if you want to customize the bridge. Think of it as the "Secret Menu" for the Signal-to-Chat gateway.

Simply type:

make help

Why you should care: Running this command will reveal a list of specialized tools I’ve automated for you. Whether you need to:

  1. make monitor: To peek inside the "Brain" of the ESP32 and see the RF signals hitting the antenna in real-time.
  2. make clean: To sweep the digital floor and start a fresh build from scratch.

By taking a peek at the help command, you aren't just a user—you’re the master of the airwaves. It’s the difference between just "fixing a doorbell" and truly "owning the IoT bridge."

Connecting to the Cloud (The Telegram Bot)

bbb.png

To get your Signal-to-Chat bridge talking to your phone, you need two "Secret Keys":

  1. The Bot Token: Provided by the "BotFather" (Telegram's official bot creator).
  2. Your Chat ID: A unique number that tells the bot exactly which phone to ping.

Limitless Resources at Your Fingertips

Because Telegram is the "gold standard" for IoT notifications, there are thousands of guides right here on Instructables that show you how to get these credentials in under 2 minutes.

🔍 Search Instructables: How to Setup a Telegram Bot

Whether you prefer a 30-second "Quick Start" or a deep-dive technical guide, the community has you covered. Just follow any of the top results to get your Token and ID, then pop them into the configuration file before running your final make all.

The Command Center (Web UI and Analytics)

ui.png

Once you’ve run make flash and the "Signal-to-Chat" bridge is alive, you don’t need to be a coder to use it. You just need a web browser. By navigating to the ESP32’s IP address (192.168.4.1 in AP mode), you open up a professional-grade dashboard that makes "sniffing" RF signals feel like playing a video game.

Real-Time Signal Monitoring

The UI doesn't just tell you "something happened." It gives you the DNA of the radio wave.

  1. The Living List: Every 433MHz signal in the area appears in real-time.
  2. Binary Decoding: See the raw 24-bit codes (like the EV1527 protocol) pop up in a clean green box.
  3. Metadata & RSSI: It tracks pulse durations (short/long/sync) and the Signal Strength (RSSI). This was vital for finding the "sweet spot" on the house wall to ensure the gate could reach the bridge.

The "Mark and Notify" System (The Magic Button)

This is how we solved the father-in-law’s problem. The UI features a Notify / Unnotify toggle for every signal captured.

  1. When you press the doorbell, its unique digital fingerprint appears.
  2. Click 📱 Notify, and a "Toast" confirmation pops up.
  3. That signal is now saved to the ESP32's NVS (Non-Volatile Storage)—meaning even if the power goes out, the bridge remembers which signal belongs to the doorbell.
  4. The Logic: All signals are automatically retransmitted (to ring the shed), but only Marked signals trigger the Telegram alert.

Pro-Grade Analysis Tools (The Makefile Power)

If you’re a data nerd (or a contest judge ;), I’ve built deep-analysis tools directly into the workflow. Using the terminal, you can export the doorbell’s behavior for further study:

║ make decode - Decode & analyze all signal logs ║
║ make decode-json - Decode logs -> JSON output ║
║ make decode-csv - Decode logs -> CSV output ║
║ make decode-brief - Decode summary only (no raw pulses) ║
║ make analyze - Signal repeat & noise analysis ║


The Armor

Up until now, our Signal-to-Chat bridge was a naked collection of chips and wires. But to survive "Always-On" duty near a window or on a shelf at the in-laws' house, it needed a home.

I headed over to Tinkercad to design an enclosure specifically for the ESP32 and CC1101 combo. No more "techno-spaghetti" sitting on the sideboard; this is now a finished product.

The Design: Form Meets Function

This case is as compact as possible while ensuring the CC1101 antenna has plenty of "breathing room" to catch those distant gate signals.

  1. View the 3D Blueprint: ESP32 + CC1101 Enclosure on Tinkercad



  1. The Fit: Tailored for the ESP32 DevKit, with dedicated internal slots to hold the CC1101 transceiver securely in place.
  2. The Access: Includes a precision cutout for the micro-USB power cable (our "Lifeblood" phone charger) and a port for the 433MHz antenna to poke through.

Future Road Map: Taking the Bridge to 2.0

1. Home Assistant Integration (The Big One)

While Telegram is great for mobile alerts, integrating with Home Assistant via MQTT would allow the doorbell to talk to the rest of the house if there is a smart system in place.

  1. The Vision: When the doorbell rings, Home Assistant could automatically pause the TV, turn on the porch lights if it's dark, or announce "Someone is at the gate" over the smart speakers in the living room.

2. Security Mode: Jammer Detection

Since we are using the CC1101, we can do more than just listen for doorbells—we can monitor the "health" of the airwaves.

  1. The Vision: If someone tries to "jam" the 433MHz frequency with constant noise (a common tactic for bypassing wireless security), the ESP32 can detect the elevated $RSSI$ levels and fire off an emergency Telegram alert: "⚠️ Warning: Significant RF interference detected at the gate!"

3. Multi-Device "Mesh" Echo

What if the shed is even further away? Or there's a second workshop in the basement?

  1. The Vision: By deploying multiple Signal-to-Chat nodes, we could create a "Mesh" network. Node A hears the button, echoes it to Node B, which then echoes it to the final destination. It turns the entire property into one big, reachable zone.

4. Voice Assistant Feedback

Sometimes you don't have your phone on you while working in the shed.

  1. The Vision: Using the ESP32-S3’s voice capabilities or a simple piezo buzzer, the bridge could "speak" to you. Instead of just a chime, a small speaker inside the 3D-printed case could say: "Delivery at the Main Gate."

The Final Word

This project started as a way to help my father-in-law hear a doorbell. But as you can see, by using the ESP32 and CC1101, we’ve built a foundation that can grow into a sophisticated, open-source security ecosystem.

Signal-to-Chat isn't just a gadget; it's the first step in making any "dumb" home a lot smarter.