MVP - Product Design


I saw the idea of using a capacitor and timer to coerce an analog pin, but the accuracy and issues with processor lags scared me off. I will likely do a ‘bake off’ with the I2C sensor and this method and see how they compare, nothing to loose since I have the photocell and can probably scrounge a capacitor. Have you ever tried this, how well did it work?

I missed the SDFat and other postings, will definitely have to look into that as it would greatly simplify the architecture and keep all data local. Thanks for the reference! If do this, then we definitely need to get into discussions on file formats.

Just stumbled over another problem (minor) which is the flip side of the analog read - controlling fans. I have had my circulation fan hard wired to GND and 5v, but was thinking of an analog pin for the exhaust fan: 1) There is no analog out (though can fake it with a capacitor), 2) Raspberry only has 3v on the GIPO, which would cut the speed by 1/4 of normal (12v). I hate adding more stuff, but seriously thinking of a 12v PWM fan with power from a wall wart and hooking the PWM to a pin. I believe @Webb.Peter used this trick on his early growth boxes. Might just do both fans this way, for consistency; and it would allow experimenting with the circulation fan and its affects on plant strength. Any opinions or thoughts?


Yes–years ago on a Basic Stamp and it worked great. But, if you use a Photon instead of the Raspberry Pi beta, you can just make a voltage divider circuit, use a real analog pin, and be done with it.

I’d suggest you think low tech and just get a fan that’s rated for the voltage and flow rate you want. If you buy from an electronic parts supplier like DigiKey or Mouser, it’s easy to get detailed specs before you buy. If you want to experiment with flow rates on the cheap, buy more than one fan and swap them out. Alternately, since a lot of the relay boards have multiple relays, you could use more than one fan and adjust the flow rate by how many fans you have turned on at once. Or, you could wire up a low-flow fan to be always on and supplement it with a switchable higher flow rate fan.


@webbhm I’ve been thinking about what it would take to make a mostly offline data logger and controller that will periodically try to phone home to the mother ship (Particle API, local server, or whatever) and upload its sensor log.

The SD cards we talked about would be one option for storage, but I’m not so sure about the cost benefit in code complexity, hardware, and ridiculously over-provisioned storage capacity. Using the record format in the gist I linked to above, 24 hours worth of DS18B20 + Si7021 + BME280 data recorded at 20 minute intervals only took 6691 bytes.

By my calculation, at that rate, it would take about 400 years to generate 1GB of data. One year would take about 2.5MB, a month would take about 210KB, and a week would take about 50KB. My present record format is meant for easy human readability including units and full sensor names. I could easily shrink it down to 4543 bytes per day (1.7MB/year, 150KB/month) without affecting readability much, and a packed binary encoding could go a lot lower.

All that is to say, SD cards might be the wrong way to go. Perhaps we should look at things more like this 32KB I2C FRAM chip (fast like RAM, non-volatile like flash, and lasts a long time). 32KB would be big enough to go several days without network connectivity.

  1. @wsnook I personally (and I feel like others would too) find value in a post (even a thread) describing your chart generation techniques. As for the code question, I don’t have a ton of experience with either, though I do have some with Python. The only charts I’ve ever made from scratch were using Google Charts. I definitely think charting is a necessary function of our application. The lazy part of me wants to ask is it really necessary that we build our own charts from scratch? Most of what I’ve done over the past few years for my day job is reporting/dashboarding configuration (fan of Power BI). I would love to try and integrate into some pre-existing BI tool that we can piggy-back off of for free (similar to Particle). Perhaps I’m thinking more on the analysis end and you’re trying to get at real-time monitoring. This is just my opinion if you feel this is a bad direction to go in I’d love to hear why.

  2. Yes, depending on which sensors you are picking. I am extremely interested in trying to test different controllers with similar code, I think if we develop our work with that mentality it will allow us to pivot and experiment much easier down the line. I’d be most interested in knowing what is different between platforms. One of the reasons I was checking out Blynk early on was because it seemed to allow for such ease switching between controllers using its virtual pin interface.

  3. I’ll answer this more in other posts.

Are you trying to actually go into the image itself or the meta? I was under the impression there was a way we could determine the brightness of the image just by reading the metadata, I can’t remember but I think it was @wsnook who pointed me to that idea.

What are the hardware requirements? (Wire to the cell, breadboard, resistors, etc).

Did you end up saving to a local disk? If so what’s your preference on file formats?

@wsnook how would you manage images if you moved away from an SD card? Also, do you see yourself as having intermittent connectivity? I understand the desire for this in remote locations or specific applications, but most users I feel will want some sort of real-time monitoring. Would you plan to have both options depending on the connectivity?


This is the first of many future actuators that will cause problems for us. This is why I really like the idea of controlling EVERYTHING from the beginning off of a 120V AC relay. Similiar to the AC Control Block in the V1 PFC:

The BOM and assembly instructions are 1. here:

I bring this option for two primary reasons:

  1. Simplicity - I haven’t dug into the code on the V1 yet for the control block, but I’m going to assume it’s pretty straight forward. If we stick with a relay as opposed to some sort of PID or PWM. This simplifies not only our software, but our hardware as well. In terms of a driver for the 12V fan this is what I used previously. The moment we try and actuate things above 5V the “user” will have to purchase lots of little parts, something we may not mind, but it increases the difficulty in sourcing and assembly. Here is an idea of what was required when I did this previously.
  2. Easily customized - User won’t have to rewire anything to unplug one actuator and plug in another. We can default TL (Top Left) Exhaust fan and then just turn the relay on and off when necessary. This gives the user a system that’s just waiting for an “expansion pack” to add on a heater, or humidifier.


Wow, you are all rock stars. Such a great diversity of ideas and discussion. Sorry I am late to reply. Thank you for starting the party @Webb.Peter!

Here are my personal opinions (not those of the OpenAg lab) for the Product requirements of an MVP:

  • Brain:
    • Use only the Raspbrry Pi, no arduino. It is inexpensive and has a full Linux software stack.
  • Camera:
    • Only one camera is sufficient to monitor growth and do a timelapse. Placed at the top works the best.
  • Enclosure:
    • Whatever is cheap and easy. I think we should make some sized designs and leave the material up to the builder. Perhaps a list of pros/cons on various choices (foam, Al/plexi, wood, tubs, etc). I suggest the interior be reflective to maximize the light to the plants - the roll of reflective insulated material or even aluminum foil.
  • Lighting:
    • Off the shelf grow lights. LED’s are too expensive, specialized and difficult to get in the correct power output to grow.
  • Reservoir:
    • Suggest just specifying basic dimensions and letting the builder find the best local solution.
  • Oxygen:
    • $5 Aquarium pump.
  • EC:
    • Manual control.
  • PH:
    • Manual control.
  • Water top off:
    • As suggested: two sensors, peristaltic pump. Allows unattended operation for days.
  • Environment:
    • Temperature:
      • Just a PC fan to exhaust the heat from the basic grow light.
    • Humidity:
      • Not required in the bots we have been using, the evaporation from the water in the tub is enough (if the enclosure is reasonably sealed).
    • Co2:
      • Ignore.
  • Software - I like both options:
    • PFC V2 stack: complex, but already (mostly) done and can be hacked to be simpler for the MVP.
      • Pros: will read existing recipes and write the same format data.
      • Cons: complex SW stack.
    • Blynk: fun, easy (I used a pi, mag relay, usb camera to make a garage door monitor/closer)
    • Scratch:
      • I wrote the ML demo that @Webb.Peter mentioned. My schedule for making it real and integrating it into the PFC v2.+ is late this summer. For now, I suggest doing the non-user friendly option of hand editing JSON recipes (it is what we do daily).

MVP - Community Development

We are working too hard (with Particle). Logging to the SD is brain dead (after you figure it out). It turns out that all Linux functions are available, as well as all standard C++ stuff. Thus, forget SDFat (which is needed for Photon) and go straight to old fashioned C++ streams.

using namespace std;

