Close
0%
0%

CAT AT THE DOOR

Detect and notify when your cats are waiting at the door (based on radar + BLE Tag)

Similar projects worth following
CAT AT THE DOOR is an open-source project that lets you know when your cat is waiting to come inside—no more missed meows or scratching at the door. It’s made of two devices: a Stationary unit and a Portable unit. The Stationary unit is installed indoors, facing the outside door or area where cats usually return. The Portable unit is battery-powered and can stay with you—while working, relaxing, or away from the door. How it works: The Stationary device uses a radar sensor to detect motion. If something moves, it checks for BLE tags worn by your cat(s). If a registered tag is found, the Portable unit alerts you (display, buzzer). The two devices talk via LoRa, ensuring a strong signal—even through walls or floors. Instructions, 3D print files, and code here: https://github.com/AndreaFavero71/cat_at_the_door Detailed 70-page build guide: https://github.com/AndreaFavero71/cat_at_the_door/blob/main/doc/How_to_make_


ARCHITECTURE:


HARDWARE

Main components to make this system:

QtyPart Description
2Heltec Wi-Fi LoRa 32 V3 board (with antenna & JST battery connector)
1BLE tag – Tile Sticker (per each cat)
1Collar with tag sleeve
12.9" EPD Waveshare display (black and white)
1LiPo battery 3.7V 2200mAh (approx. 35.5 x 77 x 8.4mm)
1HLK TD2010C radar module
1Rotary encoder with push button
1Buzzer (DC 3.3–5V with transistor)
2USB-C female connector, panel mount
2USB-C male connector (with D+ D– or A6 A7 lines)
2Mini rocker switch (slot 13.2 x 9 mm)




Extra materials and small parts:

QtyItem Description
190° male header, 2.54" x 18 (uased at Heltec board J3)
SomeDupont wires (female connectors)
1Long USB-C cable (or power bank)
~10M3x10 conical head screws
~10M3x12 conical head screws
1M4x12 conical head screw
4M2.5x10 bolts (for EPD, often included)
~220gFilament for 3D printed parts (PETG)
-Power supply (standard phone charger, ≥500mA)
-Aluminium tape (for radar shielding)



MAIN BOARDS:

The Heltec Wi-Fi LoRa 32 V3 board has been chosen for this project due to its useful features:

  • LoRa (Long Range) communication protocol, with its dedicated antenna. This enables reliable communication between the two devices, even across different (concrete) floors.
  • BLE (Bluetooth Low Energy) protocol is the core of this system. It is used to scan for the BLE tags.
  • Battery management, which is useful for the portable device. It supports battery operation, charging, and charge level monitoring.
  • ESP32-S3 microcontroller, which allows for low power consumption between periodic communications with the stationary device (using the light sleep function).
  • Wi-Fi, which is optional, but allows the system to synchronize the date and time via an internet NTP service.
  • A small OLED display, which is especially useful during code development and debugging.
  • MCU can be programmed in MicroPython.

(documentation at: https://heltec.org/project/wifi-lora-32-v3/)


SENSOR CHOICE:

Objective of this system is detecting our cats when they’re out of the door and waiting for us to let them inside. On below table are listed the sensor’s types considered, and the reasons leading to the final choice.

Sensor type

Pros, cons. considerations

Cat’s microchip

Cat’s microchips are passive RFID: These components can be read at no more than 10~15 centimetres of distance, not a reliable option for this application.

These sensors can be reliably used in small and obliged passages, like the cat flap doors.

We cannot modify the door, due to building’s policy, so these cat’s flap doors weren’t an option for us.

PIR

(Passive Infra-Red) sensors are largely influenced by surrounding temperature.

I haven’t tried, but I think it will be difficult to find a setting working both in winter and in summer; Furthermore, our door points to west, so often the sun hits it theoretically reducing the PIR sensors’ reliability.

Camera

I like computer vision, but I haven’t even consider it as a viable option.

This system must especially work in winter, where in The Netherlands there is little light; A camera based, will also require massive training to distinguish our cats from the many others in this large garden, under very different light conditions.

I feared this way would turn into an endless project.

BLE tag

(Bluetooth Low Energy) are small, battery-powered devices using Bluetooth to transmit data wirelessly. This is perfect to distinguish our cats from the others, but determining the distance from the sensor is not reliable.

24GHz FMCW radar

FMCW (Frequency Modulated Continuous Wave) can determine the distance of reflective objects (metal and water); It isn’t influenced much by light or temperature.

Another positive aspect is that it can be place inside, as the 24GHz can still pass through (non-metal) materials.

This technology has become very popular to sense human presence, leading to a good option of choices and rather low cost.

The radar...

Read more »

  • Adaptive LoRa transmission power, using just one character

    Andrea Favero06/26/2025 at 16:34 0 comments

    To improve power efficiency and connection reliability in CAT AT THE DOOR, I implemented a dynamic transmission power control mechanism between the two LoRa devices.

    The devices negotiate power using just a single character — keeping everything light and responsive, while staying compliant with duty-cycle regulations.



    HOW IT WORKS

    The  parameter (in config.json) sets the initial transmission power for the SX1262 LoRa chip on both devices.

    Once the system is running, this power level is dynamically adjusted based on the RSSI (signal strength) received from the other device, aiming to stay within a good operating window:

    • If RSSI > –80 dBm → signal is too strong → reduce power

    • If RSSI < –100 dBm → signal is too weak → increase power

    The goal is to save energy when possible, while keeping the connection stable even across walls or floors.




    POWER NEGOTIATION LOGIC

    Each message sent can optionally include one of two special characters:

    1. Weak signal

    • The sender appends a "<" character.

    • The receiver increases its tx power by 1 dBm.

    • If already at max (22 dBm), no further increase.

    2. Strong signal

    • The sender appends a ">" character.

    • The receiver decreases its tx power by 1 dBm.

    • If already at min (–9 dBm), no further reduction.

    3. Signal level is OK

    • No "<" or ">" is appended.

    • Receiver keeps the same power level.

    4. No response (loss of signal)

    • After 4 missed replies, the device sets its tx power to maximum (22 dBm).

    • After 15 missed replies, it resets to the original value from config.json, assuming the other devices has been  unintentionallyforgotten switched on.



    WHY THIS MATTERS

    This negotiation logic is intentionally simple but effective:

    • Just one feedback character (< or >)

    • No extra messages or protocol overhead

    • Keeps Time-on-Air and power usage low

    • Helps the battery-powered portable unit last longer

    In essence, this system adapts the power consumption to an optimum level, while managing edge cases.

    I haven’t come across to a similar approach in other LoRa P2P projects, so I’m sharing it here in case it helps fellow makers and developers.

View project log

View all instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates