Does this project spark your interest?

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

FarmBot - CNC Farming and Gardening

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

Similar projects worth following
This project is submitted for

This project was created on 08/19/2014 and last updated 10 months ago.

FarmBot is an open-source and scalable automated precision farming machine and software package designed from the ground up with today’s technologies. Similar to today’s 3D printers and CNC milling machines, FarmBot hardware employs linear guides in the X, Y, and Z directions that allow for tooling such as plows, seed injectors, watering nozzles, and sensors, 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. 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 upload the numerical control code to the hardware. Other features of the software include storing and manipulating data maps, a decision support system to facilitate data driven design, access to an open plant data repository, and analytics. More info is available at

A note to the judges regarding the judging criteria of the semifinals round :)

FarmBot is completely Open-Source. We document everything we do on our own dedicated mediawiki installation at, share and welcome feedback on our social media profiles, and all of our code lives openly on GitHub. We have chosen permissive licenses so that anyone can use what we create in any way they want.

We like to think that FarmBot is a clever mashup of existing technologies coupled with an innovative business and development model. We're essentially creating a CNC machine with special tooling and software for growing plants. We use all the same equipment as the DIY 3D printers and are very inspired by the RepRap project. Stepper motors, aluminum extrusions, Arduinos, RAMPS, and the Raspberry Pi are at the core of FarmBot. The development model is simple: share everything, get people excited, invite them to contribute, and eventually sell software as a service and hardware kits for the less technically inclined.

FarmBot is by nature a connected device. Much of what makes it so unique is the software up in the cloud communicating with the device, sending it the most updated information to make the growing data-driven and responsive to changing conditions. We are building:

  • A web application similar to "Farmville" so the user can design their farm or garden
  • A decision support system to make optimized decisions based on soil data, weather forecasts, and plant needs
  • An open database (OpenFarm) for growing plants to ensure FarmBot knows what it is doing and has the most updated information available

Regarding reproduce-ability, we let our Mission Statement do the talking. The FarmBot Project exists 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.

We're excited to reach a point where many innovators, entrepreneurs, designers, and engineers are our community that loves to develop, hack, and modify what FarmBot can do, bring the technology to new applications. One idea already presented is to have an automated greenhouse on other planets. FarmBot would not only grow the plants, but moderate and control the environment as well!

Though what we have today isn't worth reproducing, we are working hard to add features and functions so that when someone does produce a FarmBot, it will be a useful device in their life.

To get there, FarmBot requires a multifaceted engineering team. The hardware itself has many design constraints: it must withstand being outdoors, it must be easily manufactured at home or in a MakerSpace, it must be modular and extensible, and it incorporates unique parts (such as the universal tool mount) that have been designed and tested and redesigned many times over. The software is also an engineering innovation: taking a blend of different data sources such as the plant growing data, weather reports and forecasts, user preferences, soil data, and the user's design choices to create an optimized schedule of operations for the bot to execute.

At the moment, there is not a very intuitive interface, but these things take time to build. We have a plan (as outlined in the whitepaper) and a team, and the beginnings of our web application. You can help us move forward to build "Farmville in real life"! Contact Rory Aronson at

Regarding manufacturability, this is our primary focus on the hardware development side. How might we design parts that can be produced at home with nothing more than a drill? How can we simplify assembly to use 3 tools or less to build an entire bot? These are questions we keep in mind every day and we hope our hardware designs reflect that.


We're currently working on FarmBot Genesis, a small scale FarmBot primarily constructed from V-Slot aluminum extrusions and aluminum plates and brackets. Genesis is driven by NEMA 17 stepper motors, an Arduino Mega with...

Read more »

  • 1 × OpenBuilds 20x40mm V-Slot 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.
  • 1 × CNC routed or Water Jet cut 3mm Aluminum Plates All of the plates can be cut out of a single 2ft x 2ft sheet. The DXF drawing for all of the plates can be found in the manufacturing files section of each log.
  • 1 × Raspberry Pi Model B+
  • 1 × Arduino Mega + RAMPS
  • 3 × NEMA 17 Stepper Motors
  • 6 × Mechanical Endstops
  • 1 × 3D Printed Universal Tool Mount .STL file is available in the manufacturing folder for each log
  • 60 × Tee Nuts from OpenBuilds
  • 60 × M5 x 8mm low profile screws from OpenBiulds
  • 3 × GT2 Timing belts, pulleys, and flex couplings Depending on the size of your FarmBot, you will have to figure out how much length you need

See all components

