Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Is anyone willing to put together a start-to-finish step-by-step guide?

I am a beginner at both programming and working with hardware. I am developing a passionate interest, but I have been unable to get started due to the lack of a plain English step-by-step guide. I have learned so much reading about this and other projects, and I am actually getting to a point where the things you people say is starting to make a bit of sense, but I really need a complete newb guide in order to jump in to this thing. Otherwise I'm just scared to start ordering the parts because it seems a lot of baseline knowledge is being assumed. I don't want to wake up one day with a pile of hardware and no idea how to make it function.

Different setups will differ, but I'd like a complete guide on how to do all software, firmware, hardware, whatever setups to where I have the basic system working. I know there are many discouraged enthusiasts out there who are still in my position. Please don't forget about the uninitiated, we wish only to join you!


  • edited June 2013
    This is my intent, but I've am/been really busy.  Then when I do find time, it's usually making the program play nice...  Ultimately making it easier to use / support.  I hope to have time soon.  I'm sorry for the frustration!  I understand!  I hope to hop on the wagon again soon.
  • It's great to see that you're still planning this, can't wait.
  • I am in the same boat as PersonOfInternets. I cannot wait to see a noob friendly guide! I Love you Yieldbuddy for what you're doing :)
  • row row row the boat..
    sitting in the same boat too.
  • I've got a crap load of stuff in my boat and the water's almost pouring in at the moment.  lol  I'll row as fast as I can!
  • I know you must be putting a huge amount of your time into this project and I'd like to thank you for that, so don't think this is another plea for an idiots guide (although that is exactly what this is really!)

    Having followed this project for a while I finally decided to give it a go so this is the reason I purchased my Pi and arduino so I have no experience with either of them. I know I really need to spend time learning about how each of them works individually before attempting something like this but the end result looks so amazing this is all I'm thinking about. 

    How about allowing new forum users like me to start a thread of their build / setup experiance? If we got a couple of people doing it that may turn into a good idiots guide once a few noobs get their setups up and running?

    Keep up the excellent work anyway!
  • I have a break coming up in my schedule, and hope to start work on the project again.  

    Thanks, and stay tuned.
  • I can't wait. Keep up all this awesome work Yieldbuddy! You are greatly appreciated.
  • just found this jewel ,
    was seeking long time for automated growing tomatoes :-P

    keep going
  • Wife got me a bunch of random gear to grow her some indoor veggies.  Looking forward to the guide yieldbuddy!
  • A lot will be changing in the next version, and the guide will have to reflect those changes.  However, everything will be coming much easier to setup, and should be more intuitive.  The guide will be following the next release.
  • You don't plan on changing the equipment too much do you Yieldbuddy? I already bought a pi and a mega, and a bunch of sensors. Most of what you had minus the din rail (i'm going to use a powered usb hub inside project box, cause you need one for the camera anyway, so it can power the pi and arduino) I already bought :-)
  • good question mike since i was about to start buying items as well
  • I'm looking at moving to the cubieboard, as it runs a little nicer than the Pi, but everything should still work (a little slower) with the Pi.
  • Hi!

    Any updates on the manual?

  • registered to say this.
     I have experience with pi but not arduino or hardware components. I would love a step by step guide including all the hardware needed/schematics!!

    I know being a developer can be hard on time but i am very interested in your project and would be willing to send you a Bitcoin tip for your hard work. Just send me your deposit address and Ill try to make this project worth more of your time!

  • edited June 2014
    Hey nightwolf,

    I am currently doing some hardware development.  I plan on working on the guide soon after.  My bitcoin address is: 192sK9VVhzfoaekR9b3CuhmuJwbu6trewr     Thanks for your support!
  • I would be willing to chip in to make it worth the while too. Don't have experience with the Arduino (which I am trying to get into with this project, but do have SQL experience, and work in the automation field. I am also interested in implementing a couple more sequences for other items. (Disolved Oxygen, TDS, PH, etc....)
  • Hey Yieldbuddy,

    I'm in pretty much exactly the same position as PersonOfInterest. Just want to chime in to say that I'd love to see a step by step guide and that I appreciate the whole initiative. 
  • Any updates? I'm very interested in this project, but I've never done anything like this before.
  • Hi samjill,

    I think you need to just jump in and do it.  There will be alot of help here when you get stuck.

    yieldbuddy is coming up with a better update, so use the raspberry image pi for now.

  • edited June 2015
    Just for some encouragement for you samhill, I had never really done anything this intense before either and I was able to finally get a webserver up, which controlled light and pump relays and gave me and recorded accurate sensor readings. I never did get my camera working, or a whole mess of other things, but I got pretty darn far. So give it a go. I keep hoping like you do and watching around here. As this awesome project progresses there will be more detailed guides and schematics and software updates I'm sure. I'd love to collaborate and help write a guide when the time comes for writing one if it's of interest to you Yieldbuddy. I just followed the parts list (except the parts about the DIN rail, I just powered things with a dual voltage power supply I found so I could make the entire thing just one plug into the wall) pretty much exactly and followed the wiring diagrams and yieldbuddys instructions. I even toyed with the idea of using RJ45 connections to do remote "sensor modules", "hydro modules" and "relay modules" that would just connect via regular RJ45 cabling which seemed at first very doable, but I wanted to wait to see which direction Yieldbuddy went in first. So even a novice like myself started having his own little ideas along the way. Take a crack at it! It's not like it's a ton of $$$ or anything just to get started.
    I learned SO much in the process! I even designed a little board for printing as a prototype. People who "actually" design boards and things like this for a living will probably get a good laugh over that, as I've never done one before. I learned through doing, and it was all because of the desire to work with this project. This board never got made, and I don't know if it would even work but , my idea with this board was that it was basically a shield that snapped onto one side of an arduino mega. The serial converter, RTC and battery were built in, so there were just a few pins to cable to the pi. The 3 RJ45 jacks were so that the "main project box" (housing this, the ardunio, and pi) would have one ethernet cable running to a "growroom sensor module" which would be a small project box with a small fan built into it moving air, housing CO2, light, temp, and humidity sensors. Another ethernet cable would go from the "main project box" to a small "hydro sensor module" housing the circuitry parts of submersible TDS, pH, and water temperature sensors. You would connect the submersible sensors to this "hydro sensor module". The third ethernet cable would send control information for a "relay module". In this way, you could correctly wire several lights at 220V to their own enclosure and on their own high voltage and amperage breaker, and use only one 120V relay from the arduino to activate a much larger 220V 40A (or whatever) relay and be able to flip many lights at once on and off. That would only need to be one pin of the ethernet cabling. So the other RJ45 wires could be used independently for things like fans and air and water pumps or whatever else. You could even add several "relay modules" that worked on several different voltages, and worked via bluetooth or XBEE or some other wireless signal that was the most reliable or appropriate. One "relay module" could be for inside the growroom devices while another could be for outside the growroom for higher voltage or amperage devices possibly. My idea was of this being more modular and not all contained in one box mixing 220V and 120V and small voltages like for the arduino and pi. I saw the schematic that did seem to isolate all the small stuff from higher voltages etc, this would just be my particular approach. I know that sending most of this sensor data over RJ45 wiring isn't ideal, or rather I found that out in the course of my research. But I'd love to keep the idea of it being modular. The "brains" in one box, "grow room sensors" in one box, "hydroponic sensors" in one box, and "relay units" in separate boxes depending on voltages.
    The point samjhill is if you do give it a go, you'll learn a lot for sure. And the software definitely works. As a novice, I was able to get it working to control lights and pumps. And if I spent more time on it, probably I could have done more but I know literally nothing about code, so I'm waiting just like you are :-)
    So don't be discouraged just give it a shot. Also, one setup isn't going to work for everyone. You may need to tailor some things to your needs that you need that most others wouldn't. For instance I definitely would like to see implementation of some type of fuzzy logic for CO2 control so that the CO2 dispersal could somehow be slowly decreased as your target PPM is approached thereby saving CO2 and keeping the numbers more uniform. I don't know if that's intensely hard to do or not to be honest. Many of the controllers for CO2 on the market now control like this, so it can't be that hard to implement I wouldn't think. I would also love to see peristaltic pump control for a mini doser that could handle both TDS, pH, and water temperature using submersible sensors. There are tons of arduino mini doser projects for aquariums online that I'm sure someone could adapt to work with this. Another suggestion would be more than one water temperature sensor and an option for both heating and cooling of said reservoirs.
    It's close, and when Yieldbuddy is done with it I'm sure it will be a fantastic if not drastically superior alternative to any enterprise level controller if built by the user correctly with quality parts. All this being said, I don't code squat, so I patiently wait and watch the magic that is Yieldbuddy happen. I know I'm not the only one who has their eye on this project, as it rocks! I'd be glad to test and contribute in any way I can as well. Keep it up yieldbuddy! Waiting for more whenever you're so gracious as to provide it!
  • If I ever get mine built i will defiantly put up a part by part construction ( so I can clone them later on :P

    also willing to pay-anyone to help finalize my Arduino needs for my aeroponic system 
  • edited October 2015
    While this isn't end to end, this at least will get you the right files in place to make success more likely. As I progress further, I'll add some more. There are a million ways to do this, it's just the way that I did it.

    Default Credentials

    Website Credentials: Default/Default

    Pi Credentials: pi/raspberry


    Download Updates to Yieldbuddy from Github

    Referred to as ArduinoUpdate and RaspberryPiUpdate from here forward

    Use zip downloader (bottom of right column) from the arduino_mega and raspberry_pi pages individually


    Acquire Linux Image With Yieldbuddy

    Get image  file from sourceforge (Referred to as SOURCEIMAGE.img from here on in)

    Extract the image file from the zip file with your favorite compression utility


    Acquire Libraries

    Download Libraries from Yieldbuddy

    Extract the image file from the zip file with your favorite compression utility

    Replace the Time library with a working copy

    Just download a zip file of them all, and extract the documents to the same directory you currently store Time in.

    Compress each subfolder to an individual zip file for individual import later



    Migrate Pi Bootloader To Berryboot

    Pretty much download and extract to SD card, well documented and will no doubt be updated more frequently than this post.

    Will allow updated images to be loaded in parallel for testing.

    Will allow additional images to be loaded, such as hardware testing.

    Greater diversity of storage mediums allowed


  • edited October 2015
    Squash File For Use With Berryboot

    From Linux PC:

    apt-get install squashfs-tools kpartx


    Make a copy of the img file.

    Changes made during this task will alter the img file, and it is always best to edit a copy so that you can step back if you so desire.

    sudo kpartx -av< SOURCEIMAGE.img>

    In the returned text, the big loop (partition in img file) is your return information to target

    Use only the portion of the text "loop#p#" for the remainder of the task

    sudo mount /dev/mapper/<LOOPRETURN> /mnt

    Example: /dev/mapper/loop1p2

    sudo nano /mnt/etc/fstab

    Comment out (use a #) all drive listings. Berryboot will handle this, and your boot will fail if both are trying to do this.

    sudo mksquashfs /mnt <NewImageName.img> -comp lzo -e lib/modules

    sudo umount /mnt

    sudo kpartx -d <NewImageName.img>


    From <>;

    Note: Ignore the sed step at this site unless you're an advanced user and ready to troubleshoot the search string, it is hit and miss. Manually updating the fstab file yields more predictable results, and in most cases is in fact faster. Also, commenting it out gives you the option of stepping back to the old configuration later if you so desire.


    Copy <NewImageName.img> to thumb drive that is fat32 or ext format

    Insert thumb drive into Pi

    Boot up

    Edit Boot Menu

    Click "Add OS" and HOLD it until the menu appears (it takes a moment)

    Choose from USB device

    When presented with <NewImageName.img> choose this

    Set it as your default OS


    Boot to Yieldbuddy Pi Image

    Login when prompted for credentials


    Note IP Address (RPiIP Below)


    From Linux PC:

    Browse to URL: http://<RPiIP>/yieldbuddy

    Should be prompted for credentials


    From Pi:

    sudo apt-get update

    sudo apt-get upgrade


    SSH is already installed, get IP and start working remotely.

    Current version doesn't support power management on NIC, watch for future problems with that

    sudo cp -Rv <PathToRaspberryPiUpdate>  /var/www/yieldbuddy

    sudo cp /var/www/yieldbuddy/www/users/default.xml /var/www/yieldbuddy/www/users/<USERNAMEYOUWANT>.xml

    sudo nano /var/www/yieldbuddy/www/users/<USERNAMEYOUWANT>.xml

    Change password value to what you want for a password. Stored in plaintext, and you can browse the files if you know the username. You're warned.

  • edited October 2015

    Create symbolic links to move DB off of SD card and onto thumbdrive

    Reduces r/w overhead on the sd card which can lead to problems

    Get a thumb drive and place a file on it called "test.txt"

    Plug in thumb drive, formatted fat32 or ext


    Confirm thumb drive is in /mnt/usb by looking for "test.txt". If not, check other directories in /mnt

    cp /var/www/yieldbuddy/www/sql/yieldbuddy.sqlite3 /mnt/usb/yieldbuddy.sqlite3

    cp /var/www/yieldbuddy/www/sql/yieldbuddy.sqlite3-journal /mnt/usb/yieldbuddy.sqlite3-journal

    ln -fs /mnt/usb/yieldbuddy.sqlite3-journal /var/www/yieldbuddy/www/sql/yieldbuddy.sqlite3-journal

    ln -fs /mnt/usb/yieldbuddy.sqlite3 /var/www/yieldbuddy/www/sql/yieldbuddy.sqlite3



    Connect Arduino to a PC with a GUI, probably the Linux machine you used before.

    apt-get install arduino

    Launch arduino,


    Use Tools --> Board menu to choose your Arduino device model number

    Use Sketch --> Libraries "Include Library" to include the libraries that you downloaded earlier

  • Great work! a few things to note:

    1. SQLiteManager user/pass: admin/admin
    2. I would also upgrade to 'Jessie', as it runs much smoother. (would need to reconfigure motion service)

    Curious, were you able to upload a sketch from the raspberry pi to the arduino directly?  I'm having issues on the upload, as installing arduino 1.6 doesn't work on the raspberry pi.  Most of the libraries I use need 1.6.

  • Glad you like it! Thank you for the SQLiteManager info, digesting the database is on the list for this weekend!

    As to loading from the Pi to Arduino, yea, that won't work. Well, I'd imagine that it can, but it's a lot of work. I wouldn't use the Pi for the editing and uploading, I just use as the server it's built to be. The path of least resistance is to install arduino on another machine. I found that it was easier to work with on a Debian platform than Windows, but the X session tended to throw occasional meaningless errors for me. Probably the ancient hardware that I have it on, but either way things work fine. Still waiting for my logic converter to arrive though, so I'm stuck back engineering things so I understand how they work... for now.

    Regarding libraries, did you grab the latest from Github?
  • I went through your steps above and I found a couple of issue ( Not saying your process caused these issues )

    When I tried to sync the times from raspberry pi to Arduino I got an error saying it couldn't run /var/www/yieldbuddy/Command
    I also noticed in SQLiteManager the Yieldbuddy database was readonly

    I found out that the nginx install is using the default settings so all PHP workers are running as www-data.

    To fix this modify /etc/php5/fpm/pool.d/www.conf
    and change 
    user = www-data
    group = www-data

    to be

    user = pi
    group = pi

    The Other issue is when you copy over all the updated raspberry pi code I would constantly get an error when trying to log in, this is due to the added code in /var/www/yieldbuddy/www/index.php

    The new index.php file has checks for sql which is failing for me. So i just copied all files except the new index.php file

    Finally I edit with vi and I can see all the php files have the ^M now at the end of each line which would suggest they were edited with windows, this is in both the updated code and what was in the img file

    I installed dos2unix (sudo apt-get install dos2unix )on the pi and just ran the following command

    find /var/www/yieldbuddy -type f \! -path \*/\.svn/\* -exec dos2unix {} \;

    Hope this helps
  • I am willing to help by making step by step YouTube videos, which if someone wants to can transcribe to a manual. But you guys gotta help me get the ball rolling in my system first!

    I just found this today.
Sign In or Register to comment.