$300 Food Computer - MVP



Thanks for the info. Strangely, I found the recent paper by Cornell myself about an hour ago. I think most of the information I’m looking for is available, I just have to do some serious searching to find it presented in ways I can use. I’ll look through all these resources over the next couple of days.


I want to put together a FAQ for the MVP - but am not entirely sure what should be included as opposed to what should be squeezed into the documentation/error handling in the software.

I think what is needed more immediately is accurate documentation of the operation of the software.

@RadioDave @bennis I know I indicated to both of you that I would write a FAQ - do you think it is necessary - if so, what would you suggest I include?


I don’t know if it is 100% necessary, but I think it would be helpful to include some possible common answers in some way. Some questions I had (and others might have) while building that could be helpful to include:

How do I set up the door to the enclosure?
What size SD card is required? And does it have to be blank?
How do I test the code once installed?
How much Python knowledge and experience do I need?
Once SD is installed, how do I know when Cron “started”?
Once SD is installed, I have a black screen with text, what do I type to start the interface?


I don’t have a lot of feedback for the details of the FAQ idea; I feel like I asked a lot of questions, but most of them related to things that have been changed already.

One suggestion, “Where to I go to find out more about setting up the Raspberry Pi?” Raspberry Pi Help Page

My initial idea was that you could use previously asked questions, but as I said, most of mine related to things that have been changed already. Another suggestion; “If my X doesn’t work properly, how do I correct it?” Answer: “Try Y and Z.”


Thanks, @bennis @RadioDave. I will write a FAQ thread over the weekend to answer these and some other questions people have identified. I really appreciate your feedback.

@drewthomas89 is working on another .img which will be smaller and we are doing the software documentation update with that.

I apologize I haven’t been able to finish the operational documentation. It’s been a roller coaster of a week. TechShop corporate went bankrupt, and all of our Food Computers are there. Thankfully some individuals/orgs in STL are stepping up to keep the doors open and we’ll be getting access next week.

Few other updates:

Aeroponic prototype
Computer Vision
Co2 module is in progress…


Hello, Peter. In recent time, i try make food computer through watching your 300$ food computer project.(Using your detail BOM and Youtube Video) I hope finish first my food computer until this week. Anyway, every moment i posted on my blog(http://og.linchpinsoft.com ) about food computer project. Can i introduce about your teams “300$ food computer project” on my blog?

In South Korea i talked a lot of people who have curiosity about food computer, but they have a threshold getting start food computer, so in my blog, i’am started sharing experience how to make food computer and how to source parts in South Korea. : ) If i introduce about your project really helpful to some people in Korea.


Very cool, I am more than willing to do whatever I can to help spread the word. Let me know what you’d like to know before introducing us on your blog, I’m more than willing to answer some questions for you and would like to learn more about your audience. Please start a forum post with updates from your blog as well, it’s very interesting!

Perhaps you can start by answering these questions there as well:

  1. How has sourcing parts been for you in Korea? Were you able to obtain everything?
  2. I reviewed some of your videos - I like many of your ideas like styrofoam reservoirs, are you making any improvements to our design?
  3. It looks like you’re doing a great job promoting the OpenAg community in Korea. How has that gone, have you had a lot of people contact you? @openag
  4. It looks like you have a special interest in software (Computer Vision) which I’d love to get your thoughts on. Perhaps there is an opportunity in the future for collaboration?
  5. Are you interested in growing aeroponically or making other any additions to the MVP design?

Also, just as FYI, the videos are slightly outdated. I would recommend using this documentation: $300 Food Computer


Thank You Peter.