Project logs
  • Universal Tool Mount Testing

    10 months ago • 0 comments

    This is a demonstration of the newest FarmBot Universal Tool Mounting System based on magnetic coupling of the tool to the tool mount. 

  • FarmBot - Accelerated

    10 months ago • 0 comments

    One of our project's software contributors, Tim Evers, just updated the Raspberry Pi and Arduino codebases for FarmBot to support acceleration! Before these updates, FarmBot performed very abrupt movements because the software would drive the motors from standing to full speed and back to standing in an instant; there was no smooth acceleration function built in.

    Now, the motors are ramped up to full speed and back down over a period of time. This is especially important for FarmBot because the motors are relatively small (NEMA 17) for the size and mass of the FarmBot gantry system. Before the update, the stepper motors would occasionally "miss steps" meaning that the microcontroller told the motor to turn, but there was too much opposing torque and so it did not in fact move as expected. This creates a situation where the microcontroller thinks FarmBot is in one location, when it is actually somewhere else. Subsequent movements could cause wasted water, damage to the machine, or the destruction of the plants - all bad!

  • OpenFarm - The Database That Drives FarmBot

    10 months ago • 0 comments

    We launched a Kickstarter campaign for OpenFarm, a free and open database for farming and gardening knowledge! OpenFarm came out of the need for FarmBot to access structured, detailed data for how to grow a plant in a specific environment with specific growing practices.

    We found that this data did not yet exist and figured the best way to obtain it was with a website where anyone could contribute the data, much like Wikipedia. We then figured that if we were to build such a database, it should not be exclusive for FarmBot users, but accessible by anyone via an API, open licensing, and a dedicated frontend interface.

    Check out the campaign and help fund this project!

    //////////// From the Kickstarter Campaign:

    Help us build the Wikipedia for farming and gardening!

    The Problem

    When searching for plant growing advice, it is common to run into the following situations:

    • Advice is overly generic
    • Advice is not structured, written, nor formatted well
    • Advice is very specific, but not relevant to you or your garden
    • There is no way to discuss or contribute new advice

    The OpenFarm Solution

    OpenFarm is a free and open database for farming and gardening knowledge. Similar to Wikipedia, the data is free for everyone to access and anyone can contribute content. Because people grow plants differently based on environmental conditions and growing practices, OpenFarm provides a framework for everyone to share their story, and for learners to find the best, most relevant content.

    OpenFarm Growing Guides are structured stories for growing a specific plant with particular practices and environmental conditions. Below, is a mockup example of Nancy's Guide for growing Heirloom Tomatoes with organic practices, in a greenhouse. Below the image are descriptions for each of the sections of the guide.

    Click here for a larger view of the image!Click here for a larger view of the image!

    See what the Growing Guides will look like on a smartphone here.

    In the example above, the Overview serves to introduce the reader to the guide by providing a photo of the plant at its maturity and a personal note from Nancy. There is also a table of contents for quickly jumping to another section.

    Next is the Prerequisites section. Nancy has specified what prerequisites are required for her Guide, and based on the reader's OpenFarm profile a "Compatibility Score" is created. In the example above we see that Nancy's guide is 84% compatible with the reader and their garden because most of the prerequisites have green backgrounds, indicating that they are satisfied. Others have yellow and red backgrounds, indicating that they are not fully satisfied. Mouse-over tooltips show why each prerequisite was satisfied or not.

    Following the Prerequisites section is the Timeline, allowing the reader to quickly see if it is the right time of year for them to grow the plant. The timeline is based on the reader's local weather history, and the Growing Degree-Days that the plant is projected to experience in that location.

    If Prerequisites are met and it is the right time to grow the plant, the reader reaches theGrowing Instructions which are organized by the plant's life stages. In Nancy's guide there are the Prep, Sow, Germination, Seedling, Juvenile, Adult, Flowering, and Fruitingstages. Within each stage Nancy specified what things she recommends to do, and when and how to do them. Some examples:

    • During the flowering stage, prune 30% of budding flowers, once, 1 cm from the flower base.
    • During the juvenile stage, mulch 3 inches of straw at the base of the plant.
    • During the adult stage, water for 2 minutes per plant, with a hose, 6 inches from the rootstalk, in the early morning or late afternoon.
    • During the fruiting stage, if you have a problem with aphids, mist the entire plant with an organic insecticide of your choosing.

    In addition to the Life Stages, an Overview informs the reader of what tools, fertilizers, pesticides, and other supplies are called for throughout the Guide. A Summary lists expected time commitment and water usage over the plant's...

    Read more »

View all 8 project logs


Garrett Herschleb wrote 10 months ago 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 10 months ago 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