$300 Food Computer - MVP


Thanks @webb.peter, that’s good advice. Those are essentially the steps I took, except instead of deleting files off the SD card and doing a quick format, I did an overwrite format. My thought is the quick format probably deletes the allocation table but still leaves data in the clusters. I think it’s likely that I had a card that was defective in some way.

I agree that imaging a card with an operating system already on it could cause issues.


I (hopefully) will have my version of the MVP completed within a couple of days, and will start another thread soon with my observations and suggestions (and maybe share some grow data as well). I still have a couple of open issues, for example how to configure the Raspberry to allow me to access it from another computer on my home LAN. I did see instructions when I was researching earlier, but it seemed somewhat complicated. If I have trouble with that, I can always plug a monitor and peripherals into the Raspberry at the MVP. I’d also like to add an automatic pump to refresh the nutrient solution, but that’s a project for later.

But I do have a couple of questions now; and I reviewed the documentation and couldn’t locate the answers. First, what is the executable file on the Raspberry that launches the MVP program? And second, how do I make it auto execute? If there is a two minute power failure I’d like it to restart the MVP control and turn the lights back on after it boots. How do I ensure it will do that?



You need to think of this a bit differently, there is no master executable.
Cron controls almost everything, and it is a system service (starts by itself when reboots). The Python code is individual modules that run only when called - which is done by cron.
The relay is set to power-OFF, which means if the Pi powers off (but your household power is still on) the relay will be closed and the lights will be on. It is only when the Pi sends a HIGH value to the relay pin that it powers the relay to open, and turns the lights off.
There is a line in /etc/rc.local that calls the script to start the server. In the future, the script file could be modified to include any start-on-boot processes.
As to your home LAN, just get the IP address of the Raspberry and use that (router device list?). No need to configure anything. I gave my Raspberry a reserved IP address on my router to simplify my life.
The auto pump is something we are working on, but low priority.



Thanks! So Cron is similar to the Task Scheduler in Windows, and it’s calling the modules that perform the individual tasks. It does make perfect sense.

I also hadn’t thought of using the IP address of the Raspberry, although that’s how I access my router to view the device list.

Fingers crossed that I won’t have any additional questions until I ask, “What do you think of my MVP?” I’ve posted quite a bit here in the last three weeks, but hopefully I’ve given you good feedback about the kinds of issues people may experience.


I apologize to everyone for how long it has taken us to put together revised documentation. Just to provide an update:

  • We will have “operational documentation” posted 11/1 - this is very basic instructions for how to run a lettuce grow in the MVP based on Cornell’s recipe.
  • We’ve updated a number of the items sourced on the BOM to provide better/more consistent parts. This means that some of our documentation became obsolete because parts would be different in pictures.
  • This most recent BOM has been ordered - and we did another build with it so we could update photos as well as add pictures to the “Final Assembly Documentation” which will be completed by 11/1
  • We know that there are/will be some inconsistencies between videos and written documentation. I’m interested to hear from any successful builders how critical the video was as opposed to the written documentation. It may make sense in the future to just skip the video portion (or perhaps it was super valuable, that’s why I’m asking). I found that with the V2 when I was building it I would have to pause the video every few seconds which got rather tedious.
  • Lastly, we want to change from using Google docs to more of a PowerPoint format. I think it would be more clear when we divide steps as well as allow for better formatting. It is more labor intensive to create - but our goal with this project is accessibility. This is what the enclosure documentation would look like:

@RadioDave @pchuffer @hwnesmith @briandmcgraw @TechBrainstorm @thiemehennis @bennis


also consider using GIFs! That was a tip by our partner WeVolver
http://wevolver.com, they do a lot of open source hardware projects.


For about half of our build, we used the video. The other half was with the Doc.

Just a quick thought after looking at this for a few minutes is I think you could include a link to the prepared parts file just to make the material slide a little better. This documentation looks solid, though. I think the Powerpoint style is a good idea and will help clear up inconsistencies.


@Webb.Peter, @webbhm


Feeling discouraged this evening. Yesterday evening I completed the brain build and conducted a power on test. Everything seemed in order, and I was pleasantly startled when about thirty seconds after boot the exhaust fan was started.

Everything was ready to go…

…so I started my first crop, with some variations and notes so that I could begin to determine what worked better.

But then it began to rain on my parade. After a few hours, I realized the exhaust fan was on when the temp was around 25C (I believe 30C was the programmed value and is closer to the recommended temperature), verified by two additional thermometers. I was also not getting current log data by using the network IP and port 8000; it was still the placeholder data and photo.

I don’t know if the subroutine for the lights is working; the time didn’t update on boot, so I’m not sure when the lights are supposed to be off to verify if that function is working properly.

