Introduction: Auto Pill Popper: Giving a Dog Their Medicine

About: I spend my time somewhere between engineering and art.

Our dog is getting old. She's somewhere between 12 and 13. A Border Collie and Blue Heeler mutt as best we can tell. She groans when she lays down. Naps a good portion of the day away. Is fickle about her food. Has poor social skills with dogs and unfamiliar humans. She'll literally jump with joy when she sees someone grab her leash.

She's a good dog.

Last weekend, around 10PM I heard her making a strange noise. When I walked into the bedroom, her entire body was convulsing in a seizure. With my arms around her trying to give her comfort, I feared that it was her last moments. It ended after about a minute, she vomited, and she seemed confused, exhausted, and overheated.

Two hours later it happened again.

After spending a small fortune at the after hours veterinary hospital with one additional seizure that night, 24 hours later she was back home with a container of anti-seizure medicine that she needs to take every 12 hours.

We give the pill to her on an 8 o'clock schedule. One at 8AM before going to work, the second at 8PM. I realized that it would be best to create a device to make sure she gets her medicine on time, so our schedule doesn't have to be dependent on being home on the 8's every day.

This is the first iteration of that device. It's a servo controlled by an Arduino to drop her pill covered in a peanut butter treat ball into her dog bowl. It rings a bell when this happens to hopefully condition her to take her medicine when she hears the bell.

So far, she's a little freaked out about it but she'll get curious a few moments later and eat what is in her bowl. I'm not convinced yet to trust this device but I'll be spending some time training her with treats and see if it becomes natural behavior.


3D printer
Diagonal cutters
Hot glue gun

Arduino Uno
Servo - standard size
Jumper wires (3 total)
Super glue
Magnets, rare earth, disc shaped, 10mm diameter X 3mm thickness (3 total)
Power supply, either USB charger or 9-12VDC with barrel connector for Arduino
Zip ties (2 total)
Screws or nails (to mount to the wall)
Call Bell

Step 1: 3D Printing

I printed out both parts with PLA at a 0.2mm layer height with 25% infill. As usual, my first print had some design flaws. Rather than reprinting the base, I just cut out a section that had to be removed with some diagonal cutters. I've modified the file so this will not longer be an issue for anyone else who prints it out.

Step 2: Assemble the Base

Using super glue, I glued the magnets into the base. This will hold the bell.

The M3 nuts, washers, and screws are for attaching an Arduino Uno (or similar) to the base. I used lock nuts because I had them around, you could probably get away with using regular nuts.

The servo attaches with zip ties looped around the holes at the top and bottom.

Wiring is very simple. A servo has three wires, signal, 5V, and ground (in this servo it is yellow, red, and black). Using jumper wires, connect the 5V wire to the 5V pin on the Arduino, ground to the GND pin, and the signal wire to digital pin 9.

Step 3: Load the Code

The code should be here listed as PillPopper.ino

It's a simple program that moves the servo 180 degrees to drop the food and move back to the starting position. It turns off the servo after doing this to save energy.

Step 4: Attaching the Cup to the Servo

Manually spin the servo the furthest counterclockwise position. Dollop some hot glue onto the inset circle of the cup and press it onto the round horn of the servo. Hold it together until the hot glue has hardened.

Step 5: Mounting and Finishing

Behind the bell, there are two wall mounting spots for nails or screws. I placed the device above our dog's food bowl and kind of up high. I don't think she would try to knock it down to get the treat if it was lower, but I thought it was better to be sure she couldn't reach it.

I needed to adjust the location of the bowl to make sure the treat doesn't bounce out.

This is the first iteration of the device. I wanted to get something built quickly and start testing it out. So far it has been functioning fine and is very consistent at dropping the food after exactly 12 hours. It will take some time to condition our dog to this device so she'll know to eat the pill treat ball when she hears the bell and the food drop into her bowl.

Pets Challenge

Second Prize in the
Pets Challenge