AutoCAT 3D Printer File Image 1
AutoCAT 3D Printer File Image 2
AutoCAT 3D Printer File Image 3
AutoCAT 3D Printer File Image 4
AutoCAT 3D Printer File Image 5
AutoCAT 3D Printer File Image 6
AutoCAT 3D Printer File Image 7
AutoCAT 3D Printer File Image 8
AutoCAT 3D Printer File Image 9
AutoCAT 3D Printer File Image 10
AutoCAT 3D Printer File Image 11
AutoCAT 3D Printer File Image 12
AutoCAT 3D Printer File Image 13
AutoCAT 3D Printer File Image 14
AutoCAT 3D Printer File Image 15
AutoCAT 3D Printer File Image 16
AutoCAT 3D Printer File Image 17
AutoCAT 3D Printer File Image 18
AutoCAT 3D Printer File Image 19
AutoCAT 3D Printer File Image 20
AutoCAT 3D Printer File Image 21
AutoCAT 3D Printer File Image 22
AutoCAT 3D Printer File Image 23
AutoCAT 3D Printer File Image 24
AutoCAT 3D Printer File Image 25
AutoCAT 3D Printer File Thumbnail 1
AutoCAT 3D Printer File Thumbnail 2
AutoCAT 3D Printer File Thumbnail 3
AutoCAT 3D Printer File Thumbnail 4
AutoCAT 3D Printer File Thumbnail 5
AutoCAT 3D Printer File Thumbnail 6
AutoCAT 3D Printer File Thumbnail 7
AutoCAT 3D Printer File Thumbnail 8
AutoCAT 3D Printer File Thumbnail 9
AutoCAT 3D Printer File Thumbnail 10
AutoCAT 3D Printer File Thumbnail 11
AutoCAT 3D Printer File Thumbnail 12
AutoCAT 3D Printer File Thumbnail 13
AutoCAT 3D Printer File Thumbnail 14
AutoCAT 3D Printer File Thumbnail 15
AutoCAT 3D Printer File Thumbnail 16
AutoCAT 3D Printer File Thumbnail 17
AutoCAT 3D Printer File Thumbnail 18
AutoCAT 3D Printer File Thumbnail 19
AutoCAT 3D Printer File Thumbnail 20
AutoCAT 3D Printer File Thumbnail 21
AutoCAT 3D Printer File Thumbnail 22
AutoCAT 3D Printer File Thumbnail 23
AutoCAT 3D Printer File Thumbnail 24
AutoCAT 3D Printer File Thumbnail 25

AutoCAT

Juan1ll0 avatarJuan1ll0

March 22, 2025

printables-icon

Description

Summary

I started this project for about a year ago. It's designed to feed my cats at the same times every day. You can configure the number of meals in a day, the number of portions by meal and the time.

The tank is a rectangular tube measuring 150x75x200 mm. You can expand its capacity whenever you want by printing more than one tank and connecting them with a “TankUnion”. The capacity of a single tank is approximately 1 kg of cat food.

The project's development was based on a series of requirements that had to be met:

  • Easy to print. Try to avoid the need for supports and large parts or parts with difficult-to-print geometries as much as possible.
  • Durable and reliable. The parts it's made of should not break easily and should be durable. Operation is precise and safe, without jams or breakdowns.
  • Easy to assemble and repair. Modular design: tank, dispenser, electronics, and stand.
  • Easy to configure. The Wi-Fi network is configured using a JSON configuration file. Other functionalities are web-based.
  • Easy to use. A very simple web interface that can be used from any mobile device.
  • Cheap. I tried to optimize the price of both the electronic components and the amount of filament.

 

Functions

  • Dispense configurable portions of food at scheduled time.
  • Web interface based

 

BOM

3D Parts:
#PART NAMEINFILLPERIMETERSSUPPORTMATERIALREQUIREDQNT.
1TankLidHandle10%4NoPLAYes1
2TankLid10%4NoPLAYes1
3TankLidMark10%4NoPLAYes1
4TankBottom10%4NoPLAYes1
5Tank100%2NoPETG / PLAYes1
 TankUnion100%4NoPETG / PLANo0-1
6DispenserTop10%4NoPLAYes1
7DispenserBody10%4NoPLAYes1
8ElectronicsBox10%4YesPLAYes1
9DispenserOutput10%4YesPLAYes1
10Foot10%4YesPLAYes1
11PushBlade100%-NoTPU / PLAYes1
12CleanBlade100%-NoTPU / PLAYes1
13FoodPlateBase10%4NoPLANo0-1
14FoodPlateBed10%4NoPLANo0-1
15ChargeCellMock1kG10%4NoPLANo0-1
16ChargeCellSeparator10%4NoPLANo0-1

If you need a simple cats feeder you only need to print required parts, other parts are optional like: food plate, tank expansion.

Food plate actually is used to prevent your pet moves food plate. Is ready to include an scale.

If you buy a standard rectangular tube of 150x75mm you don't need to print "tank" part. Remember to use a material food safe approved. If you print the tank in a transparent or translucid material you can see how full is the tank. 

You can print the blades in PLA, but using TPU 83 Shore D makes them operate more smoothly and prevents potential jams.

 

