[Yet another] Frozen Fish Food Feeder

KWolfe81

Community Member
View Badges
Joined
Aug 4, 2021
Messages
86
Reaction score
78
Location
PNW
Rating - 0%
0   0   0
Heyas. A few weeks ago I set out to build my own home-brew automatic fish food feeder. The project is coming along nicely and I figured it's time to share my progress.

CONOPS:
The general premise is to keep "frozen" food in a salt-water bath, chilled to just below normal freezing point. The food mix is placed on a combination stir-plate scale - such that I can mix the food with a stir-bar and measure the weight of the food mix as well. The food is pumped out directly to the tank via a peristaltic pump. The whole setup is controlled via a custom ESP32S2 board, running a web page for control & status.

1667109157111.png


1667108515859.png


The cooler:
I purchased a small 9L portable 12v refrigerator cooler that chills via a small compressor. This is more costly than equivalently sized Peltier/TEC coolers but reaching freezing is just at the cusp of what a TEC cooler can do. And it certainly wouldn't be efficient. Link to the cooler I purchased here. I've been running the cooler at -2F for a week now and it seems to be holding temp steady. The lid is also easily removable so I'll be able to fabricate a custom lid for feedings, and then return the unit to stock for camping/picnick purposes.

1667104414662.png


The scale/stir plate:
I cut 3 6"x6" plates from acrylic. The load cell is a standard 5kg cell purchased from Amazon. The cell connects to an HX711 amp. The HX711 board is soldered to the load cell with very short leads to reduce noise. Unfortunately, this means that it'll be stored in the cooler. I have not verified it'll run at the colder temps and I may need to conformal coat the board at some point.

1667108444303.png


The stir plate is a very small thin laptop exhaust fan with a strong hard-drive magnet glued to the top.

1667108422264.png


Controller Board:
I designed a PCB board to mount an ESP32-S2-WROOM module, a DC power jack, a switching regulator/LDO, some motor drivers, and an interface for a 1.3" OLED display. Using the motor drivers, I can control pump speed via PWM as well as run the pump forward and reverse.

I screwed up the schematics/electrical design in a couple of different ways but learned a bunch. At some point, I'll fix the issues and build a v2 board (particularly if anyone else is interested in building one of these too). Schematic & PCB designed with KiCad and I'd be happy to share as well.

1667108480242.png



ESP32 Design:
The ESP32 hosts a very simple webpage that provides the main user interface and performs all of the state machine control/automation for feedings. The MCU first connects to WIFI, grabs current time via NTP, pulls parameters from flash memory, and then goes idle until the next scheduled feeding:

1667107447360.png


Link to the ESP32 project code for anyone who's really interested. I rushed the code and there are a few things done poorly (thread safety issues), but this will get me through the prototype stage. I'll clean it up at some point. Maybe.

Scale calibration:
The scale must be calibrated to convert raw HX711 ADC measurements into units (grams). The user is instructed to clear the scale and then the scale is tared. Next, the user is instructed to place a 20-gram weight on the scale, ADC measurements are read, and the corresponding multiplier is stored in flash memory.

Tubing calibration:
To account for the unknown tubing length, a tubing calibration is required. The user first places an empty food container on the scale. The pump then runs forward for 60 seconds, pumping air through the tube to ensure it's empty. The scale is then tared and the pump is run in reverse until the scale measures water filling the food container. The time it takes to pump water from the tank to the food container is saved in flash memory and used then used during feedings.

Scheduling feedings:
The user is instructed to weigh the food container, first empty, and then with the prepared food mixture. The user then enters the number of feedings they would like. Dividing the weight of the mixture by the number of feedings gives the weight of the mixture per feeding, and this value is stored in flash.

Feeding:
First, the stir bar is run for 15 seconds to ensure the food mixture is, well, mixed well. The pump then runs at a slow speed until the scale indicates the appropriate amount of mixture has been pumped out. The pump then runs for the tubing calibration time saved above to push all the food into the tank. The pump then runs in reverse, drawing fresh tank water into the tube to clean it out.