ofstream myfile;
void setup() { ("/home/pi/example.txt");
myfile << “Writing this to a file.\n”;

I have data dumping out to a file as we speak.
Looks like this also might be an easy way to dump to a full database.

Also discovered my local, friendly electronics store. Got a 1uF capacitor and pumping light data. Still need to calibrate it for ON/OFF.

Now just need to copy the fan controller software into the file (and get the fan) and should be able to call this demo done.


I made a thread for you at Howto: draw charts from sensor log file with python & matplotlib.


Your outline for the MVP looks good, though I am still debating software. I have Particle running on the Raspberry at the moment, but beginning to question its value (for immediate needs).
It turns out that if you start programming the pins without associating them with the mobile app (Tinker), the mobile app then tells you that you are running a non-Tinker app and will not show any pin information. And while the console if fun to watch, it is not really adding any value (now that I have local file logging working).
I am not ready to abandon Particle just yet, as it would be ideal for filling the reservoir remotely and other such IoT activities. However, now that I have it working, I think I will try porting the code over to Python and see what I can do with cron.


@webbhm have you gotten as far as to plan the UI? Does it look like what @wsnook is using for charting could be used by us, or have you found something within Particle or another off-the-shelf platform?

I have discussed the Android phone hack idea for a controller with @webbhm previously and he has used it on projects, I’m fairly certain that you can run Raspian on it (I may be wrong). I think the “deploy or die” mentality of the media lab definitely has a history of getting its inventions to those in need. One of the most notable examples of this was the One Laptop per Child program. I don’t think OpenAg has any intentions of only developing things only for privileged wealthy people, just look at the WFP in Jordan.

I agree there are ways to do all of this cheaper than currently being done. I welcome another “MVP” attempt that perhaps is aimed at a different user (non teacher, perhaps more DIY, smaller, cheaper).

I plan to release initial BOM and an outline (hopefully github) of the Software by Thursday!


@wsnook that is very dissapointing to hear. Do you mean in regards to the MVP conversation, or your acitivity on the OpenAg forums in general? The insight you have provided into many topics and the passion contributed to this project are going to be missed if that is the case.

It’s none of my business, but may I inquire as to what has changed and why you don’t plan to be around?


Thanks to @drewthomas89 for posting the initial BOM to this thread: [MVP - Alpha Release]
(MVP -Alpha Release- Bill of materials).

We’re also planning to test an aeroponic reservoir this week using this pump I hope to be able to make the MVP aeroponic based on’s initial comments. I really do agree that it makes sense and quite frankly still don’t understand why the PFC V2 isn’t aeroponic. I am working with someone locally who has successfully built an aeroponic food computer successfully. I would love to get the advice of anyone else with experience in Aeroponics on whether or not they think this pump will be sufficient. @Atom @adam

Aeroponic System Categorization (flex/vertical/horizontal trays)

I think you`ll find the noise level of that pump will be intolerable :wink: Pumps designed for reverse osmosis tend to be the most reliable and the quietest. I personally only use the pump, timer nozzle combo for cloner duty. The pump i use for the cloner is a 24v dc E Chen EC 204-50A if it helps, It runs 2 seconds on, 2.5 minutes off in the day and 2 seconds on 9 minutes off at night. Its supplied by a 3L bottle filled with RO water which is topped up daily as the cloner runs to waste.
For growing i prefer to use large accumulators which can run for days/weeks on a single charge. I use a single “mobile” 12v dc 160psi pump to service multiple accumulators.
What are the internal dimensions of the root chamber you plan to use?


We actually haven’t made a final decision yet and are researching that exact question right now. Your thread on aeroponics has proved very helpful! I’m interested to know how you came to the conclusion that 15-16" is the minimum reservoir depth. Quite honestly, that’s the best example I have right now to go off of (any links/helpful materials you can provide would be a huge help). This MVP is designed for “leafy greens” meaning our roots are going to be relatively small (we aren’t growing “higher” plants). Our dimensions are the same as a PFC, which off the top of my head is: 23x20 by 32 high.

Could you please elaborate on what you mean by “mobile” as well as what 12v pump that you use and why you chose this option? I would really appreciate seeing pictures of your setup as well as any additional lessons learned you can provide us when designing the system.


Hi Peter,
I would suggest using 15" root chamber depth due to the units overall height. The recommendation is based on practical experience of every kind of aeroponic system you can imagine ;) Over the years i have built, tested and refined many systems with the goal of finding the holy grail of aeroponics. Its been an interesting journey to say the least. The mobile pump is simply a pump that is not permanently plumbed into the system, the large accumulators can run for days/weeks on a single charge so a single pump can be used for any number of accumulators. I use 100L accumulators to supply large outdoor systems (16ft x 2ft chambers). The tanks are charged using a single "mobile" Propump DP 160 (12v dc) pump which takes approximately 8 minutes per tank. Once charged, the tanks simply run until they are empty. Maintenance is virtually zero with no daily ph,ec checking/adjusting, no topups and no need to dump a reservoir of spent/unbalanced nutrient because the accumulators are the reservoirs. During my journey i discovered a method of charging accumulators without any need for electricity using a (Rothenburger RP50) hydrostatic test pump which is basically a manually operated high pressure pump. Its not in service now as i have 5 other systems to keep me entertained but it is useful as a backup and comes in handy for pressure testing accumulators and plumbing, which is what it was designed to do ;) My "holy grail" aeroponic system has a temperature controlled root chamber and uses compressed air to generate the mist, its more than that but this post is long enough already. Ive no idea how to post pictures but rest assured your aeroponic goals are relatively basic and easily acheivable :wink:

Syringe Pumps - Peristaltic Dosing Substitute & DIY Aeroponics

Using the dimensions of the MVP i would work on the assumption of needing less than one gallon of nutrient per 24hour period when running it drain to waste.The main issue will be how many plants you can fit in the available area so they dont crowd each other out.


I am extremely impressed/interested in how you have been using one pump to “charge” multiple systems. To me this seems like a very efficient and innovative solution to maximize the value of pumps and eliminate quite a lot of power usage that comes with continually circulating pumps. Could you provide any more information about what sort of accumulators you use?

If you are ever inclined to post about this on your thread I would definitely take the time to read it in depth.

How many plants would you say is the limit (lettuce/leafy greens) for a 23x20x15 aeroponic system? Do you ever attempt to stop the roots from growing in a certain direction (wire mesh, barriers between rows, etc.) Also, would you suggest using the “full cone spray nozzles” similar to the ones found in BETE’s catalog? If not, what sort of nozzles do you recommend? I see there is an incredible variety, and I’m sure it varies on my goals. Again, any insight (even links if you don’t feel like typing) about how to choose which sort of nozzle would be very helpful when I’m designing this system.

What would you suggest to use for tubing? Have you found flexible solutions like PEX suitable, or more permanent metal distribution lines to be the best?

Honestly, your posts and insight, as well as conversations I have had with have really inspired me to pursue aeroponics in a much more serious way. I think it’s important that the community is aware and experimenting with this technology which is why I want to incorporate it as a part of the MVP. I sincerely appreciate your help so far and any other insights you or other experts on aeroponics lurking here can offer to help me develop a working aeroponic system for the MVP would be greatly appreciated.


Hi Peter
My workhorse accumulators are Lowara 100L (10 bar) verticals with replaceable bladders, They hold around 40L of nutrient when charged from 80-140psi. I use pressure reducers to maintain a constant 80psi output pressure which provides a consistant nozzle flowrate and mist quality. .Without the reducer, the nozzle flowrate would track the accumulator pressure (high to low). Its easy to overlook these small but important details with aeroponics. The benefit of the one pump, multiple tank approach is the cost is somewhat offset by the savings on pumps, power supplies, pressure switches, pressure relief valves etc which are not required.You can fit additional accumulators to increase the system capacity at any time…
The holy grail system is for the truely obsessed aeroponic grower that wants total control over everything to the nth degree.:wink:
The number of plants will be dictated by the footprint of the light and the amount of space required by the mature plant. I would allow at least 5x5 or 6x6 per site,.
Ive tried root barriers/trellises (horizontal and vertical) and didnt find them beneficial as they tend to obstruct the mist. Id still recommend experimenting as the knowledge you gain from the failures is invaluable in the long run :wink:
I use a variety of nozzles geared to the shape of the chamber and the planting arrangement. For your small chamber i would recommend upward firing,wide angle,short throw, hollow cone nozzles. Hollow cone nozzles typically have a lower flowrate than full cone and the overlapping rings will provide good coverage in the limited space where solid cone will be too much…I use this type of nozzle in my vertical (leafy greens) aeroponic towers, 35 plant sites, 670mm max diameter and around 200Lvolume, They use 4 nozzle ring manifold (1/4" semi flexible nylon tubing) located about 15" down from the top. I can run 2 towers for around 4 days on a single accumulator charge…The towers are outside in full sun,so they do use more water than an indoor system where the environmental variables are easier to control.
You could write a book about aero and only scratch the surface ;).


A minimum viable product (MVP) is a development technique in which a new product or website is design and developed with sufficient features to satisfy early adopters. The final, complete set of features is only designed and developed after considering feedback from the product’s initial users. Assignment Writing


I tried to access your link but am getting an error. Could you please elaborate on your post?

Aeroponic System Categorization (flex/vertical/horizontal trays)