Watch it work
The problem
An automatic fish feeder with timer and portion control is an Arduino-based aquarium device that feeds fish on a fixed schedule without anyone standing at the tank. The Arduino Uno reads the time from a DS3231 real-time clock, and when a scheduled feeding time arrives it drives a small screw auger for a set run time, so a measured portion of tiny 1–3 mm floating pellets drops through a dispensing tube onto the water surface. The pellets are stored in a sealed hopper with a screw-cap lid, a silicone gasket, and a replaceable desiccant sachet, because the air above an aquarium is humid and damp pellets swell, stick, and clog an open feeder. A black tank-rim clamp holds the dispenser over the water, a small display and push buttons set the feeding times and portion size, and a vacation mode runs the same schedule unattended for 7–14 days (design target, depending on hopper fill and portion size).
Aquarium fish are usually fed by hand, which fails in exactly the situations when a regular routine matters most: a weekend away, a holiday, a busy exam week, or an early morning when nobody is home. Uneaten food is the other half of the problem, because a generous handful sinks, decays, and fouls the water, while too little food leaves fish underfed. This project answers both halves with the same mechanism: a clock that never forgets the schedule, and an auger whose run time sets the portion, so the same small amount is delivered at the same times every day. Builder note from the build: an early open hopper beside a tank clogged at the outlet because damp air softened the pellets, and the fix that stayed in the design is a sealed lid with a gasket, a desiccant sachet inside the hopper, and a closed auger tube so that only the dispensing tip sits over the water.
Keeps the time of day.
Follow the working sequence
How it works
The automatic fish feeder works as a fixed chain from clock to water: the DS3231 real-time clock keeps the time of day, the Arduino Uno compares that time with the programmed feeding schedule, and when a scheduled time arrives the controller switches on a small DC gear motor for a set run time. That motor turns a screw auger inside a closed tube, and each turn carries tiny 1–3 mm floating pellets forward from the sealed hopper and drops them through the dispensing tip onto the water surface. The hopper stays sealed by a screw-cap lid, a silicone gasket, and a desiccant sachet, so humid air above the tank cannot soften the pellets before they are dispensed. After the set run time ends, the motor stops, the auger holds the remaining pellets back, and the controller returns to watching the clock until the next scheduled feeding.
- The owner fills the sealed hopper with 1–3 mm floating pellets, places a fresh desiccant sachet inside, and closes the screw-cap lid so the gasket seals the hopper.
- The feeder is clamped to the rim of the glass aquarium so the dispensing tip sits over open water, clear of the filter outlet and any tank lid.
- Feeding times and portion size are set with the push buttons and the 16×2 LCD display, using the manual feed button to test one portion and adjust the auger run time.
- The DS3231 real-time clock keeps the time of day, and the Arduino Uno checks the current time against the programmed schedule in its main loop.
- At a scheduled time the Arduino drives the DC gear motor for the set run time, turning the screw auger inside its closed tube.
- The auger carries pellets forward and drops the measured portion through the dispensing tip onto the water surface, then stops and holds back the remaining feed.
- The controller returns to watching the clock and repeats the same cycle at the next scheduled time, including throughout vacation mode.
This project vs a pet feeder vs manual feeding
| Feature | This aquarium fish feeder | A pet feeder for dogs or cats | Manual feeding by hand |
|---|---|---|---|
| Animal and feed | Aquarium fish · tiny 1–3 mm floating pellets over water | Dogs or cats · 5–15 mm kibble into a bowl | Any fish · whatever handful is given |
| Core engineering problem | Aquarium humidity: pellets swell and clog in damp air | Large kibble flow and bowl capacity | Remembering the schedule and judging the portion |
| Moisture protection | Sealed hopper · screw-cap lid · gasket · desiccant sachet | Open or loosely lidded kibble bin · no moisture problem to solve | Open feed container on a shelf |
| Dispensing mechanism | Sealed screw auger with timed micro-portions | Large rotating drum or flap for kibble | Handful or spoon |
| Mounting | Tank-rim clamp over the water surface | Floor-standing unit beside a bowl | Standing at the tank |
| Unattended use | Vacation mode · 7–14 days (design target) | Timed meals while the owner is away | Not possible without a person present |
| Voice module · load-cell weighing · camera · cloud link | None of these are included | Often included in premium pet feeders | Not applicable |
Tech stack:
- Arduino Uno · ATmega328P controller board
- DS3231 real-time clock module
- Small DC gear motor · screw auger dispenser
- Sealed pellet hopper · screw-cap lid · silicone gasket
- Desiccant sachet · replaceable moisture absorber
- 16×2 LCD display · push-button setup
- Tank-rim clamp mount
- Arduino IDE · C++ firmware
| Parameter | Value |
|---|---|
| Controller | Arduino Uno · ATmega328P · 16 MHz clock (datasheet value) |
| Real-time clock | DS3231 · accuracy ±2 ppm from 0 °C to +40 °C (datasheet value) |
| Feed type | Floating pellets · 1–3 mm size |
| Dispensing mechanism | Screw auger in a closed tube · DC gear motor drive |
| Feeding times | Up to 2 times per day (design target) |
| Portion control | Auger run time set in firmware · calibrated by the owner with a test portion |
| Hopper | Sealed container · screw-cap lid · silicone gasket · replaceable desiccant sachet |
| Hopper capacity | Approximately 200 ml (design target) |
| Mounting | Tank-rim clamp · fits a standard glass aquarium rim (design target) |
| Display and setup | 16×2 LCD · push buttons · manual feed button |
| Vacation mode | 7–14 days unattended (design target · depending on hopper fill and portion size) |
| Power requirement | 5 V DC adapter (design target) · USB power for programming |
| Connectivity | None · no Wi-Fi · no cloud link · schedule stored on the controller |
Project features
The automatic fish feeder is built around four capabilities that define how it works: a real-time clock schedule that triggers feeding at set times of day, a screw-auger dispenser whose run time sets the portion of tiny pellets, a moisture-sealed hopper with desiccant that keeps aquarium feed dry above a humid tank, and a tank-rim clamp mount that places the dispensing tip directly over the water surface. Together these give a feeder that runs on its own, delivers the same portion every time, and survives the damp air that defeats open containers, while a small display and push buttons let the owner change times and portions without reprogramming the board. A vacation mode extends the same schedule across 7–14 days unattended (design target), so the feeder is useful for holidays as well as daily routine.
- [Real-time clock feeding schedule] The DS3231 real-time clock holds the time of day, so the Arduino triggers feeding at the programmed times even after a power interruption, with a datasheet accuracy of ±2 ppm from 0 °C to +40 °C, and the owner sets up to 2 feeding times per day (design target) through the buttons and display.
- [Screw-auger portion control] A small DC gear motor turns a screw auger inside a closed tube for a set run time, so each feeding delivers a repeatable portion of 1–3 mm floating pellets instead of a shaken handful, and the portion is changed by adjusting the auger run time in the settings.
- [Moisture-sealed hopper with desiccant] The pellet hopper closes with a screw-cap lid and a silicone gasket and carries a replaceable desiccant sachet, so humid air above the tank does not soften the pellets and clog the outlet, and the hopper can be opened, refilled, and resealed without tools.
- [Tank-rim clamp mount] A black clamp grips the rim of a glass aquarium and holds the dispenser over the water, so no drilling, gluing, or permanent fitting is needed, and the feeder can be moved to another tank by loosening the clamp.
- [Vacation mode for 7–14 days] Once the hopper is filled and the schedule is set, the feeder repeats the same daily schedule unattended for 7–14 days (design target, depending on hopper fill and portion size), so fish are fed during short holidays without a neighbour visiting daily.
- [Button and display setup] A small 16×2 LCD display and push buttons show the current time, the next feeding time, and the portion setting, so feeding times and portion size are changed at the tank without a computer or a phone.
- [Manual feed button] A single press of the manual feed button runs one extra portion immediately, which is useful for testing the portion size during setup and for an occasional extra feed, without changing the programmed schedule.
What is included
- Working automatic fish feeder prototype with sealed hopper, screw auger, and tank-rim clamp
- Arduino Uno board with DS3231 real-time clock module, display, and push-button controls
- Firmware source code with feeding schedule, portion setting, and vacation mode
- Circuit and wiring documentation with component list
- Setup guide covering portion calibration, schedule setting, and desiccant replacement
- Project report PDF covering mechanism, moisture-sealing design, and test procedure
- Presentation slides for the final review
- Viva preparation notes on real-time clocks, auger dispensing, and embedded timing
Limitations & prerequisites
- Portion size is set by auger run time and must be calibrated by the owner: the same run time delivers a different pellet count for different pellet brands and sizes, so a test portion must be checked before vacation use.
- The feeder suits dry floating pellets of 1–3 mm only; flakes, large pellets, frozen food, and live food are out of scope because they bridge, crumble, or block the auger tube.
- Humidity protection depends on the lid gasket and a fresh desiccant sachet: a worn gasket or a saturated sachet lets damp air in, so both must be checked and replaced on schedule.
- The schedule is stored on the controller with no phone app and no cloud link, so feeding times can only be changed at the tank with the buttons and display.
- Power comes from a 5 V DC adapter, so a mains power cut stops scheduled feedings until power returns, and the real-time clock battery must be fitted for the clock to hold time through an outage.
- The clamp fits a standard glass aquarium rim (design target); rimless tanks with very thick glass, curved rims, or a fully closed lid may need a different mount agreed before the build.
- This is an academic prototype, not a commercial aquarium product, and it does not monitor water quality, fish health, or whether the fish actually ate the portion.
Frequently Asked Questions
Is this project suitable for a final-year project?
Yes, it fits Electronics and Telecommunication programmes well because it combines embedded timing, motor control, and a real mechanical dispensing problem in one working prototype, demonstrating real-time clock interfacing, firmware scheduling, auger mechanism design, and the moisture-sealing problem that is specific to aquariums. The report documents a buyer-run calibration test that the team can repeat during demonstration.
How is this different from a pet feeder?
This feeder is built for aquarium fish, not for dogs or cats, so it solves a different problem with different feed, a different mechanism, and a different mount, dispensing tiny 1–3 mm floating pellets over a water surface instead of 5–15 mm kibble into a bowl. Pet feeders often add a voice module, load-cell weighing, a camera, or a cloud link, while this feeder uses a moisture-sealed hopper on a tank-rim clamp, with no voice module, load cell, camera, or cloud link included.
Why does the hopper need sealing and desiccant?
Aquarium air is humid, and damp pellets swell, stick together, and clog the outlet of an open feeder, so the sealed hopper is the core of this design rather than an extra, protecting feed that would otherwise spoil above the tank. The screw-cap lid and silicone gasket keep humid air out, the replaceable desiccant sachet absorbs the moisture that remains inside, and the closed auger tube means only the dispensing tip sits over the water.
How is the portion size set and checked?
The portion is set by the auger run time in the firmware, so a longer run time delivers more pellets and a shorter run time delivers fewer, with no weighing sensor involved and no fixed weight guaranteed for any pellet brand. During setup the owner presses the manual feed button, counts or weighs the test portion, and adjusts the run time until the wanted portion is delivered, then leaves that setting for the programmed schedule.
How long can it run unattended in vacation mode?
Vacation mode repeats the programmed daily schedule unattended for 7–14 days as a design target, depending on how full the hopper is and how large each portion is, so a full hopper lasts longer with small portions than with large ones. Before leaving, the owner fills the hopper, fits a fresh desiccant sachet, runs a test portion, and checks that the dispensing tip sits over open water, because an empty hopper or a blocked tip cannot be fixed remotely.
Can the feeder be customised?
Yes, realistic changes include more feeding times per day, a larger hopper, a different clamp for a thicker tank rim, or a battery-backed power option agreed before the build starts and documented in the report, without changing the core sealed-auger design. A phone app, a camera, or cloud control can be discussed as a separate modification, but none of those is part of the base build, which is deliberately kept offline and button-operated.
Components & software requirements
- Arduino Uno · ATmega328P controller board
- DS3231 real-time clock module
- Small DC gear motor · screw auger dispenser
- Sealed pellet hopper · screw-cap lid · silicone gasket
- Desiccant sachet · replaceable moisture absorber
- 16×2 LCD display · push-button setup
- Tank-rim clamp mount
- Arduino IDE · C++ firmware
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.
Download free synopsis (PDF)
Enter your name and WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.