Next steps:
Assembly & test. I need to put the controller board and pump in a project box and re-wire everything. I'll also need to fabricate a lid. After that, I plan on doing week-long tests. I hope to have the full thing ready to go such that I can use it with confidence over the holidays.

1667104195284.png 1667105112171.png
 

Brewtoszek

Community Member
View Badges
Joined
Sep 3, 2020
Messages
61
Reaction score
85
Location
Bethlehem
Rating - 0%
0   0   0
Very cool project and awesome write up! I've been thinking about something similar lately as well so will be very interested to see how this works out for you. Like your idea for flushing the line after feeding to keep it clean. Are you planning to keep this unit above the line you have in the tank?

Is your reasoning for keeping the mix sub 32F to keep it fresh longer?

Might be worthwhile to include a temp probe in the refrigerator as well to make sure your holding the range you want, even just a simple thermistor would probably do the trick. Just thinking if the compressor/fans ever stopped working for some reason.
 
OP
OP
K

KWolfe81

Community Member
View Badges
Joined
Aug 4, 2021
Messages
86
Reaction score
78
Location
PNW
Rating - 0%
0   0   0
Are you planning to keep this unit above the line you have in the tank?
The whole assembly will probably be at the same height as my stand. The pump should have no problem with the head-height, but I suppose this is another thing I should test. Horizontal tube length definitely will not be a problem.

Is your reasoning for keeping the mix sub 32F to keep it fresh longer?
Exactly. One of the issues I am running into is that my salt-water slurry is freezing at the same temps as my fresh water. I may be overthinking/overestimating the need to keep it as cold as possible, but that was the original design goal.

Might be worthwhile to include a temp probe in the refrigerator as well to make sure your holding the range you want, even just a simple thermistor would probably do the trick. Just thinking if the compressor/fans ever stopped working for some reason.
You're totally right! I even meant to do this from the get-go but completely forgot when designing the circuit board. Got excited and built stuff too fast. Guess that might be my excuse for a v2.0.
 
OP
OP
K

KWolfe81

Community Member
View Badges
Joined
Aug 4, 2021
Messages
86
Reaction score
78
Location
PNW
Rating - 0%
0   0   0
What frozen food brands are you able to use in this system? What size tube is being used here? Thank you.
Good question! I've only been testing it with Hikari Frozen Mysis Shrimp at the moment but will be testing LRS Reef Frenzy next.

My tubing is 3/16 ID. The pump (purchase link) uses a 4.8mm ID BPT tube. The connection barbs would definitely be the most constricting part.
 

dschuffert

Well-Known Member
View Badges
Joined
Aug 11, 2022
Messages
669
Reaction score
1,888
Location
USA
Rating - 0%
0   0   0
Wow, this is quite the project; well done! I will be interested to see how it all works out.
 
OP
OP
K

KWolfe81

Community Member
View Badges
Joined
Aug 4, 2021
Messages
86
Reaction score
78
Location
PNW
Rating - 0%
0   0   0
Update:

1) As mentioned above, I've been testing with mysis shrimp. It's been going pretty well, feeding once a day. One issue I keep running into is the setup of feedings is a bit annoying. I made all my cables fairly short, so the enclosure sits on the lid. Any time I need to add food, take a peek inside, or whatever, I need to carefully manage the lid, cables, and tubing. This is compounded by the feed tube coming out directly vertically through the lid. There's probably a better setup with everything being decoupled from the lid itself.

2) Turns out, while away, I've really wanted to know what the temperature inside the cooler was, so I added a probe. I bought these guys. Some modifications to the enclosure, a panel connector, a pullup resistor, and now I have temperatures!

1668278942848.png


1668278965731.png


3) I added MQTT messaging to the ESP32 code for status and control via Home Assistant:

1668278399513.png

1668278422460.png
 
OP
OP
K

KWolfe81

Community Member
View Badges
Joined
Aug 4, 2021
Messages
86
Reaction score
78
Location
PNW
Rating - 0%
0   0   0
Found this interesting.... plot of temperature v. time:

1668293762187.png
 
OP
OP
K

KWolfe81

Community Member
View Badges
Joined
Aug 4, 2021
Messages
86
Reaction score
78
Location
PNW
Rating - 0%
0   0   0
Small update: dealing with the wires was cumbersome. Took some time to move all of the wiring and electronics out from the enclosure box and into the refrigerator body itself. This decouples scale/stir plate wiring from the lid, which makes filling so much easier. I'm also tapping into the refrigerator power supply, eliminating the need for an additional power brick.

Biggest actual issue feeding the fish: forgetting to put the stir bar into the food container when setting everything up.

PXL_20221116_162929937.jpg

PXL_20221116_162947182.jpg
 

iLMaRiO

Well-Known Member
View Badges
Joined
Jun 24, 2020
Messages
601
Reaction score
132
Rating - 0%
0   0   0
something is not clear to me.
you keep frozen food in a salt water bath, so it's kept Frozen

how do you unfroze only the right amount? or do you unfroze all, stir, dose the needed amount and then froze everything else again?
 

goldfish423

Active Member
View Badges
Joined
Mar 24, 2022
Messages
138
Reaction score
107
Location
Minnesota
Rating - 0%
0   0   0
It’s constantly being stirred meaning it shouldn’t freeze completely. Might become slushy? But not if kept right below freezing. Is my guess.
 

iLMaRiO

Well-Known Member
View Badges
Joined
Jun 24, 2020
Messages
601
Reaction score
132
Rating - 0%
0   0   0
but if not frozen , the "shelf life" is very small, a couple of day max. That's why it's called frozen food, has to be kept frozen, not very cold.
 

ReeferAl

Community Member
View Badges
Joined
Jun 24, 2009
Messages
89
Reaction score
27
Location
Fond du Lac, WI
Rating - 0%
0   0   0
I've been running a "frozen" food feeder for about 20 years. I previously posted about it on another forum. I've found that the food still smells fresh for a week or so. Not that I would eat it after 5 or 6 days in the fridge but I suspect fish are less picky. How many times have you seen fish eat the poop of other fish? I have never lost a fish attributable to the food. IOW, when I have lost fish (not common) there is generally a clear reason why.
I found the same issue with temp. It's a fine line between being near freezing and having the tubing freeze solid. FWIW, I stir the food only about 5 minutes per hour to minimize macerating the food and feed about every hour during daylight hours. My tubing has 1/4" ID and handles mysis, "plankton" shrimp and brine shrimp easily.
 

Tropel

New Member
View Badges
Joined
Dec 25, 2023
Messages
1
Reaction score
0
Location
Lorqui
Rating - 0%
0   0   0
Small update: dealing with the wires was cumbersome. Took some time to move all of the wiring and electronics out from the enclosure box and into the refrigerator body itself. This decouples scale/stir plate wiring from the lid, which makes filling so much easier. I'm also tapping into the refrigerator power supply, eliminating the need for an additional power brick.

Biggest actual issue feeding the fish: forgetting to put the stir bar into the food container when setting everything up.

PXL_20221116_162929937.jpg

PXL_20221116_162947182.jpg
Grettings from Spain. Please could you send me the electrical diagram of this project? I would like to know if finally I could to build it.
Heyas. A few weeks ago I set out to build my own home-brew automatic fish food feeder. The project is coming along nicely and I figured it's time to share my progress.

CONOPS:
The general premise is to keep "frozen" food in a salt-water bath, chilled to just below normal freezing point. The food mix is placed on a combination stir-plate scale - such that I can mix the food with a stir-bar and measure the weight of the food mix as well. The food is pumped out directly to the tank via a peristaltic pump. The whole setup is controlled via a custom ESP32S2 board, running a web page for control & status.

