Get Free Shipping & Prusaments with the Prusa XL Summer Deal!

The "Big Dawg" Feeder

This is not an ordinary dog feeder. It can feed 8 dogs and has a storage capacity of around 40L.
4
1
0
29
updated April 28, 2025

Description

PDF

This is not an ordinary dog feeder

It is a weapon built for endurance, an instrument of control over hunger itself. The weak offer fragile devices that falter under pressure - feeders so frail they split open at the first scratch of a claw, crumble beneath the weight of a hungry beast, and surrender to chaos before the battle even begins. This is not one of them.

Rising 1 meter into the air, The "Big Dawg" Feeder stands like a fortress of steel (but it's actually plastic). Its 40-liter reservoir holds a stockpile of sustenance, delivered by the relentless force of an olds elevator — precise, efficient, unyielding.

Designed for the battlefield, it withstands the assaults of claws, teeth, and rage without faltering. Eight dogs are fed with certainty, without hesitation, without failure.

It is not a feeder.
It is a standard of strength.
It is the enduring power that hunger cannot overcome.

But it didn't work. After countless hours of design work and 3D Printing, the elevator required too much torque to turn it because of a jamming issue in the scoop system. We hope to release a version two which will work, but right now, we have no time left.

 

 

Features

  • Feeds up to 8 dogs
  • Meal time scheduling
  • Beautiful Web UI
  • Snack function
  • Food Level Low Alert
  • Holds up to 40L of dog food

Olds Elevator

This project uses the concept of an olds elevator. An explanation video can be found here

Assembly Instructions

Assembly Instructions can be found at the following links

Code

The code can be found at the GitHub Repository along with the setup instructions for the Raspberry Pi and Arduino.

The Raspberry Pi runs Node RED.

In the UI flow a UI control node outputs to a function that will call up the dog's feeding times and display them in the form node. When a form is saved, it's values are stored in the global context. Underneath those nodes there is another form node that is connected to a node that saves the forms values in the flow context. These nodes allow the user to choose a snack amount for their dogs. A form node lets the user log food added or taken out of the feeder so that the feeder can keep a rough estimate of the amount of food left. An error message will be triggered if the food level drops below 100g.

In the Feed Control flow an inject node injects: the current time as a JavaScript Date object and the dog's form data. This is fed into a node that converts the times from the dog's form data to JS Date objects. These values are fed into a function node that checks if it is time to be fed and of they have been fed already in that minute to prevent overfeeding. If it is time to be fed then it returns the JS object (found below) that contains the dog's id, the meal name, the amount of food and the time. If it is not time to be fed then the function returns null

msg.payload = {
  dogName: msg.dogID,
  meal: mealName,
  amount: dog[mealName + "Amount"],
  time: mealTime
};

The above object is passed into an MQTT out node which sends the object to the Arduino.

 

Arduino

When the Arduino powers up, it connects to Wi-Fi and subscribes to the MQTT topic: dogfeeder/receive. Then it zeroes the stepper2 using a magnetic hall sensor.

When a message is sent to the Arduino, the messageHandler function takes in the data and parses it to JSON. It then checks if the dogName is a list of dogs or just one dog. Then it gets the stepper positions for each dog from this function below:

int getDogAngle(const char* dogName) {
  if (strcmp(dogName, "dog1data") == 0) return 0 * 3;
  if (strcmp(dogName, "dog2data") == 0) return 90 * 3;
  if (strcmp(dogName, "dog3data") == 0) return 180 * 3;
  if (strcmp(dogName, "dog4data") == 0) return 270 * 3;
  if (strcmp(dogName, "dog5data") == 0) return 0 * 3;
  if (strcmp(dogName, "dog6data") == 0) return 90 * 3;
  if (strcmp(dogName, "dog7data") == 0) return 180 * 3;
  if (strcmp(dogName, "dog8data") == 0) return 270 * 3;
  return -1;
}

Once it has the correct positions, it queues the feed job. When it's turn comes, the job is dequeued and processed. The Arduino turns the stepper drivers on, stepper2 turns to the correct bowl and stepper1 dispenses the food.

 

Software Used
  • Autodesk Fusion 360
  • Dassault Systèmes SOLIDWORKS
  • Fritzing
  • Arduino IDE
  • Bambu Studio
  • Node-RED
Parts List

3D Printed Parts

Part NameQuantityPrint Settings
Screw Base_Normal3eSUN PETG with Manual Tree Supports (see image below). If there are no supports, it will fall over. Don't ask how I know that.
Screw Base_Short1eSUN PETG with No Supports
Motor Mount2eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Strength Settings. Automatic Tree Supports.
Top Gear_Teeth1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings. Automatic Tree Supports.
Top Gear_Bearing Sleeve1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings. Automatic Tree Supports.
Top Gear_Spacer1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings.
Bottom Gear_Teeth1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings. Automatic Tree Supports. Add pause at layer 60 to insert 6 captive M5 nuts.
Bottom Gear_Spacer1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings.
Bottom Gear_Bottom Cover1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings. Automatic Tree Supports.
Elevator Tube_Scoop1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings. Automatic Tree Supports.
Elevator Tube_Short1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings.
Elevator Tube_Normal2eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings.
Small Bevel Gear2eSUN PETG with No Supports 25% infill
Cap for Small Bevel Gear Taper Lock2eSUN PETG with No Supports 99% infill
Taper Lock for Small Bevel Gear2eSUN PETG with No Supports 99% infill
Discharge Chute_Top1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings.
Discharge Chute_Bottom1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings. Manual Supports. (see below)
Discharge Chute_Shaft Interface1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings. 6x Captive M3 nuts.
Discharge Chute_Extension1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings.
Discharge Chute_Top Interface1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings.
Discharge Chute_Lid1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings.
Discharge Chute_Bearing Housing1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings.
Taper Lock for Central Shaft_A1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings.
Taper Lock for Central Shaft_B1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings.
Universal Joint_Outer1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings.
Universal Joint_Inner1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings.
Elevator Tube_Collar1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings. Automatic Supports
Elevator Tube_Negative Collar1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings. Automatic Supports
Base Plate_Top Gear_Retainer for Bearing1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings. Automatic Supports
Base Plate_Piece 1 with 2x M3 Captive Nuts1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings. Automatic Supports. 2x M3 Captive Nuts
Base Plate_Piece 2 with 2x M5 Captive Nuts1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings. Automatic Supports. 2x M5 Captive Nuts
Base Plate_Piece 3 with 16x M3 Captive Nuts1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings. Automatic Supports. 16x M3 Captive Nuts
Base Plate_Piece 4 with 2x M5 Captive Nuts1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings. Automatic Supports. 2x M5 Captive Nuts
Base Plate_Centre Piece1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings.
Base Plate_Motor Assembly_Standoff_Tall1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings.
Base Plate_Motor Assembly_Standoff_Short1eSUN ePLA-ST. Bambu Lab Printers can use the 0.2mm Standard Settings.

Print Settings

eSUN PETG

eSUN ePLA-ST

Strength

 

Standard

Same as Strength but with these changes

Supports

Screw Base

Discharge Chute_Bottom

 

Tags



Model origin

The author marked this model as their own original creation.

License