Electronics:
#COMPONENTMODELSUPPLIERQNT.
1Arduino NanoESP 32Arduino1
2Servo MotorDS3218Pro-180 / DS3218Pro-270Aliexpress1
3Electrolytic CapacitorFrom 470uF - 25V to 1000uF - 36VAliexpress1
4WiresWires for servo Aliexpress1
5Servo Round SupportRCmall - Servo Support M3.8Aliexpress1

In this design, I have used the waterproof DS3218 servo because I have it at home. It will probably work with a servo that has less torque. This would mean cost savings. If a different servo is used, it will be necessary to print a part to adapt it to the existing slot.

Compatible microcontrollers:

  • Arduino nano esp32 (recommended)
  • Any ESP32 board with Wifi.
Screws:
#SIZE3D PARTDESCRIPTIONQNT.
1M3x10mmDispenserDecorative screws to fixed tank with dispenser2
2M4x50mmDispenserJoin dispenser with electronic box4
3M3x10mmE. BoxHexagonal head. Join dispenser output with electronic box2
4M4x20mmE. BoxJoin foot with electronic box. Join foot with food plate6
5M3x20DosificatorJoin PushBlade with servo4
6M3x20DosificatorJoin CleanBlade with PushBlade 2
7M3E. BoxM3 standar nuts2
8M1x2E. BoxFixed Arduino Nano into electronic box2
9M3 NutsDispenserM4 Insertion Nuts. Like this2
10M4 NutsDispenserM4 Insertion Nuts. Like this8
Other:
  • If you prefer to buy the tank instead of print is a rectangular tube of 150x75mm.
  • 4 Rubber pads. For foots. 4 extra if you print food plate.
  • 5x1 cm double-sided tape.

 

Wiring

The wiring is very simple, you only need to include capacitor in parallel with Servo to protect Arduino Nano from peak tensions. 

Signal pin could be any output pin of Arduino Nano. Remember to config pin number in config.json (see Usage and Configure section).

 

Code

It's developed with MicroPhyton so your Arduino Nano ESP32 must have Micropython installed. All code is on github repository: Juan1ll0/AutoCAT. I'm open to accept security updates, bugfixes, improves…etc.

To make this device up and running you must copy all files and folders of the repository into the device root folder. Then make changes in config files (see Usage and Configure section) to establish network and hardware params.

Once here disconnect the Arduino Nano ESP32 from your computer and connect again to make a hard reset and check if Web UI is running.

 

Assembly Instructions

My recommendations for this project are:

  1. If you are not familiar with Arduino or ESP devices, is better to start with electronics and software installation. 
  2. When you have all parts printed insert all nuts in parts.
  3. Start with electronic box mount. 
    1. Mount output using two M3x10mm screws with nuts.
    2. Fix servo with double-sided tape
    3. Fix Arduino Nano ESP32 with box using M1x10 tiny screws.
  4. Dispenser.
    1. Mount “Dispenser Body” on top of “Electronic Box”. Dispenser hole must be in front of electronic box hole.
    2. Put “PushBlade” inside dispenser and screw to servo (previously mounted with Servo round support) with M3x20mm
    3. Mount Dispenser top.
    4. Mount “CleanBlade” and screw to “PushBlade” with two M3x20mm screws.
    5. Union dispenser  with electronic box using M4x50mm screws.
  5. Tank.
    1. Glue Tank-bottom and TankLidSupport to tank.
  6. Assembly all.
    1. Assemble Tank with dispenser using two decorative M3x10mm Screws
    2. Assemble Electronic Box with Foot using M4x20mm screws.
  7. Food Plate (Optional)
    1. Union “food plate base” with “foot” with two M4x20mm screw.
    2. Screw cell charge to “food plate base”
    3. Screw cell charge to "food plate bed". Between two parts include “ChargeCellSeparator”

 

Usage and configure

First of all you can ask me any problem with the design.

Once you have all code uploaded into device, you need to configure your wifi network and servo.

You can schedule more than 1 time in day and setup the number or rations per meal. 

Network

For networking configuration edit  file “config.json” section “network”. Inside this file you must configure your wifi credentials and network configuration:

{
   …
   "network": {
       "ssid": "your-ssid",
       "passwd": "your-password",
       "config": {
           "static_ip": "your-private-network-ip",
           "subnet_mask": "your-private-network-masl",
           "gateway": "gateway-ip",
           "dns": "your-dns"
       }
   }
}

*Note: “config” is optional, if you ignore this field DCHP will be used. Configuration file without static IP looks like this:

{
   …
   "network": {
       "ssid": "your-ssid",
       "passwd": “your-password”
   }
}

Servo

To setup pin and angle for servo signal yo must set inside “config.json” section “servo”:

{
   "servo": {
       "pin": 5,
       "angle": 270,
   },
   …
}

 
Scheduler

You can configure scheduler from “scheduler.json”. You can add or delete events:

[
   {
       "name": "Breakfast",
       "quantity": 3,
       "time": "09:55"
   }, 
   {
       "name": "Meal",
       "quantity": 1,
       "time": "13:00"
   },
   {
       "name": "Lunch",
       "quantity": 2,
       "time": "19:00"
   }
]

 

WEB UI

This first version includes a Web Interface on port 5000 to schedule meals. So if you have your device configured on IP 192.168.1.25 you can access with this URL: http://192.168.15.230:5000

Image of interface: