bare bones open source pellet dispenser

Public Chat
Similar projects worth following

Alternative solution to commercially available feeders with simple design and general multi-purpose use (e.g., for behavioral tasks and easy integration with contingency-triggered pellet dispensing and clearing).

Initial prototype to be designed for use with 20mg pellets.

Target features include:

  1. Open-source pellet dispenser based on the mechanisms in FED3 
    1. major design change - angled pellet-loading "Ferris wheel " rotor  to minimize jams
  2. Two inputs for 
    1. TTL pulse-triggered pellet dispensing
    2. TTL-pulse triggered pellet removal via servo trapdoor with removable catch basin
  3. Test buttons to trigger pellet delivery and trap door for quality checks
  4. Photo-interrupter beam to ensure successful pellet drop
  5. RBG LED indicator for identifying pellet dispensing status / problems

x-zip-compressed - 4.65 kB - 11/16/2020 at 15:34


FED Printed Circuit Board Eagle files (.brd and .sch) and BOM

x-zip-compressed - 58.54 kB - 05/27/2020 at 15:38


  • PCB Assembly Video

    Brian M. Sweis06/17/2020 at 15:54 0 comments

    Below is the link to a video of me soldering together all the component of the PCB board @Lex Kravitz  designed!

    FED0 PCB Assembly Video Link

  • FED0 Printed Circuit Board!

    Lex Kravitz05/27/2020 at 17:22 0 comments

    I received the PCBs from Oshpark, in their beautiful After Dark color scheme!

    Here it is populated with the ULN2003 motor driver, TRRS audio jack, motor header, servo header, photointerrupter header, and 2 buttons and LEDs for user input/feedback!  All in a feather compatible board!  I made this with through-hole components for everything as we don't anticipate making enough of these to get them professionally fabricated.

    Finally, here's a video of it in action:

    PCB design files (Eagle) and BOM are in the Files area.

  • 3D design complete

    Lex Kravitz05/16/2020 at 15:33 0 comments

    Editable 3D design here.

  • Final prototype with triggered inputs

    Lex Kravitz05/16/2020 at 02:48 0 comments

    I finished this prototype today and mounted everything on a permaboard.  I updated the code to include two triggers, either triggered from the buttons on the board, or a TRRS input jack.  Here is the final design working.  The pellet dispenser has two inputs.  When the first is triggered it attempts to dispense a pellet until it detects one with the photo-interrupter.  When the second is triggered it moves a servo to open a trapdoor to remove the pellet.

    The Neopixel on the Adafruit Feather M4 also displays some status information:

    Green: All good, monitoring inputs

    Red: Dispensing

    Blue: Moving servo

    Green with red flash - Pellet dispenser encountered a jam and needed to clear itself

    The next step is a custom PCB! here's a sneak peak:

  • Servo mechanism to remove pellets

    Lex Kravitz05/12/2020 at 20:38 0 comments

    We added a servo mechanism to remove the pellet from the dish if it is not taken.  So far it's working well!

  • Update 5/11/20

    Lex Kravitz05/11/2020 at 16:18 0 comments

    The 3D design is almost done, lots of tweaks and it's dispensing super well now.  Starting to wire up the electronics and work on the code!  Here's what it looks like on a breadboard, once this is done we'll move to a PCB:

  • Dispensing and detecting pellets!

    Lex Kravitz05/04/2020 at 16:49 0 comments

    After a few rounds of tweaks, the pellet dispenser is operating pretty reliably!  I also added the photointerrupter for detecting when a pellet is dispensed.  Video below shows the current build.  The code (running on an Adafruit Feather M4 express) will turn the stepper 1/8 rotation forward (this is the distance between holes on the pellet disk) and 1/32 rotation backwards, and repeat this movement until it detects a pellet through the pellet tube.  When a pellet is detected the device will pause for 5 seconds.  In the final build it will dispense under external TTL control.

    Next up, going to add a servo to clear pellets out of the pellet dish if they're not taken within a period of time!

  • 3D design update 050420

    Lex Kravitz05/04/2020 at 16:29 0 comments

    I've been tweaking the 3D designs to use an angled dispensing approach, rather than the horizontal approach used in FED3.  The angled approach is interesting, in that it doesn't require a "foot" to prohibit multiple pellets from dispensing, which is a common solution for this problem used in most commercial pellet dispensers, as well as FED3.  Notice the "foot" poking in on the top of pellet hopper of FED3:

    While the foot method works, it can crush pellets and create dust, which leads to pellet jams.  The angled approach uses gravity to keep multiple pellets from aligning over the dispensing tube, thereby obviating the need for the foot.  It creates much less dust and seems to be more resistant to jamming. 

    I went through three major revisions of the design, with the first version containing a pellet disk and hopper the same size as FED3.  While this worked, the angled disk is less space efficient as it can only be ~1/3 filled with pellets or it risks dispensing multiples.  So this design only fit ~150 pellets.  I made two adjustments to increase the overall size of the device (version 2), and make it bulge out a bit at the bottom (version 3).  Version 3 can fit >500 pellets without dispensing multiples.  These are printed in PLA on a Sindoh 3DWox1 printer.

    Version 3 also seemed to be begging for some decoration so I also gave him an eyepatch :)

  • Spinning wheels

    Lex Kravitz04/24/2020 at 03:30 0 comments

    Got the stepper, servo, and Neopixel going, now just need to add TTL control to trigger each one, and the photo-interrupter pellet detection to terminate the stepper!

  • Electronics prototyping

    Lex Kravitz04/23/2020 at 20:45 0 comments

    To plan out the electronics we will start with the following components:

    1) 5V 1/64 geared stepperfor pellet dispensing, with Uln2003 stepper driver

    3) Micro-servo (note the one in the photo is continuous but we will use a non-continuous one in the final build)

    4) 2 BNC input jacks

    5) Sharp GP1A57HRJ00F photo-interrupter on Sparkfun breakout board.

    5) Adafruit M4 Express to control everything.  This microcontroller is really overkill for this project but it has a built in RGB Neopixel which saves us from buying one more part, and it can run either Arduino code or CircuitPython for maximal flexibility!

    We will assemble these on a breadboard and verify functionality before working on the 3D design.

View all 10 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates