Does this project spark your interest?

Become a member to follow this project and don't miss any updates


FarmBot - Open-Source CNC Farming

FarmBot is an open-source CNC farming machine and software package built for small scale, hyper local, DIY food production.

Similar projects worth following
FarmBot is an open-source CNC farming machine and software package designed for small-scale precision food production. Similar to 3D printers and CNC milling machines, FarmBot hardware employs linear guides in the X, Y, and Z directions. This allows for tooling such as seed injectors, watering nozzles, sensors, and weed removal tools to be precisely positioned and used on the plants and soil.

FarmBot is controlled by an Arduino/RAMPS stack and an internet connected Raspberry Pi 2. The hardware is designed to be simple, scalable, hackable, and easily produced.

Using the web application, the user can graphically design their farm or garden to their desired specifications and synchronize the numerical control code with the hardware. Other features include storing and manipulating data maps, a decision support system to facilitate data driven design, access to an open plant data repository, and real-time control and logging.

About the Project

I hope for FarmBot to become more than an idea, more than a hack, more than a product. I hope for it to become a thriving community of individuals and businesses that develop, share, and distribute the technology - much like how the RepRap project has done for 3D printing.

As you read through my entry on Hackaday, you'll notice that I link to several places:, and is my brand new company that develops and is planning on distributing FarmBot hardware kits and software services. is the free-form community wiki and forum where anyone can get involved and share ideas. You can read the announcement of the new company here, and learn about why it is important to distinguish it from the community as a whole. I hope you check it out and enjoy what we're doing :)


- Rory

Open is at our Core

FarmBot is 100% open-source. We document everything we do on our dedicated hardware documentation and software documentation hubs, as well as on the community wiki. All of our code lives with permissive licenses on GitHub. We openly welcome feedback, replications, modifications, and questions. To facilitate collaboration, we've setup a community forum for anyone to get involved in the discussion, as well as dedicated hardware and software support forums.

Not Just Open-Source, Useful-Source

We believe that great documentation is the the key to building a community of hackers who continue to build upon this technology. While being open-source means making our source files and ideas free for others to use and modify, we don't believe this is enough. At the FarmBot Project, we're going one step further than open-source, we're going useful-source.

This means that in addition to sharing the source files, we're also sharing detailed assembly instructions, bills of materials, troubleshooting tips, past iterations, and our design intentions from the entire FarmBot journey. We're striving to design beautiful hardware that is reproducible with common tools and processes; built from low cost and readily available materials and components; and easily assembled and hacked. Our software is built to give users full control of their machine through and through. And we're even committed to operating our company with transparency and open company values at the forefront.

With all of this effort, we hope that thousands of individuals and business can learn how to use, hack, redistribute, and even monetize FarmBot just like us, ultimately pushing the technology forward and making it more accessible to the masses.

Mission and Vision Driven

The FarmBot Project vision is to:

Create an open and accessible technology aiding everyone to grow food and to grow food for everyone.

In order to achieve this vision, our mission is to:

Grow a community that produces free and open-source hardware plans, software, data, and documentation enabling everyone to build and operate a farming machine.

Hardware Overview

FarmBot is a CNC machine that uses special tools and software to grow plants. Our first device, FarmBot Genesis, is an outdoor XYZ machine that can scale from a planting area as small as one square meter, to as large as 20 square meters. It is estimated to cost between $1,500 and $4,000 depening on the size of the installation.

Core Components

We've chosen the following core components and materials for their utility within the FarmBot design, excellent corrosion resistance, general availability, ease of manufacturability, and relative low cost.

  • V-slot aluminum extrusions and V-wheels are from OpenBuilds. These act as FarmBot's primary structural component and linear guide mechanism. These extrusions are high quality, easily cut to length with just a hacksaw, and have a completely open-source design.
  • Custom designed 5mm thick plates are used to connect the extrusions, wheels, and other components together throughout FarmBot's structure. These plates can be made from sheet...
Read more »

  • 1 × For the most up-to-date BOM, see our documentation hub:
  • 4 × 20x40mm V-Slot Aluminum Extrusions Because FarmBot is scalable, you will have to calculate the total length of extrusions you need based on how large of a FarmBot you want to create. Available from OpenBuilds
  • 2 × 20x60mm V-Slot Aluminum Extrusions
  • 1 × 20x20mm V-Slot Aluminum Extrusion
  • 1 × Set of 5mm Thick Water Jet Cut Aluminum Plates The DXF drawing for all of the plates can be found in the manufacturing files section of each log.
  • 1 × Raspberry Pi 2 Model B
  • 1 × Arduino MEGA 2560 + RAMPS shield
  • 3 × Dual shafted NEMA 17 Stepper Motors with Differential Rotary Encoders
  • 1 × 12V, 15 Amp Power Supply Available from OpenBuilds
  • 3 × 3D Printed Motor Housings

View all 33 components

  • Our Final Round Video for the Hackaday Prize

    Rory Aronson10/26/2015 at 05:32 0 comments

  • The First Chard Seeds Are Emerging!

    Rory Aronson10/21/2015 at 03:13 0 comments

  • Precision Watering the Swiss Chard

    Rory Aronson10/20/2015 at 20:06 0 comments

    Check out this time lapse of FarmBot watering the Swiss Chard that we planted last week!

    You can see how this method of watering is much more efficient than soaking the entire bed with water:


  • FarmBot Plants Seeds for the First Time

    Rory Aronson10/16/2015 at 03:05 0 comments

  • How Much Food Can FarmBot Grow?

    Rory Aronson10/16/2015 at 03:04 0 comments

    We are often asked questions relating to FarmBot’s yield. “How big of a FarmBot do I need to grow all of my food?” is a common one. While we don’t yet have any empirical data to share with you, we have done an analysis answering this very question. Let’s dive in to see the results.

    Gathering Data

    We compiled a set of 33 common crops (seen in the table below) that could be compatible with FarmBot in the relative near future. You’ll notice that we did not include tall crops such as sunflowers and corn, and there are no fruit trees or berry bushes (with the exception of strawberries). Additionally, there are no grain crops included because it is unlikely that growing grains would be efficient with FarmBot hardware in comparison to larger scale specialized equipment.

    After choosing the crops, we needed to find three pieces of data for each: average yield per harvest (kg/m^2/harvest), average days till harvest (days/harvest), and caloric density (calories/kg). We found this information from the USDA and a wide range of other sources online (see below for resources list).

    Crunching Numbers

    Right off the bat, we made an assumption that FarmBot can increase yield per harvest by about 12% by packing plants in a denser hexagonal packing structure instead of a traditional cubic packing structure. Using this new yield data and the days/harvest values, we calculated daily yield values for each crop in kg/m^2/day. Multiplying this figure with the caloric density provided a daily caloric yield for each crop in calories/m^2/day.

    Cropkg/m^2/harvest (cubic packing)kg/m^2/harvest (hexagonal packing)Days/harvestkg/m^2/dayCalories/kgCalories/m^2/day
    Bell Pepper0.770.8990.000.00992502.48
    Black Beans0.160.1885.000.002133907.23
    Brussel Sprouts1.792.07110.000.01884308.09

    From here, we found out how many calories/day could be produced with a FarmBot Genesis (4.5 m^2 in size) and a FarmBot Genesis XL (18 m^2). We calculated these values twice: once by using an average caloric yield of all 33 crops to represent growing them all using an equal amount of area; and once by using an average of the best 10 performing crops as ranked by the calories/m^2/day benchmark. The results are in the table below:

    Calories/m^2/DayCalories/day with FarmBot GenesisCalories/day with FarmBot Genesis XL
    All crops average9.7444175
    Best 10 average18.2182328

    As you know, 328 calories/day with a Genesis XL growing the best 10 performing crops is not very many calories. Most people eat at least 2,000 calories/day. By this analysis, one would need a huge FarmBot to grow all of their caloric needs. We calculated just how big in the table below, revealing a minimum size of 110 square meters (the size of a small house) in order to provide all 2,000 calories/day.

    Calories/m^2/DaySize of FarmBot needed for a 2,000 calorie diet (m^2)Size of FarmBot needed for a 2,500 calorie diet (m^2)
    All crops average9.74205257
    Best 10 average18.21110137

    Cups, not Calories

    But this isn’t...

    Read more »

  • Water Jet Cutting with Big Blue Saw

    Rory Aronson10/14/2015 at 00:00 0 comments

    FarmBot needs to be designed with manufacturability in mind – not just on an industrial manufacturing scale, but on the individual maker/hacker scale as well. After all, our goal is to empower people to build FarmBots! With this in mind, we have designed much of our hardware to be manufacturable using common tools and processes such as 3D printing, drilling, and sawing; as well as common materials including standardized hardware, aluminum extrusions, and aluminum connecting plates.

    We’d like to share with you how we manufacture our 5mm thick aluminum connecting plates – an integral component of FarmBot that connects the extrusions, V-wheels, motors, and other components together throughout the hardware system. While the plates can be easily produced using a drill press and a hacksaw at home or in a MakerSpace, we’re going to share how we manufacture them in bulk with a high degree of accuracy.

    The process we use is called water jet cutting, where a high pressure stream of water with an abrasive compound (often diamond dust) mixed into it is used to cut through a variety of materials. The machines are often very large and very expensive, though very powerful and versatile. Most machines can cut virtually any material including plastics, woods, aluminums, and steels. The process lends itself well to manufacturing our 5mm thick aluminum plates.

    At, we’ve been fortunate to work with a fantastic water jet cutting service provider named Big Blue Saw. Big Blue Saw is attractive for us to use because they are an online-first service that really caters to their customer’s needs. On their website you can upload a .DXF file of your parts, choose your material and quantity, and receive an instant quote for free. If the price looks right, you can place the order right then and there, and your parts will arrive at your doorstep within a week or two!


    So far we’ve purchased about 12 FarmBot’s worth of aluminum plates over three different orders from Big Blue Saw. We’ve been very happy with their service, the fair price, and the quality of the components such that we’ll be continuing to go back to them for all of our water jet cutting needs.



    If you’re planning on manufacturing your own FarmBot, we highly recommend downloading our .DXF file for all of FarmBot’s plates, and sending the job over to Big Blue Saw. There is also a basic finishing option for components, though we haven’t tried that out yet because we’re still just building prototpyes. However, once we begin selling FarmBot kits for others, we’ll be sure to polish up all of the plates for a professional, high-quality aesthetic.

  • FarmBot Video for the 2015 Hackaday Prize Semifinals

    Rory Aronson10/06/2015 at 05:13 0 comments

  • FarmBot Genesis V0.8 Documentation is now Complete!

    Rory Aronson10/06/2015 at 05:12 0 comments

    We just wrapped up the documentation for FarmBot Genesis V0.8! In this version, we added bills of materials for each sub-assembly, more detailed and photo heavy assembly instructions for each sub-assembly, and details for setting up the software and electronics.

    If you have any questions or issues, drop us a line in our support forum.

  • Introducing

    Rory Aronson09/21/2015 at 18:32 0 comments

    Two years ago I published a whitepaper describing an open-source technology called FarmBot and a vision for an Open Food Future. Since then I’ve been building two global communities to help me carry out this vision: the free-form FarmBot Project and the non-profit OpenFarm.

    As the vision has developed, it has become important to make clear the differences between the entities. Sure, I’m the guy behind both The FarmBot Project and OpenFarm, but the two products, teams, legal entities, and finance books are very different and separate. OpenFarm is a non-profit and a database for how to grow food. The FarmBot Project is a free-form global community working to develop a common technology and sharing resources like the FarmBot Forum and Wiki.

    However, while free knowledge for building things is important, sometimes it is not enough to get mass adoption of a new idea. Sometimes business can be a powerful agent of change that can make something more accessible. We see this a lot with the RepRap project and the hundreds if not thousands of 3D printer businesses that thrive around consumerizing and improving upon a core of open-source technology.

    This is where today’s announcement comes in. Up to this point, we (me, Rick, and Tim) have been operating under The FarmBot Project as just everyday people working on FarmBot technology. This has worked out great for the last two years, though we’ve had larger ambitions to commercialize for some time now. Now we want to start a for-profit business producing and selling FarmBot hardware kits and software services. In doing this, we want to make clear the differences between our for-profit ventures and the free-form community behind the technology as a whole.

    So today I’m excited to announce a third entity to the mix:, our for-profit company that we’re forming to design and sell FarmBot hardware kits and software services. Though this is a private company, we hope to run it using open company practices and we’re committed to continuing to contribute our development back to the open source core of The FarmBot Project and community. We’ll also continue to maintain and steward The FarmBot Project’s community resources.

    To make it all easy to remember and distinguish, we have two domain names that you should keep in mind:

    • is the community site for The FarmBot Project as a whole. This is where anyone can get involved and share ideas.
    • is our business site where we design, sell, document, and provide support for our hardware kits and software services

    We’re also starting new social media profiles for Below is a breakdown of all the profiles:

    We hope this is clear now, and that it will only become more clear as time goes on. We think that as the project community grows, and as more for-profit businesses start popping up (which we encourage!) then the distinction will be more obvious.

    Cheers to a prosperous future of FarmBot community and business!

  • Installing Rick’s First FarmBot

    Rory Aronson09/21/2015 at 18:30 0 comments

    Over the last month, I went on a roadtrip across the United States. It was mostly a vacation, though also an opportunity to hand deliver a V0.8 FarmBot to Rick in Chicago and film him talking about our software in preparation for our Kickstarter campaign coming up later this year!

    The hardware installation process was pretty straightforward because I had originally had the FarmBot installed in my front yard, then broken it down ~20% into sub-assemblies for transportation, and then we simply put the sub-assemblies back together on Rick’s raised bed. The sub-assemblies were: Track 1, Track 2, Gantry Column 1, Gantry Column 2, Gantry Main Beam, and the Cross-Slide + Z-Axis combo. The hardware installation only took about an hour.

    However, then we ran into some troubles. Rick built his raised bed about 200 feet from his house, so we had to string together a series of extension cords to provide the bot with power. Some of the cords were really old and caused the house circuit breakers to flip a few times, and even shock Rick once! But we eventually found better cords and got it powered up.

    Then the device booted up and automatically connected to my phone’s wifi hotspot (because my home wifi network was not available anymore, and the bot had no way of knowing Rick’s home wifi network name and password). This was all going according to plan. Using my phone, I SSH’ed into the Raspberry Pi and edited the wpa_supplicant.conf file which controls which wifi networks the pi knows to connect to. I added in Rick’s home network and restarted the device. This is where stuff went downhill.

    Upon restarting the device, it would not connect to either Rick’s home wifi, or my phone’s wifi. We tried moving Rick’s wifi router closer for a stronger signal, but to no avail. We then ended up bringing the Pi inside and double checking the wifi file using a linux computer. With everything looking good, the device would still not connect to any wifi networks. After several hours of troubleshooting, we never figured out what went wrong, and decided that the Pi will need to have a fresh OS installed. Oh well. This gives us reason to work on “FarmBot OS” – an image of a working OS with all of our software pre-installed on it so that users can flash it onto their Pi’s SD card and everything will just work.

    In the meantime, Rick is pretty excited to finally have a full-size device of his own to test out software with!


View all 41 project logs

  • 1

    Dedicated Documentation Hubs

    Hey there! You're about to read our FarmBot build instructions here on While we have lots of details posted here, you can find the most up-to-date documentation for the latest hardware on our dedicated hardware documentation hub. In addition to the latest docs, you can also browse past versions of the hardware and ask questions in our support forum. Be sure to check it out!

    Furthermore, we also have a dedicated software documentation hub and support forum for software related issues.

  • 2

    Supporting Infrastructure

    FarmBot Tracks need to be attached to supporting infrastructure. Where you decide to install your FarmBot will determine how you setup your Tracks and therefor what supporting infrastructure you need. You might attach your track plates to 2x4 wood posts, aluminum extrusion posts, or to existing infrastructure such as a raised bed or greenhouse walls. The choice is up to you how you set this up.

    Be prepared

    If you recently ordered a FarmBot kit, you may want to begin building your supporting infrastructure while your FarmBot is in the mail. This way you'll be prepared for a faster assembly time when your package arrives.

    We'll go over two methods here for setting up supporting infrastructure: building a raised bed, and setting up extrusions as posts. Note: some photos and components may be out of date for V0.7 hardware.

    Build a Raised Bed

    6 hours

    This is the estimated time it will take to build a raised.


    • Purchase some high quality wood from your local lumber yard. Preferably you will use thicker wood (1-2 inches thick) so that it does not warp easily. This is pretty important because your tracks will need to be very straight for FarmBot to work reliably, and your tracks will be directly attached to the raised bed. When soil becomes wet and when plants grow, this can cause tremendous force on the wood walls of the bed, forcing them outwards. Thicker wood, and extra posts is preferred. In this example, I used 2x12" nominal redwood, and 4x4" nominal wood posts spaced roughly every 5 feet, or one 1.5m extrusion length.
    • You'll also need to pick up some hardware for fastening your raised bed together. I selected 3/8" x 3" lag bolts, and some rustic looking washers.
    • Depending on your climate, you'll likely want to put some type of sealer, stain, or polyurethane on your wood to protect its color and water resistance. I chose Thompson's water sealer.


    Setup your lumber roughly where your bed will be so that you may find out where to dig your post holes.

    Dig your post holes. A post hole digger and pick axe can help greatly.


    Sand your wood to remove any weird markings and splinters.

    Stain your wood.

    Setup your lumber upside down on a flat surface. We'll drill holes and screw together our bed in this orientation and then flip it over and position it in our holes.


    Measure out and mark where your posts will be. Remember this must correspond to where you dug your post holes!

    Clamp your posts into place, making sure they are square with the bed sides.

    Mark locations where you will drill holes and fasten your boards to your posts. I used 2 lag bolts and washers per board/post interface.

    Don't let your bolts hit each other

    On your corner posts, make sure to stagger your bolts slightly so that the bolts coming in from one side of the corner do not hit the bolts coming in from the other side of the corner.

    Pre-drill the holes for your lag bolts.

    Use a ratcheting socket wrench to quickly screw in your lag bolts.

    Style counts

    If you are using fancy washers like me, orient them all in the same direction before tightening the lag bolt down. Remember, you are assembling your bed upside down, so plan for the washers to be flipped when the bed is installed.

    Notice how the corner bolts are staggered so that they do not hit each other, and the washers are oriented the same way.


    • Once your bed is assembled, flip it over and position it in your holes. You may need to pull it out and dig out some of your holes a little more. Use a level to make sure the bed is level.
    • Fill it with a mix of soil and compost.

    Setup Extrusion Posts

    2 hours

    This is the estimated time it will take to setup extrusion posts.

    • Install short (100-500mm) vertical posts for one of the tracks. Attach or secure the posts however you like, though it is critical to ensure that the posts will not significantly move once installed. Space the posts for one track 1500mm apart, center to center, unless you are using shorter track extrusions, in which case space the posts that far apart. Ensure the posts are aligned properly and the same height. You may want to use a level to ensure this.
    • If you are setting up multiple track extrusions (more than 1500mm in total length), it is best to install the end posts first and tie a guide string in between these two posts to ensure your tracks are installed in a straight line.
    • Depending on the width of your FarmBot, space the second Track’s posts the appropriate distance away from the first Track’s. It is critical that the distance between the two Tracks is consistent, if it is not, there will be forces placed on the Gantry and Tracks as the Gantry moves across.
    • You can use shims or other spacers to better align track plates in case your posts are not perfect.
  • 3

    Assembly Preparation

    In order to shorten the time it takes for you to assemble your FarmBot hardware, follow these preliminary steps.

    15 minutes

    This is the estimated time it will take for assembly preparation.

    Organize your Parts

    When you first open up your FarmBot hardware package, pull out all of the component bags so that you develop a full idea for what's included, and so that you can place them on a table or the floor in locations that make sense to you.For many, grouping parts by type helps with locating them quickly later on. For example: place all your screws in one area, all your plates in another, all your electronics in another, etc.

    We'll make it right

    If anything is missing or damaged from your box of components, let us know right away. We'll ship out replacement parts as soon as we can.

    Pre-assemble your V-Wheels

    Each V-Wheel actually consists of four components:

    • One polycarbonate v-wheel
    • Two 16mm x 5mm x 5mm stainless steel, rubber sealed ball bearings
    • One stainless steel precision shim that fits between the two bearings, inside the wheel

    Pre-assembling all your v-wheels at once will save you assembly time later on. To do so, first press one bearing into the polycarbonate wheel.

    Make sure everything is straight

    It can be easy to accidentally press in a bearing crooked. Try your best to avoid this as you could damage a wheel this way.

    The sound of success

    If all goes well, you should here a satisfying 'pop' each time a bearing fits into the wheel.

    Then insert the precision shim such that it is resting on the first bearing on the inside of the wheel. Try to position the shim in the center of wheel.

    Then press in the second bearing.

    Shimmy the shim

    If your second bearing doesn't seem to fit all the way into the wheel, its probably because the shim is misaligned. Use a small screwdriver to push the shim into the center of the wheel, and then push the bearing in the rest of the way.

View all 9 instructions

Enjoy this project?



silvioBi wrote 04/14/2016 at 21:01 point

That's one of the coolest projects that I've ever seen! Amazing! Bravi!!!

  Are you sure? yes | no

vikrant.jagtap wrote 01/19/2016 at 08:37 point

Hey Team - I stumbled upon this project accidentally and it is something i have in my mind too. I was wondering how this can be made applicable to a large farm of 1 acre to start with. My dad has grapes vineyard on which I work on weekends. Spraying is a one of the biggest activity and would love to make this farmbot applicable there. With electro-static spraying added to farmbot, it can do wonders in grapes farming. 


  Are you sure? yes | no

rory wrote 11/25/2015 at 18:08 point

@Mike Maluk yea, that would be awesome! Please post a link to your build log here once you get it going!

  Are you sure? yes | no

Mike Maluk wrote 11/25/2015 at 21:40 point

Will do, thanks!

  Are you sure? yes | no

Mike Maluk wrote 11/23/2015 at 06:07 point

I'm looking to build a smaller farmbot, or I suppose it'd be a gardenbot, for indoor growing. Would it be all right to post a build log on hackaday? Just wanted to send a line out before I start posting builds of others ideas! Thanks!

  Are you sure? yes | no

Garrett Herschleb wrote 09/09/2014 at 18:33 point
This is a great concept and a great start. Here are some suggestions that would help make it useful:

1. Make the database and bot region independent. Growing season in Duluth is not the growing season in Phoenix. Concentrate on environmental conditions such as daily temps, humidity, rain fall, and sunlight rather than months of the year. Months of the year may be calculated for a specific region, or better yet, by sensors on the farm bot.
2. Address the soil. If the bot tries to follow the same fertilizer formula in all places, you'll have some people singing its praises and most others cursing the poor results. Fertilizers cannot fully address the problem. Soil Ph differs wildly in different regions of the world, as do so many other critical factors. Farm bot would have to have either serious soil testing capability, ability to mix soil in a raised bed from a recipe, or preferably both is a critical ingredient for success.
3. Address the issue of pests and fungus. Anybody buying this bot won't do so to save on their grocery bill since the expense of the system is far more than a few trips to the grocery store. Therefore this must have strong organic capabilities, and the ability to address the pest problem without pesticides. This has many dimensions, but one key capability is to be able to work with and around bird netting.
4. Add the ability to warm the local air in case of unexpected freezes.

5. Learn more from expert home gardeners. The "Grow Your Green" YouTube channel is a great place to start (I'm not affiliated with that channel, I just find it's a good source of home gardening info).

  Are you sure? yes | no

Rory Aronson wrote 09/09/2014 at 22:30 point

Thanks for the thoughtful feedback and support! We're focusing heavily on the "Big Data" side of things and will be using both onboard sensors, geographic location, growing preferences, weather forecasting, and soil properties to determine how exactly to grow each plant optimally with the given conditions. Check out our sister project, OpenFarm that will provide us with the "Growing Instructions" for each plant based on the specific factors:

  Are you sure? yes | no

Similar Projects