Kitty Caddy Cat Feeder

For my Real World Microcontrollers course, I created an automated cat feeder using an ATmega IC, a stepper motor, an OLED display and three input buttons. Click below to access the hardware files and create your own Kitty Caddy!

Real-World-Controller.jpg

Problem Statement

Design and build a real-world controller using modular components. Chosen project should integrate a microcontroller with special-purpose modules for power regulation, motion control, graphical display, audio generation, digital radio communication, or environmental sensing along with the software needed to control them. An additional area of study (like mechanical integration, user interface design, etc.) should be chosen by the student.

SMT.jpg

Surface Mount Technology

I chose Surface Mount Technology as my additional area of study. Rather than using modular, over the counter packages like Arduino Nano as a microcontroller, I chose to layout the ATmega328P. I also implemented a custom circuit for the 12V to 5V buck converter using a TI chip. A complimentary constraint due to the limited space in the Kitty Caddy chassis was size of the PCB; hence I used a 4 layer PCB layout for an easier layout and routing.

Kitty Caddy Schematic

The schematic for Kitty Caddy was designed in KiCAD EEschema. The ATmega328P microcontroller is powered by a TPS5430DDA buck converter that takes in 12V from a barrel jack connector and outputs 5V. The ATmega can be programmed using an ICSP connector and also using a standard Serial connector. The DS3231 Real-Time Clock is used to track current time even when the PCB is powered off. The UI consists of the OLED display and three input buttons, UP, MODE, and DOWN. The buttons are used to control the movement of feeder tray and are hooked up to a 74HC14D Schmitt trigger inverter for hardware implemented debouncing; the debounced signal is connected to the ATmega. The DRV8825 module is used to control the bipolar stepper motor that revolves the feeder tray. An optocoupler is used to track the feeder tray position.

Kitty Caddy PCB Design

The PCB layout was performed in KiCAD PCBnew. The top layer was PCB GND and was used for routing a few tracks. The first inner layer was filled with 5V plane and was the primary routing layer. The second inner layer was filled with 12V plane and was used primarily for routing tracks to the stepper motor connector. The bottom layer was another GND plane. The PCBs were manufactured and assembled by JLCPCB, a Chinese PCB manufacturer that specializes in low cost PCBs with a fast turnaround.

 

Top Layer - GND

Inner Layer 2 - 12V

Inner Layer 1 - 5V

Bottom Layer - GND

3D Model of Kitty Caddy PCB

 
Kitty_Caddy_Front.jpg

PCB Front

This side of PCB is visible to the user after disassembling the housing. The front side of the PCB consists of the OLED display and three input buttons. PCB front corresponds to the bottom GND layer.

Kitty_Caddy_Back.jpg

PCB Back

This side of PCB houses almost all the components. PCB back corresponds to the top GND layer.

 
Kitty_Caddy_Final.jpg

Final Deliverable

The image on the right shows the final version of Kitty Caddy. It can be powered through a wall supply, keeps track of time even when plugged off and provides your cat with a fresh bowl of cat food every day! The OLED display notifies you when Kitty Caddy is running low on food.

Previous
Previous

Rotary Torque Sensor

Next
Next

Freeze Tag mini-robots