This project builds an automatic feeder for cats (or other small animals). The goal is build a complete, DIY solution, from the fabrication of the container, to software are electronics. The feeder is managed using a web interface, so you can configure it from your home network. Doubles as WIFI AP (for standalone operation) or WIFI client (for home network integration).

This project provides:

  1. The fabrication of the container. You 3D print the parts using the STL provided.
  2. The software to control the feeder.
  3. The electronics schemas to connect all the parts.

Demo video on YouTube

Table Of Contents

  1. Project Features
  2. 3D Printing and Assembly
    1. Prototype
    2. CatFeeder
      1. Part list to print
      2. Printing times
      3. Assembly
        1. Mount the pins in the inner case
        2. Screw the base to the inner case
        3. Mount the axis motor and support
        4. Iron the wires to battery holder
        5. Build the 90 degree wires
        6. Wiring diagram
        7. Mount the UNL2003
        8. Mount the ESP8266
        9. Mount the cap
  3. How to install the Software
    1. Arduino Board Setup
    2. Configuration options
    3. Download the components to the Board
      1. Check for good compilation
      2. Download the FileSystem to the board
      3. Download the CatFeeder application to the board
  4. Configure CatFeeder
    1. Connect to the AP
  5. Using Catfeeder
    1. Calibration
    2. Configure Schedules

Project Features

  1. Fully printable container, so you can download the project, start your printer, and print all the parts. The STL are ready to print, so the orientation and tolerances are configured and tested.
  2. Managed using web interface. Catfeeder provides a WWW server that provides the following capabilities:
    • Network configuration. DCHP / Static / AP operation
    • Calibration
    • NTP client, so we manage the current time.
    • Configuration persistence (SPIFFS).
    • Detailed log of Catfeeder's operation, so you can check what happen.
    • Modern HTML / JS interface, AJAX based operation.
    • Easy, flexible schedule configuration for feeding your pets. No limits on this (only the number of slots).
    • Capable of communicate using a Telegram Bot (Experimental).
  3. Cheap to build. Based on standard hardware components:
    • ESP8266 Core on an NodeMCU LoLin v3 development board (about 7€)
    • Stepper motor: 28BYJ48 (5 motors about 6€)
    • Stepper motor driver: ULN2003 (5 drivers mounted on development board about 6€)
    • Printed on PLA
    • Some wiring cable (8 wires)
    • 4 allen screws (13mm)
    • 2 allen screws (6mm)
    • Powered on 4xAA batteries (6V)
    • 1 4xAA battery holder (5 holders about 4€)
    • 4 small screws to support the boards to pins
    • 4 pins to build the power connector
  4. Easy of operation:
    • Cap is removable so you can clean / add the meal easily.
    • The shape is designed to be "safe" for your cats. They can't bump it.
    • Schedule the meals using the phone or your computer easily.
    • With 1 meal/day, you can serve a full week.
    • Very quiet operation, due the stepper motor.
    • Can be calibrated easily, using the web interface.

3D Printing and Assembly

All the parts are designed on Autodesk Inventor 2019. I provide two models, CatFeeder the "production" one, and the Prototype useful to develop new features, or test things. Printed on a Creality Ender-3 Pro, with generic brand PLA. These are the CURA settings for all the parts printed:

  • Layer Height: 0.2
  • Wall Thickness: 0.8
  • Top/Botton Thickness: 0.8
  • Top Layers: 4
  • Bottom Layers: 4
  • Infill: 20%, Lines
  • Printing temperature: 195 ºC (for your PLA brand, may vary)
  • Build plate temperature: 70 ºC
  • Speed: 40 mm/s
  • Cooling: Enable
  • Fan Speed: 100>#/li###
  • Enable supports: Everywhere
  • Build Plate adhesion: None


This prototype is not usable to feed pets, buts prints fast, and is used to check some mechannical interfaces (axis, motor coupling, etc.) The prototype is an easy asembly, build from three printed parts:

  • Hardware/3DPrinting/Prototype/floor.stl
  • Hardware/3DPrinting/Prototype/mottor_support.stl
  • Hardware/3DPrinting/Prototype/upper.stl

You also need:

  • 6 female-female pin-to-pin cables (4 for motor wires, 1 for vcc, 1 for ground)
  • 4 AA batteries
  • A battery holder with two male pin soldered (to enable the connection)...
Read more »