So thinking first things first, I thought I’d simply change the settings on the temperature control routine, set it a few degrees higher. I powered down, took out the SD card, and inserted it into my spare Raspberry in my upstairs project room to make the changes. And no video. Again. I carried the monitor and peripherals to the basement and tried it there with the Raspberry operating the MVP. And no video.

I’m considering putting a simple mechanical timer on the lights. The temperature seems to top at around 28.1C currently without the exhaust fan running (I need to reseal the enclosure), and I can deal with that issue later. The main problem is that without the logging and photo data of the Raspberry, I won’t have easy and consistent data if I want to share results with others.

Here’s the only working theory I have at the moment. The 16GB card that has Stretch installed that I’m basically using as a comparison base is an older, slower, bargain priced card. Both of the 32GB cards that have caused video issues have been the high-speed read/write cards. I’ve tried numerous variables; the only thing I can think of now is maybe it’s the architecture of the high-speed cards causing some issue.

Has anyone else had this issue? Your thoughts on this would be appreciated. In the meantime, my seeds are soaking in their rock wool dampened nutrient under bright lights.


25C is temp setpoint, 30 is too high for most plants. I’m guessing that the reason you’re seeing it get as high as 27 is because of sensor placement. See how on this chart the temp hangs right around 25C: $300 Food Computer

How long have you waited for the log data that you’re accessing through the network? It’s a good sign that you’re at least seeing the placeholder data. It only updates every 4 hours, so give it some time, it may take it 24 hours to really look like something.

It sounds like you were on the right path of trying to get into the Pi itself via a monitor. If you’re loading the image make sure you type “startx” into the command line for a user interface. I’m not sure about the SD theory, I hope it isn’t that, I use bargain Microcenter cards myself and haven’t had a noticeable problem. It is VERY important the order of events when trying to boot up a Pi to a monitor, they’re futsy in my experience. I would suggest plugging the HDMI in, and then booting up the Pi before going out and buying another SD.

Give it 24 hours to test the lights, I believe they’re on a 16-hour cycle. Mine generally turn off around 10 PM (Central).

The build looks great, we’ll get this working, it sounds like you’re really close!


Thanks, @wsnook for the detailed troubleshooting guide. I agree with you regarding SSH. If you’re still interested in writing an install script for the MVP that would be helpful I believe. I’m planning to write the instructions for software to be: image SD, ssh to Pi, enable wi-fi.

I think that cron logging is already enabled on MVP here: /var/log/cron.log

P.S. Update to everyone regarding my post yesterday: I did not get a chance to take the pictures I wanted for “Operational Documentation” and tonight being a holiday I think TechShop is closing early. I have edited my previous post and plan to do a completely new documentation release.


@Webb.Peter For the install script thing, I’m still fuzzy about the process you’re hoping to automate with a script and about how that differs from Howard’s existing stuff. That’s why I’ve been suggesting that version controlled documentation would be a great place to get started–writing procedures down helps to remove the ambiguity.

When you and I first started talking about scripts, it had been a while since I last looked at Howard’s MVP code. He’s done a lot already–including a setup validation script–that I wasn’t aware of when you and I started the conversation. When you say “install script”, I’m not clear what you mean relative to Howard’s existing stuff.


Success. With an HDMI compatible monitor from cold boot, I have video (keeping fingers crossed it continues to work considering past issues). I manually set the date and time and ran the validation script. Everything is now working, and I can access the data and current photo from my LAN using port 8000. I didn’t realize that running the validation script with everything connected was required to complete the software build, the instructions weren’t very clear on that point.

And the lettuce seeds are already starting to germinate after only two days!

So hopefully I’m ready to begin sharing information instead of simply asking for advice. But I do have a couple of questions regarding the data. Although I had my local time set, the data I recorded during the validation script seemed to log in UTC. Is that an issue, or a feature? But more importantly, the data that I gathered over the last two days is incorrect, with incorrect dates and times on it. I thought to purge it and start fresh, but I don’t know how to do that, which brings me to the last and most important question. Is there a way to archive the data, so perhaps instead of having a year-long string of temperature and humidity readings I can archive by crop and only have the most recent data displayed?

I started a new thread $300 MVP Food Computer Variant - My Build and over the next couple of weeks I intend to share the lessons I’ve learned so far. I sincerely appreciate the advice and details I’ve been given. Hopefully I can give you guys a break before I start asking for help again.


@RadioDave I am so glad that you got your monitor situation figured out. I know how frustrating that can be. Saw your post which I will reply to separately later (priority is finishing documentation). With regards to UTC: it’s a “feature” so that we’re all on same time when we merge data (this is something we can fix through the UI later). I’m sincerely looking forward to seeing your progress, it looks like a really clean build.

I will be doing a fat documentation post this evening with PowerPoints versions of all sub-assemblies/final assembly and operational documentation as well. One thing I will say is that I still don’t have a solid solution for nutrients other than Jacks 20-20-20 that can be ordered in small quantities from Amazon. I’d appreciate anyone’s input here: MVP - Nutrients.

@wsnook Perhaps the way you can help isn’t with the writing of code so much as documentation. Correct me if I’m wrong though but you’re primarily interested in software documentation, correct? Let’s continue this discussion here: Proposal: Collect MVP code & docs into one github repo. I think that for the documentation with pictures we’ve decided it makes more sense to go with a slide format. While this is more labor intensive, our primary goal is ease of access at this point in time. To me, there will become two layers of documentation, a “developer” level, and a “user” level, it sounds like you’re more interested in the developer side.


No. But I can understand why you might think that. It sounds like you’ve got a plan you’re making progress on and trying to finish up. Maybe it would be best if I step back for a while and give you space to work on that. We can talk about this more later.


At the moment, data archiving and cleaning up are ‘quick and dirty’, though we are looking at some longer term strategies (possibly cloud back-up and UI).

  1. After the build take a backup copy of the SD card. Then you always have a fresh/clean database to work with by swapping out cards (and making another clean copy).
  2. Report by crop. Another future works issue. Along with recipes, I am looking at having an ‘experiment’ id captured in the data records. This would allow selection of data by that variable. I think your ‘crop’ is equivalent to my ‘experiment’.
    I have experimental scripts for both of these tasks, but don’t want to release them till there is a complete solution. If you are desperate, I can always share code.


@Webb.Peter. @webbhm

Not a major problem, but I have discovered one remaining issue with log data. The data is being collected and stored, but it’s not automatically updating so that I can read it using the web format view. The only time the web view contains updated data (either from the console or remotely) is after I run the validation script, and I’ve given the system as long as 16 hours to see if it would automatically update. I looked over several scripts hoping to find the code that performs that function, but I was unsuccessful.

Thanks for the feedback regarding the UTC timestamp when logging. I’m familiar with the concept of using Zulu time to coordinate across time zones. I also appreciate the suggestion of simply making a duplicate of the build on a new card. I may consider that soon, before I have a lot of data stored. I’m not desperate for a way to archive by “experiment,” but just looking ahead.


You may be encountering a browser problem we have seen in the past. Some
browsers cache pages and when you load the page it gives you the cache
rather than going and getting fresh data.
There is a refresh.sh script invoked by cron that rebuilds the charts every
hour (but not the html file itself).


Hey everybody, so I wanted to keep to my word and post out this documentation. I’ll be honest - I haven’t had the full chance to complete the operational documentation. I am purchasing the Maxigrow tomorrow by General Hydroponics and will be finishing the images tomorrow. In the mean-time if anyone has been out there waiting for the documentation here are the 6 files we have redone.

Prepared Parts Documentation
Enclosure Documentation
Brain Documentation
Final Assembly Documentation
Operational Documentation I am continuing to add photos and flush this out.
Software Documentation I have not yet been able to finish this.


I’ve completed sharing my advice and experience in building my variant of the $300 Food Computer, and I’m interested in advice and lessons learned about using it to experiment and grow food. I looked over the list of threads on this forum and really didn’t see much related to the actual growing. My big daddy lettuce (not the variety, just what I’ve started to call them) have already started to send roots down into the nutrient, and I’d like to encourage them to keep growing.

I’m interested in people’s experiences with different nutrient concentrations, advice on germination of various plants, and basically what best practices people have learned using the MVP so far. Can you point me to where that discussion might be found?


The operational documentation the post I made above has some general guidelines. I’d like your feedback on what else I should include in there, I know it’s very basic.

I’ve tried to get conversation going here regarding nutrients: MVP - Nutrients

I made some posts on this thread too (link should be to specific post): MVP - Product Design

Some discussion on this thread: Where's the cooling aspect of the food computer

Must read growing paper by Cornell: http://www.cornellcea.com/attachments/Cornell%20CEA%20Lettuce%20Handbook%20.pdf

The same group put this out regarding nutrients. I think one of the biggest opportunities with the MVP is with regards to us using different concentration/types of nutrients. We know we’ll keep similar temps/lights, this is an area where we can vary with ease: http://www.greenhouse.cornell.edu/crops/factsheets/hydroponic-recipes.pdf

This is a nice guide by PlusFarm, well-written introduction to growing with a practical rack system: http://www.plus.farm/grow-dwc

Bunch of recommendations regarding PH/EC: http://www.homehydrosystems.com/ph_tds_ppm/ph_vegetables_page.html

Hope that helps, I’m very happy to answer any specific questions (sorry I haven’t had chance to give full feedback regarding your posts. I’ve definitely been keeping up though and taking notes). I do still intend to put together a “FAQ” based upon feedback.