The "all in One Box" Aquarium Feeder




Introduction: The "all in One Box" Aquarium Feeder

About: Hello I am Brian from Belgium. you know......the small country of chocolate beer and french fries. My hobbies are: aquariums, jeet kunne do (martial arts) ,small 4 stroke motor bikes, and Arduino projects I…

Hi i am Brian

For several years now i owning a large 400 liter aquarium.i was always fasinated by fish in all colors and shapes.keeping fish happy wil require a bit keeping the thank nice and clean.trimming the plants.the once in a week water change. ect...

also fish like to eat :)

But i have a pretty bussy life.Sometimes i am away for the entire week.Water changes can wait.And the plants can survive a skipped trim job.But fishes do need food once a day.And there is no one to do that in the house so i purchased a automatic fish feeder.

But there are drawbacks to the feeder i bought

  • runs on battery power and will not last a week
  • wil drop the amount of food that is required all in one big pile (creating lots off pollution in the tank)
  • 3.the capacity of the feeder is to smal for a week supply of food.
  • cost over 50 euro!!

so i brainstormed a design with these specifications:

  • big storage capacity,
  • not battery powered ,
  • give the food slowly instead of all in one go.
  • reliability
  • non open top (to keep the food fresh longer)
  • relatively cheap
  • adaptable to different types of food (flakes,pallets)
  • have control over the amount of food per feed cycle
  • can be made wit parts everyone can easely find

So here is my version on the automatic fish feeder:)

Step 1: Things You Will Need

the images show you what you need.

  • you will also need (but is not shown in picture
  • soldering iron
  • shrink tubes
  • lighter
  • 5 volt power supply
  • usb cable (to program you're arduino)

info on the foamed pvc sheet

This is a material that is very easy to cut whit the stanly knife.i found it at the local hardware store.its 6 mm thick and is 50 cm on 100cm in dimension.if you can't find this you can also use 6mm thick plywood.however you need to apply a layer of varnish to protect it against water

info on the motor

the 28byj-48 stepper motor is used because it have build in gearbox and have (relatively to its size) a high torque
it is found on ebay (or other site's) for around 3 euro's. most of the time the ULN2003 Driver Board is included when you're buying it.

info on the arduino

basically you can use any 5 volt arduino,i used a nano because otherwise it will not fit inside the box

Step 2: Making the Motor Coupling

Take you're silicone cap and cut off a small piece on the narrowest side

press the cap onto the motor axis

make sure it is a snug fit

its better to cut of a small amount of plastic at a time and check if the axis will fit

then put the dribit into the other side of the cap

Step 3: Preparing the Box

glue the plastic sheets off 5x7 cm together

take you're sheets of 7x7 cm and place them in a V shaped way inside the box



then glue the plastic sheets to the box as shown into the picture

Step 4: How to Glue the Peaces in Place

this step shows you ho to glue the plastic sheets into the box

this is (i think) pretty self explaining

make sure you seal all the seems with glue

if i only had a 3d printer this would make this much more professional looking :)

Step 5: Inserting the Drill

drill a hole just above V shape with the drill bit that will be embedded into the box

also go trough the two plastic sheets KEEPING THE DRILBIT STRAIGHT

after the drill is in place make sure you can spin in free whit your hands

if not make the holes a tiny bit bigger

Step 6: Assemble the Drill Bit Assembly

put on you're gloves and start to knead the glue stick (i used a halve portion)

drop a little ball into the large end of the cap and put the drill inside

press firmly

next put the rest of the glue around the drill and the cap

keep the drill and the cap perfectly aligned

cut of the glue while it is still soft to make a flat edge

Step 7: Attaching the Motor to the Box

make a large hole into the backside of the box.

make sure the cap can fit trough the hole you just made

putt the drill bit assembly trough the holes

press the motor axis onto the drillasembly

drill two holes for the motor bolts

fasten in with the m4 nuts and bolts

Step 8: The Motor Driver

now it is time to wire the arduino

on the driver board you will find 4 pins called

  • in1---> connect to digital pin d2 on you're arduino
  • in2---> connect to digital pin d3 on you're arduino
  • in3---> connect to digital pin d4 on you're arduino
  • in4---> connect to digital pin d5 on you're arduino

you will also find 4 other pins called

  • - solder a black wire to this pin
  • + solder a red wire to this pin
  • blank -->connect to other blank pin
  • blank -->connect to other blank pin

the blank pins are the ones right oft the + and - pin

there was a jumper over these pins but i lost i soldered them together

Step 9: More Wires

plug the motor into you're shield an presto!! you're motor driver is now finished

now take another (new piece) red and black wire (not the one coming from the motor driver)

  • red--->solder to 5v pin on you're arduino
  • black-->solder to gnd (ground) pin on you're arduino

now take the red wire from you're arduino and the red wire from the motor driver and twist them together

do the same with the black wire

the brains are done now

Step 10: Install the Software

now plug in you're arduino

install the accelstepper library found here

more info to drive the motor found here

this code is used to test the feeder


#define HALFSTEP 8

// Motor pin definitions

#define motorPin1 3 // IN1 on the ULN2003 driver 1

#define motorPin2 4 // IN2 on the ULN2003 driver 1

#define motorPin3 5 // IN3 on the ULN2003 driver 1

#define motorPin4 6 // IN4 on the ULN2003 driver 1

// Initialize with pin sequence IN1-IN3-IN2-IN4 for using the AccelStepper with 28BYJ-48 AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);

void setup() {

stepper1.setMaxSpeed(1200.0); //1200 is maximum speed otherwise the motor will stall stepper1.setAcceleration(200.0); //this i find the best acceleration speed stepper1.setSpeed(200); stepper1.moveTo(100000);//the more step the longer the drill spins

//if the drill spins in the wrong way add a -

//example: stepper1.moveTo(-100000);

}//--(end setup )---

void loop() {; }

Step 11: The Last Step

Make a "bridge" over the axis of the motor using leftovers of the foamed pvc sheet

now you have 2 places left and right of your axis.

  • in one place you putt the motor driver
  • in the other you place the arduino

glue a cover onto everything to shield the wires

make sure the red and black wire is sticking out off the box


every time you putt 5 volt on the wires the arduino will start speeding up the motor an deliver food to your beloved


play around with the settings inside the program to fit your needs .small or large foods,pellets flakes it will all take different settings

Step 12: The Result

Adding a timer to the project will add the functionality to automaticly feed your fish in 30 minutes intervals

the arduino program will run once every time the power is put on

watch the video's to see it all in action

thank you

and sorry for my bad english :)

Age of Aquariums Contest

First Prize in the
Age of Aquariums Contest

Microcontroller Contest

Participated in the
Microcontroller Contest

Formlabs Contest

Participated in the
Formlabs Contest

2 People Made This Project!


  • Box Challenge

    Box Challenge
  • Make it Real Student Design Challenge #3

    Make it Real Student Design Challenge #3
  • Colors of the Rainbow Contest

    Colors of the Rainbow Contest



6 years ago on Introduction

Have been looking for sth. like this for ages.
Will give it a try, thanks! :)


