

FelineWatchdog
An ESP32-based system to alert you when your cat goes missing. Monitors Wi-Fi connection between your cat's collar-mounted ESP32 device and an embedded system. Notifications sent to your iOS or Android device using ntfy and Docker. Peace of mind for cat owners.
- Size
- 38 × 65 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 33
- Nets
- 58
- Pads
- 126
- Tracks, vias
- 149, 25
- Pours
- 4
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 3 May 2024
- Updated
- 17 Jan 2025
Overview
FelineWatchdog is an open-source printed circuit board by Paschalis, from the Paschalis/FelineWatchdog repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 38 × 65 mm with 33 parts on 58 nets, routed with 149 tracks and 25 vias.
It is built around the ESP32-S3, AMS1117-3.3 and DW01A, with the TP4056, SS14 and FS8205A among its other parts. Its parts include 10 resistors, 5 capacitors, 5 diodes, 4 ICs and 4 connectors. It belongs with the radio and wireless boards and the ESP32 boards of this library.
Main components
6ESP32-S3
QFN-56-EP(7x7)-40℃~+105℃ -98.4dBm 150Mbps 2.412GHz~2.484GHz 2.4GHz 21dBm 340mA 3V~3.6V 88mA SPI、USB、UART、ADC、I2C、I2S、PWM WiFi transceiver QFN-56-EP(7x7) RF Transceiver ICs ROHSEspressif SystemsRF Transceiver ICsAMS1117-3.3
SOT-223-40℃~+125℃ 0.003%Vout 1 1.1V@(800mA) 15V 1A 3.3V 5mA 72dB@(120Hz) Fixed Over Current Protection、Short Circuit Protection、Thermal shutdown Positive SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSAdvanced Monolithic SystemsVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsDW01A
SOT-23-6L-40℃~+85℃ 1 2.5V 300mV~10V 3uA 4.3V Protection IC Support SOT-23-6L Battery Management ROHSPUOLOPBattery ManagementTP4056
ESOP-8-40℃~+85℃ 1 1A 35uA 4.2V 4V~6.5V Charging IC Lithium Battery Support Support 恒流充电、恒压充电、涓流充电、自动再充电、充电终止、可编程充电电流、软启动、欠压锁定 ESOP-8 Battery Management ROHSUMWBattery ManagementSS14
SMA(DO-214AC)-55℃~+150℃ 1A 25A 300uA@40V 40V 550mV@1A Independent SMA(DO-214AC) Schottky Diodes ROHSMDDSchottky DiodesFS8205A
SOT-23-6-55℃~+150℃ 1.2V 1.5W 2 N-Channel 20V 31.5mΩ@2.5V 466pF 5.7nC@4.5V 58pF 65pF 6A SOT-23-6 MOSFETs ROHSTECH PUBLICMOSFETs
README
README.md🐱 Feline Watchdog: Missing Cat Alert System

Feline Watchdog is an ESP32-based system designed to monitor the Wi-Fi connection between your cat's collar-mounted ESP32 device and your home network. If the Wi-Fi connection is lost, indicating that your cat may have wandered out of range, the system sends a notification to your iOS or Android device using the ntfy Linux tool.
Overview
Have you ever worried about your cat wandering too far from home? Feline Watchdog provides peace of mind by alerting you when your cat goes missing. By monitoring the Wi-Fi connection between your cat's collar-mounted ESP32 device and your home network, Feline Watchdog can detect when your cat is out of range and send you an alert notification on your mobile device.
🔧 Prerequisites
- ESP32 microcontroller
- Raspberry Pi (Optional)
- Docker (if using Raspberry Pi)
- Router (if not using Raspberry Pi)
Embedded System Configuration

Two implementations of Embedded System Configuration
Option 1: With Raspberry Pi
-
Setting Up a Wi-Fi Hotspot on Embedded System
-
For detailed instructions on setting up a Wi-Fi hotspot on your embedded system, please refer to the Wi-Fi Hotspot Setup Instructions.
-
Use the provided bash script using the nmcli tool to create a Wi-Fi hotspot on the Raspberry Pi.
bash bash create_hotspot.shor
bash ./create_hotspot.sh -
-
Install Docker on your Raspberry Pi
sudo docker --version
Docker version 20.10.21, build 20.10.21-0ubuntu1~18.04.3docker run \
-v /var/cache/ntfy:/var/cache/ntfy \
-v /etc/ntfy:/etc/ntfy \
-p 80:80 \
-itd \
binwiederhier/ntfy \
serve \
--cache-file /var/cache/ntfy/cache.db📡 ESP32 Configuration and Notification Setup
Option 1: Using Raspberry Pi as a Wi-Fi Hotspot
-
ESP32 Configuration
- Upload the
cat.inocode to your ESP32. - The ESP32 will connect to the Wi-Fi hotspot created by the Raspberry Pi.
- Once connected, the assigned IP address will be printed to the serial monitor.
- Upload the
-
Raspberry Pi Monitoring and Notification
- The Raspberry Pi continuously monitors the connection status of the ESP32.
- If the connection is lost, it triggers a notification using ntfy.
Option 2: Direct Connection to Router
For a basic example of using NTFY with ESP boards, check out the ntfy_on_a_chip repository. It provides a foundational setup for communicating with the NTFY server and can be adapted for various projects, including this.
-
Connect ESP32 Directly to Router
- Configure your ESP32 to connect directly to your home Wi-Fi network (router).
-
ESP32 Configuration
- Upload the
cat.inocode to your ESP32. - The ESP32 will connect to the specified Wi-Fi network and print the assigned IP address to the serial monitor.
- Upload the
-
Notification Setup
- Set up ntfy or another notification service on a server or computer within your home network.
- This service will monitor the connection status of the ESP32.
- If the connection is lost, it triggers a notification using ntfy or a similar service.
Notes
- Ensure that your network's firewall settings allow communication between the ESP32 and the notification service.
- Configure ntfy or your chosen notification service according to the service's documentation for optimal performance.
🔩 PCB Design
Dual Power Sources: Li-ion Battery and USB
This setup allows the ESP32 to be powered either by a Li-ion battery or directly from a USB source via a voltage regulator.
Li-ion Battery Connection
- The Li-ion battery is connected to the BATT+ and BATT- terminals of the charger module.
- BATT+ from the charger module is connected to the 3.3V input of the ESP32 through a Schottky diode.
- BATT- is connected to the GND of the ESP32.
USB Power Connection (For Re-programming)
- The 5V line from the USB is connected to the VIN of the voltage regulator.
- GND from the USB is connected to the GND of the voltage regulator.
- The 3.3V output of the voltage regulator is connected to the 3.3V input of the ESP32 through a Schottky diode.
Screenshots from KiCad:

Screenshots from Fusion 360:
Important Notes
- Schottky diodes are used to prevent backfeeding between the battery and USB power sources.
🏗️ 3D Design
Screenshots from Fusion 360:

3D Printed Case
Screenshots of the printed 3D case:

To Do
- Implement notification functionality using ntfy for sending alerts to iOS or Android devices.
- Implementation without a middle point such as Raspberry Pi, but directly with a router and ESP32.
- Lower power consumption.
- Implement HTTP communication method for sending alerts to a designated endpoint.
- Implement MQTT communication method for publishing messages to a specific topic on an MQTT broker.
- Ensure seamless integration of these functionalities within a Docker container on the Raspberry Pi.
- Document setup and configuration steps for each notification method.
- Test and validate the system's functionality across different scenarios.
- Gather feedback and suggestions from users for further enhancements.
🧑💻 Authors
👥 Contributors
Contributions are welcome! Feel free to submit pull requests or open issues if you encounter any problems.
🙏 Acknowledgements
-
A special thanks to the ntfy_on_a_chip repository by Gerge. The example code and documentation provided were instrumental in implementing the direct connection option for the Feline Watchdog project. The guidance on using NTFY with ESP boards and the detailed explanation of HTTPS communication enabled us to streamline our setup by connecting the ESP32 directly to a router without needing an intermediate server like a Raspberry Pi. Your work greatly facilitated our development process and contributed to the success of the Feline Watchdog system. Thank you!
-
We would also like to acknowledge the creators of the ntfy app. The app’s simplicity and functionality made it easy to send and receive notifications, which is a core feature of the Feline Watchdog system. The ability to integrate it seamlessly into our project greatly enhanced its effectiveness.
📜 License
This project is licensed under the GPLv3 License - see the LICENSE file for details.
Thank you for visiting FelineWatchdog! ✨
Parts
33| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 10uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C2, C3, C4 |
| 2 | 10k | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R1, R12 |
| 2 | 1k | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R10, R11 |
| 2 | 5k1 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R2, R3 |
| 2 | LOGO | cat:cat | G***, G1 |
| 2 | SS14 | Diode_SMD:D_SMA_Handsoldering | D1, D2 |
| 1 | 0.1uF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C6 |
| 1 | 0.1uf | Capacitor_Tantalum_SMD:CP_EIA-1608-08_AVX-J | C1 |
| 1 | 100 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R13 |
| 1 | 1M | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R7 |
| 1 | 1k | Resistor_SMD:R_0805_2012Metric | R14 |
| 1 | 220 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R9 |
| 1 | AMS1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U1 |
| 1 | Conn_01x02_Pin | Connector_PinHeader_1.00mm:PinHeader_1x02_P1.00mm_Horizontal | J3 |
| 1 | Conn_01x02_Socket | Connector_JST:JST_EH_S2B-EH_1x02_P2.50mm_Horizontal | J2 |
| 1 | Conn_01x04_Socket | Connector_PinHeader_1.00mm:PinHeader_1x04_P1.00mm_Horizontal | J12 |
| 1 | DW01A | DW01A:SOT95P280X145-6N | U4 |
| 1 | ESP-32S | ul_ESP-32S:ESP-32S_AIT | U5 |
| 1 | FS8205A | ul_FS8205A:SOT-23-6L_TCP-L | Q2 |
| 1 | GREEN | LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder | D5 |
| 1 | LED | LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder | D3 |
| 1 | LOGO | QRcat:QRcat | G2 |
| 1 | RED | LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder | D4 |
| 1 | RESET | VeisLibrary:MySwitch_SW_SPST_PTS647_Sx50 | SW1 |
| 1 | TP4056 | TP4056:SOP127P600X175-9N | U3 |
| 1 | USB_C_Receptacle_PowerOnly_6P | Connector_USB:USB_C_Receptacle_GCT_USB4125-xx-x-0190_6P_TopMnt_Horizontal | J1 |
Similar boards
- 2 layers96.2 × 62.4 mm

- 4 layers62 × 46.9 mm

4LayerLabProject
ZharbolatDinmukhamed/Haptic-Glove-PCB
A wrist-mounted PCB for a haptic feedback glove, developed as part of my Research Assistantship at the Tactile Laboratory, Nazarbayev University.
122 parts - 2 layers61 × 61 mm

ESP32 FC
MAATHES-THILAK-K/ESP32-S3_FLIGHT_CONTROLLER
A custom-designed flight controller based on the ESP32-S3 module, built for compatibility with the esp-fc firmware and Betaflight-like configuration.
69 parts7Apache-2.0 - 2 layers150 × 40 mm

- 4 layers90 × 98 mm

Convention badge pcb v2
BrandonFors/convention_pcb_badge
Design for a custom pcb badge for opensauce convention and maybe other conventions in the future.
57 parts - 2 layers78 × 37 mm

Akku 3V3 Versorgung
yvolodym/18650-3v3-supply
KiCad: stabile 3,3-V-Versorgung aus 18650-Li-Ion-Akku – TP4056-Ladung, DW01A/FS8205A-Schutz, MT3608-Boost, AP2112K-LDO
32 partsCERN-OHL-S-2.0 - 4 layers32.3 × 23.3 mm

Smart Watch
dharahaas23/ESP32-Smart-Watch
A round, wrist-worn smart watch built around the ESP32-WROOM-32, with heart-rate sensing, a circular color display, USB-C charging, and a custom PCB antenna — designed as part of the #30DaysOfPCB progression from…
46 parts - 2 layers61 × 61 mm

Questions
How big is the FelineWatchdog PCB?
It measures 38 × 65 mm and has 4 copper layers, 1.6 mm thick.
What parts does the FelineWatchdog use?
33 parts, built around the ESP32-S3, AMS1117-3.3, DW01A and TP4056. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the FelineWatchdog KiCad files?
From the Paschalis/FelineWatchdog repository on GitHub, at the commit this page was made from: the board is Step 2: PCB Design/FelineWatchdog.kicad_pcb and its schematic Step 2: PCB Design/FelineWatchdog.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the FelineWatchdog design in my own project?
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).