I tried sourcing part in South Korea Online Market.Until now i have no problem sourcing parts in South Korea Local Market.(But next time i would trying making “peristaltic pump” to supply nutritious solution. I’m worried sourcing part for this peristaltic pump in South Korea. “Styrofoam Reservoirs” is very cheap and using easily make a hole on the cover what you want size. But this Styrofoam Box have a critical problem. It is not a perfect water-proof(At the same time we suffer difficult this problem. Probably next time we using some plastic cover(Plastic Bag) for water proofing.
In the South Korea i contact some company which have a plan to start, and some university student. They visit my office and talking about PFC. I hope in near future take a “MEETUP” in South Korea with people who have a interest about PFC : )

I honestly say to you i’m a new in this computer vision. But i have a huge expectation using CV with Indoor Farmings. From time to time i feel need sharing image of plants for training Image Data Mining. In near future we can talking and collaboration about this!

After making PFC, I would trying Aeroponics for strawberry(I have a experience a little growing strawberry farm(green house) in South Korea)!

2017.11.30(Recent Status Of our PFC in South Korea)

Your $300 Foo Computer Guide is really useful to our teams. And Thank you approving sharing your project on our blog!!


@house Would you be willing to post your BOM on the forums for anyone else interested in building the MVP in Korea? I’m noticing that many of your parts look different, but from what I can tell it should all go together just fine. As for the peristaltic, that’s something that @pspeth has been working on with his MVP and perhaps he can share his code/recommendations. I’m very interested to hear more about your work with strawberries. I just finished killing some in our MVP, I don’t think they like Deep-Water-Culture very much and need some sort of substrate.

Here’s the MVP FAQ document @bennis @RadioDave @melanieshimano @TechBrainstorm @briandmcgraw @wsnook don’t be afraid to be critical, feel free to add comments to the Google Doc, I’ll add whatever else you think would help a first-time builder.

I will now be focusing on documentation regarding “hacking” the software or at least modifying cron schedules and adding other components like Co2, etc. I’m doing the software documentation now. @webbhm has been working on an install script instead of the image, but in the meantime @drewthomas89 is working on a new image that is smaller and can fit on a 4G SD card (I know @bennis’s High-School ordered 10 from the BOM before I changed it to 16G).

IF ANYONE OUT THERE HAS PROBLEMS/QUESTIONS PLEASE DON’T HESITATE TO ASK. My nightmare is causing frustration and turning people off because of errors in documentation. I am just about ready to switch from recommending the training videos to the new PowerPoint format documentation (posted earlier in this thread) based on inconsistencies but want to finish the software portion first.


@Webb.Peter I just checked out your FAQ google doc. My thoughts on the FAQ and the build doc powerpoints:

  1. I like what you’ve done with covering important information. I haven’t tried to build one, but my impression is that you’ve covered a lot of what people would need to know.

  2. There are major potential benefits to keeping all your hardware and software docs in a version control system alongside of your code. Right now you’re missing out on that.

    With a device like this–practically speaking–the hardware and software are deeply interrelated. Changes you might want to make to hardware details could easily require a corresponding software change and vice versa. If you used github for everything, you could use branches and pull requests to manage coordinated changes to the hardware docs, software docs, and the code. With the pull request comment and review system, you could easily get a change ready, discuss and implement any necessary revisions, and release the changes all at once with a new version number.

    As things stand now, you’re forced to choose just one version of your code and hardware design for the google documentation to refer to. Keeping your code and documentation revisions in sync will be awkward. It’s going to be difficult to cross reference documentation edits with code edits because the revision timestamps in google drive won’t correspond to anything in github. For now, things are simple and it’s no big deal. As the design evolves and gets more complicated, revision management in google docs could become a major headache for you.



Today I harvested enough leaves from my first grow to allow my wife and I both have a salad. Here’s what my first grow (at about 28 days) looked like today before I harvested part of it:

The lettuce tasted great, but it didn’t completely compensate for the twice failed attempts to get spinach to germinate. I probably should post any further results in the “grow” forum, but I wanted to close the loop and report that my version of the MVP does in fact allow me to grow food that I can eat.


Hi, Im living in Canada and have just started to gather some parts. It’s almost always cheaper and quicker for me to order off Canadian sites. Most of the parts have been pretty easy to track down but Im not 100% sure with the fans. I found this as an alternative: https://www.newegg.ca/Product/Product.aspx?Item=9SIA9H560V2742
There are quite a few variables if you look at the sidebar: https://www.newegg.ca/Case-Fans/SubCategory/ID-573 Are there any important requirements, like the air flow, RPM and power connector type?

Really looking forward to putting it together, thanks so much for all the documentation :slight_smile:


@wsnook You’re 100% correct about lining up our versions. I do like the formatting capabilities of PowerPoint/Google Slides, and think that it is important to make the directions as intuitive as possible. Do you think it’s an OK practice to use a PDF/ReadMe Google Slide deck still even if it’s managed through GitHub along with software?

I spoke with @webbhm yesterday, and he is making some final modifications to the install script he has written. @drewthomas89 and I are going to use it to create a new image. I apologize to anyone out there having issues right now @DanB. My hope is to have this created by Wednesday, and then we will finish the new software documentation and by the weekend have a new release ready to go based on the new format hardware documentation, improved software stack, and updated FAQ/software guide. I plan to address common software questions things like “how do I change the photoperiod in Cron” in the FAQ as well.

I’m curious how the software install has gone for you @house. Any problems? Did you use an image or follow the ReadMe? By the way, your build looks great. It’s really cool how different some of the components you’re using are, but how similar the overall design is. Great to see that this is a reasonable project for other countries as well. Keep us in the loop about your blog!

@RadioDave So glad you’ve had success with your lettuce. This is where you can start to now use your controlled environment to experiment with hydroponics. Perhaps try different concentrations of nutrient in the lettuce. Something I’ve been curious about is the benefits of “flushing” leafy greens. This would mean emptying your reservoir a few days before harvesting and refilling it with pure water. This might improve the quality of flavor, no way to know unless someone tries (let me know)!

@paulmason Besides for things like making sure it’s 12V, and 120mm, the most important metric is CFM (Cubic Feet per Minute). The other metric that sometimes matters is RPM as it relates to noise level which is measured in dB. Here are the specs for the fans we recommend:
As you can see they’re 42 CFM at 19dB (pretty quiet). Both the fans you suggested are even more powerful, so you shouldn’t have any problems whatsoever. I would just go for whatever is cheapest (generally 2 packs are cheaper).


I hesitate to say anything about this, but since you asked so specifically… I’m strongly biased against using slide decks for anything. Putting pdfs into github would sacrifice most the benefits of version control because the files are just binary blobs. Commit history works best with text files. With updates to binary files, you just get a generic message that something changed–no way to see a meaningful diff of before and after the specific changes. On the other hand, text documents in markdown format work great for writing documentation in github.

If you learn github markdown, I think you’ll find it’s easy to use and that it does all the formatting you might need. Github also has an great online editor. For examples of how to do it, you might check out the readme for https://github.com/OpenAgInitiative/openag_pfc2.

Also, Edward Tufte’s take on slide-deck culture is worth a read: PowerPoint Does Rocket Science–and Better Techniques for Technical Reports.


Tufte:smiley: is always a good read.


Hello, we finished make food computer guided by your teams “300$ Food Computer”!

But, we are not using more integration openCV(or plantCV), Not yet. I would trying next week!

From time to time i realize importance of some sensors(EC, CO2) and more focused install “Peristaltic Pump”, But this “Peristaltic Pump”, it is hard to import same part of openAG’s BOM(same model, Amazon not shipping to our country)

I looking for alternative part in South Korea!(Until now i couldn’t find any appropriate parts in local market!)

In the short goal of our team is “Automation Supplying Nutrition,Water, PH solution”, And of course i would open all of our parts sourcing in the South Korea after summarizing!

I added more detail our process on 2017.11.30.
@Webb.Peter. I’m not used any opened in openAG’s software to developing PFC(Because i just postpone using software which developed by openAG. I predict more fasting if i developed software which i need only parts!)

In our project case, we can developing “Wordpress Plugin”(I’m familiar develop Wordpress Theme&Plugin). I hope helpful to someone this summarizing our process.

  1. Install Raspbian(And Configuration To connect SSH, and Our office Router WIFI) on raspberry pi3(When start making PFC, We trying use “Intel EDISON”, Because we purchased this micro-controller board for researching 5month ago. But we failed configuration edison ssh,wifi setting, and i heard intel decided discontinued “EDSION”,so we dropped and change to Raspberry PI)

  2. Join AWS, And deploy EC2, RDS , S3 system. (I can using AWS’s free tier plan)
    #Role of AWS service
    2-1. EC2 : Operate our Wordpress website(http://og.linchpinsoft.com), and service our administrator dashboard to Managing/Monitoring our “PFC system”(I developed “Wordpress Plugin” to achieve our purpose)

    "Our administrator page on wordpress platform"

2-2. RDS : Database. Our raspberry pi which connect our local network. They send hum/temp/photo value every 3 second to this RDS. And this DB have a two table(One is save/manage sensor data), and other table to ordering manage our PFC environment(E.g., Turn on/off LED, water pump, air pump …). In raspberry pi, Python script check every 5~10 second to detecting new order(Polling).

2-3. S3 : to save “ONLY IMAGE DATA” which captured by Our camera on the PFC. Every 20minute python script capturing picture and send AWS S3 specific bucket.(I can install “AWS CLI” on the raspbian, and i can easily send our recent picture using AWS CLI)

Above this is our teams developed process, from time to time i need refactoring sourcecode to modularization.(Using AWS system,and lamda architecture.)

If someone who have a interesting AWS system to develop PFC, we can talking about that.!

And i have a plan to integration new database system like a “Graph Database” to more simulating correlation between Environment Element and Growing Plants.

Until now i used only RDBMS(Relational Database Management System), But i have a experience “Neo4j” Graph Database solution. It is a great to simulation “Graph Relation”! If i would more develop my plan what about integration Neo4j solution, then i want open new thread about “Graph Database system on PFC”.


@house I would encourage you to before you just try to get as many sensors/actuators working as possible to begin growing plants.

@pspeth May be able to help provide some code for a peristaltic watering system. I know @webbhm is using an IR distance sensor to measure water level and then actuating a solenoid valve to top-off. To me, this is the most immediate value-add.

I see people get very focused on EC/pH and spend all of their time on it all too often. I think it’s important to get a feel for these things on your own, prior to trying to automate them. These sensors (especially pH) are prone to failure and require calibration, this can lead to disaster and overdosing.

My advice is start by growing and adding more sensors, maybe try a water top off. Once you have a liquid dosing accurately, and you feel confident you’ve got your EC/pH working, then try to control them with dosing pumps.

We’re working on Co2 right now and using the MHZ16 sensor, here’s some code to run that on the MVP., we bought ours for about $60 but you can find them on Alibaba much cheaper. We think a 5-10 lb tank will be sufficient, and are looking at regulators like this one on Alibaba..


@DanB, this is the most recent install script. THIS IS IN BETA AND MAY BREAK YOUR MVP, RUN AT YOUR OWN RISK:

We are testing an install script which should fix a number of issues you have encountered. It is designed to run as a single script, but currently I have some ‘stops’ in the scripts and you will have to run the parts separately.
We still want to get a ‘download’ of CouchDB instead of the build (to save time), and will probably set this up as a single script run in the future.
It is designed for a build on top of a fresh Noobs install of Raspbian, but should overlay anything you are currently running.


# Part 1
# Semi-generic script to get and install github archive
# Author: Howard Webb
# Date: 11/16/2017

# This script assumes you are running on your Raspberry Pi with (Stretch) Raspbian installed.
# Internet is connected
# You have configured the local environment (keyboard, timezone)
# You have adjusted the Pi Preferences (Configuration)
#   Enable the camera interface
#   Enable I2C
#   Optionally (suggested) enable SSH, VCN and 1-Wire

# Get the release from Github
# Extract it to the proper directory
# Make the build script executable
# Run the release specific build script

###### Declarations #######################

RED='\033[31;47m'   # Define red text
NC='\033[0m'        # Define default text

EXTRACT=/home/pi/unpack    # Working directory for download and unzipping
TARGET=/home/pi/MVP       # Location for MVP
RELEASE=OpenAg-MVP-II             # Package (repository) to download 
GITHUB=https://github.com/webbhm/$RELEASE/archive/master.zip    # Address of Github archive

echo $TARGET
echo $GITHUB

###### Error handling function ###################

PROGNAME=$(basename $0)

	echo ${RED} $(date +"%D %T") "${PROGNAME}: ${1:="Unknown Error"}" ${NC} 1>&2
	tput sgr0
	exit 1

####### Start Build ######################
echo "##### Update Existing System #####"
sudo apt-get update

echo "##### Starting to build directories #####"
# Build target directory
mkdir -p $TARGET || error_exit "Failure to build target directory"
echo $(date +"%D %T") $TARGET" built"

echo "##### Starting download of MVP from Github #####"
# Download MVP from GitHub and install
# Build extraction directory
mkdir -p $EXTRACT || error_exit "Failure to build working directory"
echo $(date +"%D %T") "Directory built"

# Download from Github
wget $GITHUB -O mvp.zip || error_exit "Failure to download zip file"
echo $(date +"%D %T") "MVP Github downloaded"


# Unzip the files, overwrite older existing files without prompting
unzip -uo $EXTRACT/mvp.zip || error_exit "Failure unzipping file"
echo $(date +"%D %T") "MVP unzipped"

cd $EXTRACT/$RELEASE-master/MVP || error_exit "Failure moving to "$EXTRACT/$RELEASE"-master"

# Move to proper directory
mv * $TARGET
echo $(date +"%D %T") "MVP moved"

# Clean up temporary extraction directory
rm -r $EXTRACT
echo $(date +"%D %T") $EXTRACT" removed"

echo "##### Relsease Specific Build #####"
# Complete the release specific build - this is the CouchDB extract

# Set permissions on script
chmod +x $TARGET/setup/releaseScript.sh || error_exit "Failure setting permissions on release script (check file exists in MVP/scripts)"
echo $(date +"%D %T") "Run permissions set"

# Comment out this line for auto build
exit 0

# Run script in download
bash $TARGET/setup/releaseScript.sh || error_exit "Failure running release specific script"
echo $(date +"%D %T") "Install Complete"

The OpenAg-MVP-II Readme has more complete documentation on what to do next. Essentially depending on what you need, walk through the next install files (releaseScript.sh) to build components of the software.


Wow! This is awesome! I’ve been away for awhile. Shame on me for missing this!


Please see the new V2 release of the MVP software here: https://github.com/webbhm/OpenAg-MVP-II

Once we get a couple more verified beta testers we’ll do a training document and update the first post.

@DanB @TechBrainstorm @bennis @paulmason @RadioDave