1667109157111.png


1667108515859.png


The cooler:
I purchased a small 9L portable 12v refrigerator cooler that chills via a small compressor. This is more costly than equivalently sized Peltier/TEC coolers but reaching freezing is just at the cusp of what a TEC cooler can do. And it certainly wouldn't be efficient. Link to the cooler I purchased here. I've been running the cooler at -2F for a week now and it seems to be holding temp steady. The lid is also easily removable so I'll be able to fabricate a custom lid for feedings, and then return the unit to stock for camping/picnick purposes.

1667104414662.png


The scale/stir plate:
I cut 3 6"x6" plates from acrylic. The load cell is a standard 5kg cell purchased from Amazon. The cell connects to an HX711 amp. The HX711 board is soldered to the load cell with very short leads to reduce noise. Unfortunately, this means that it'll be stored in the cooler. I have not verified it'll run at the colder temps and I may need to conformal coat the board at some point.

1667108444303.png


The stir plate is a very small thin laptop exhaust fan with a strong hard-drive magnet glued to the top.

1667108422264.png


Controller Board:
I designed a PCB board to mount an ESP32-S2-WROOM module, a DC power jack, a switching regulator/LDO, some motor drivers, and an interface for a 1.3" OLED display. Using the motor drivers, I can control pump speed via PWM as well as run the pump forward and reverse.

I screwed up the schematics/electrical design in a couple of different ways but learned a bunch. At some point, I'll fix the issues and build a v2 board (particularly if anyone else is interested in building one of these too). Schematic & PCB designed with KiCad and I'd be happy to share as well.

1667108480242.png



ESP32 Design:
The ESP32 hosts a very simple webpage that provides the main user interface and performs all of the state machine control/automation for feedings. The MCU first connects to WIFI, grabs current time via NTP, pulls parameters from flash memory, and then goes idle until the next scheduled feeding:

1667107447360.png


Link to the ESP32 project code for anyone who's really interested. I rushed the code and there are a few things done poorly (thread safety issues), but this will get me through the prototype stage. I'll clean it up at some point. Maybe.

Scale calibration:
The scale must be calibrated to convert raw HX711 ADC measurements into units (grams). The user is instructed to clear the scale and then the scale is tared. Next, the user is instructed to place a 20-gram weight on the scale, ADC measurements are read, and the corresponding multiplier is stored in flash memory.

Tubing calibration:
To account for the unknown tubing length, a tubing calibration is required. The user first places an empty food container on the scale. The pump then runs forward for 60 seconds, pumping air through the tube to ensure it's empty. The scale is then tared and the pump is run in reverse until the scale measures water filling the food container. The time it takes to pump water from the tank to the food container is saved in flash memory and used then used during feedings.

Scheduling feedings:
The user is instructed to weigh the food container, first empty, and then with the prepared food mixture. The user then enters the number of feedings they would like. Dividing the weight of the mixture by the number of feedings gives the weight of the mixture per feeding, and this value is stored in flash.

Feeding:
First, the stir bar is run for 15 seconds to ensure the food mixture is, well, mixed well. The pump then runs at a slow speed until the scale indicates the appropriate amount of mixture has been pumped out. The pump then runs for the tubing calibration time saved above to push all the food into the tank. The pump then runs in reverse, drawing fresh tank water into the tube to clean it out.

Next steps:
Assembly & test. I need to put the controller board and pump in a project box and re-wire everything. I'll also need to fabricate a lid. After that, I plan on doing week-long tests. I hope to have the full thing ready to go such that I can use it with confidence over the holidays.

1667104195284.png 1667105112171.png
Hi Kwolfe81, grettings from Spain, please could you send me the pcb and electrical diagram ?
[email protected]
Thank you in advance.
 
Back
Top