Question 2 years ago

Hello. first of all thanks for the tutorial! I am stuck at the code part, it seems i get a lot of error messages. can you help? thx


Reply 2 years ago

Thx for the answer. I did tried with that code but nothing happens. The code is compiled correctly, I tried it on two different Arduino Manos and one Arduino Uno. The code uploads but nothing happens, even after several hours....

Brian from Belgium
Brian from Belgium

Answer 2 years ago

Yes .can you send me a private mesage..i wil look at your problem


Question 2 years ago on Step 12

what is it #define HALF STEP 8 ?
Brian from Belgium
Brian from Belgium

Answer 2 years ago

Can you clarify your question please ?


3 years ago

Can it be made without arduino

Brian from Belgium
Brian from Belgium

Reply 3 years ago


Yes it can ve donne whit anny motor whitch has sufficient torque to rotate the dril..but beware that a slow motion is required..

And you wil have to use a timer whit short intervals otherwise the motor keeps spining for 15 minutes straight..

Feel free to ask more questions.
And if you really want the feeder.i can make you one if you like.

Greets Brian


3 years ago

Do i have to use an aduino or could i just use a motor and a timer??

Brian from Belgium
Brian from Belgium

Reply 3 years ago

You could use a regular dc motor. however you lose the ability to control the amount of food that is dispensend..also timers are devided in 15 minute that would mean your motor is turning for 15 minutes .if you want it is help you further through pm .greets brian


5 years ago

I'm wondering if several feeders could be operated simultaneously with one timer. I have multiple tanks in the house and 3 Jacuzzis full of tilapia in the larger aquaponics system outside. Would like to fed them all automatically


5 years ago on Introduction

nice item would it be possible to use a button to control the feeder if so how would it be done?

Brian from Belgium
Brian from Belgium

Reply 5 years ago

im working on a updated version. a keep you posted


5 years ago

i assume this can also be acomplished with the new arduino zero (costs about 5 bucks i believe) and an rtc module? i know nothing of arduino yet, but this seems to be a nice project to start with, since im also starting my own aquarium and a auto-feeding would be great considering i do weekly shifts and feeding time wont be the same every week.
if arduino zero and rtc module can acomplish this, can anyone point me an european (or even portuguese) store with all needed components, such the arduino zero, rtc module, current converter board and motor, please?
the plug timer seems cool, but as someone mentioned, when it triggers ON, it will last quite a bit of time on untill it triggers OFF, and probably will feed too much, correct?

Brian from Belgium
Brian from Belgium

Reply 5 years ago


If the timer triggers the feeder the duration the motor turns can be adjusted in the code in the arduino sketch. Currently I have no working version using an rct. The method mentioned in t he instructable was the easiest way to make it work

The code used for the length the motor is turning:

stepper1.setSpeed(200); stepper1.moveTo(100000);//the more step the longer the drill spins

Decrease '10000' for shorter feeding times


6 years ago

nice project but why adding an external timer instead of doing this in arduino code?