Dedicated Documentation Hubs
Hey there! You're about to read our FarmBot build instructions here on Hackaday.io. 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!
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 Bed6 hours
This is the estimated time it will take to build a raised.
STEP 1: ACQUIRE MATERIALS
- 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.
STEP 2: DIG POST HOLES
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.
STEP 3: PREPARE YOUR MATERIALS
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.
STEP 4: ASSEMBLE YOUR RAISED BED
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.
STEP 5: INSTALL YOUR RAISED BED
- 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 Posts2 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.
In order to shorten the time it takes for you to assemble your FarmBot hardware, follow these preliminary steps.
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.
Tracks Assembly1 hour
This is the estimated time it will take to assemble the Tracks.
Step 1: Attach the Track PlatesWhat's your supporting infrastructure?
Depending on your FarmBot's supporting infrastructure, you will do different steps to attach your track plates. Below I outline two methods: attaching the track plates to a raised bed, and to extrusion-posts. Follow the right method for your infrastructure, then continue on to Step 2.
RAISED BED METHOD
Get your supplies ready: Track Plates, a drill, and wood screws.
Position your plates and screw them in.Space your plates appropriately
Remember, your track extrusions will need to be fastened to your plates, so space them out accordingly. Keep in mind that the end plates will not have a second extrusion attached to them, and plates in the middle need to be positioned precisely so that the two extrusions meet in the middle of the plate.
The track plates should be screwed onto the inside of the posts using the appropriate fasteners: 8mm M5 screws and tee nuts if the posts are aluminum extrusions, standard wood screws if attaching onto wood posts. The top of the posts should NOT be flush with the top of the plates. Rather, the top of the posts should come up to cover only half of the plates.
Step 2: Attach the Track Extrusions to the Track PlatesThe same from here on out
From here on out, assembly instructions apply to both raised bed and extrusion-post installations.
Lightly screw together an M5x8mm screw and tee nut to the track plate.
Slide the bottom half of a 20x40mm extrusion onto the teenut and lightly tighten the screw. Don't worry about alignment until you have a second extrusion in place to line it up with.Alignment is key
For Track Plates that join two extrusions together, position your extrusions tightly together at the middle of the plate. Make sure the top and bottom of your extrusions are flush so that the gantry can move across your tracks smoothly. Also make sure that your extrusions are straight, so there is no 'kink' in the tracks.
For track plates at the end of your tracks, use both screws and tee nuts to fasten your single extrusion to the plate.
Gantry Assembly2 hours
This is the estimated time it will take to assemble the Gantry.
Step 1: Assemble the Gantry Plates
Gather and lay out all of the parts. You will need:
- Two Gantry Plates
- Eight complete V-wheels
- Eight M5 x 30mm screws
- Eight M5 locknuts
- Eight washers
- Six normal 6mm spacers
- Two eccentric 6mm spacers
You will also need a 3mm hex driver and an 8mm wrench.Pro tip
It is best to lay out the gantry plates as a mirror image of each other and attach all of the wheels facing towards you to ensure you end up with both a left facing and a right facing gantry plate assembly!
Insert an eccentric spacer into the bottom, largest hole in one of the gantry plates.
Insert a screw through one of the complete V-wheels, and then through the eccentric spacer and plate.
On the other side of the gantry plate, add a washer to the screw and then an M5 locknut.
Use the 3mm hex driver and 8mm wrench to tighten the assembly.
Insert an M5 screw through a V-wheel, followed by a normal spacer. Then insert the screw through the gantry plate as shown below. The wheel should be on the same side of the plate as the first wheel you installed. On the other side of the plate, place a washer onto the screw and tighten the assembly with an M5 locknut.
Repeat these steps for the remaining two V-wheels, such that your gantry plate assembly looks like this:
Now, repeat the above steps for the second gantry plate assembly. You should end up with two gantry plate assemblies that are mirror images of each other, as shown below:
Step 2: Adjust the V-Wheel spacing
The eccentric spacer on the lone wheel of each Gantry Plate is used for making fine adjustments to the spacing between the lone wheel and the three other wheels. Adjusting this spacing is the key to having your Gantry move smoothly and wobble-free across your Tracks.
If the spacing is too little, then the Gantry will not fit onto the Tracks at all. If the spacing is too great, then the Gantry will be wobbly and loose. Let's adjust our eccentric spacing to be just right.
First, see if your gantry plate will easily slide onto the Tracks. It will very likely either be too loose and wobble, or too tight and not fit at all.Don't use force
If the wheel spacing is too small, your Gantry plate will not easily slide onto the Tracks. Do not force it on. Excessive force can cause a screw or plate to bend, introduce significant friction to the system, or cause a wheel to deform.
ADJUSTING THE ECCENTRIC SPACER
- Remove the gantry plate from the tracks
- Grab a 10mm wrench and slide it onto the eccentric spacer. Turn the spacer about 1/32 of a turn. Depending on the direction you turn the spacer, and the current orientation of the spacer, your spacing will either increase or decrease. Your goal is to adjust the spacer in the direction you need, so do some experimentation to find out which direction to turn it.
- Once you have adjusted the spacer 1/32 of a turn, do another fit test.
- Continue the steps above until your gantry plate glides smoothly and wobble free across your tracks.
The perfect fit is subjective and you'll need to play around to get it just right. Here is our best tip: Adjust your wheel spacing so that it is as large as possible without inducing wobbling or rattling. This will ensure you are not over tightening your wheels and risking damage.
You would rather have a wobbly wheel that you can tighten than damaged components.
Don't expect your Gantry to roll like a ball down a hill. A well fitted gantry will have a little bit of friction. Again, just play around with the spacing and use your best judgement.
Step 3: Attach the Gantry Columns
Use four M5x8mm screws and tee nuts to attach a 500mm long extrusion to each gantry plate. Make sure that the column is attached to the same side of the Gantry Plate as the V-wheels.Pro-tip
It is easiest to partially screw together all of the screws and tee nuts, slide in the extrusion, and then tighten all of the screws at once.
Now slide your gantry column and plate assemblies onto your tracks.
Step 4: Attach the Gantry Corner Brackets
Attach one corner bracket on top of each gantry column using two M5x8mm screws and tee nuts. Make sure the brackets are on the correct side of the extrusion.
Step 5: Attach the Main Beam to the Columns
With your gantry columns mounted on your tracks, use four M5x8mm screws and tee nuts to attach the gantry main beam to the gantry corner brackets. Note the location of the extrusion in relationship to the corner bracket and column.Don't torque your columns
Avoid applying force to the gantry columns in the direction perpendicular to the tracks as this applies a torque to the gantry plates, wheels, and tracks, which can cause damage.
Step 6: Attach the Gantry Motor and Driveshaft
Use four M3x10mm screws to attach the stepper motor and motor housing to the motor mount plate. Make sure to position the motor's wires and the motor housing's open side down.
Slide a GT2 pulley onto the motor and tighten it using the two M3 setscrews and a 1.5mm allen wrench.
Slide a 5mm to 5mm flex coupling onto the motor shaft and tighten it using the two M4 setscrews and a 3mm allen wrench.
Use two M5x8mm screws and teenuts to attach the motor plate assembly to the gantry column as shown.
Using two M5x8mm screws and tee nuts, attach the driveshaft bearing plate onto the outside face of the gantry column that does not have the motor on it.
Feed the driveshaft through the driveshaft bearing plate and insert it into the flex coupling.Keep it loose
At this time, do not tighten the flex coupling onto the driveshaft. We will tighten it in a later step.
Slide onto the free end of the driveshaft a 5mm lock collar, then a 5mm x 16mm x 5mm bearing, and then a GT2 pulley. Position the bearing inside the driveshaft bearing plate, and tighten the lock collar and GT2 pulley such they they hold the bearing in place inside the plate.
Step 7: Add Driveshaft and Cable Carrier Supports
Remember those five extra tee nuts you inserted into the gantry main beam prior to attaching it to the columns? Its time to use those, along with five M5x8mm screws, to attach our five Driveshaft and Cable Carrier Supports to the Gantry main beam.
Spread your supports equally along the Gantry while placing the driveshaft into its holding place within each support. Tighten down the supports.Line 'er up
You may need to raise or lower your stepper motor plate and/or driveshaft bearing plate in order to line up all the driveshaft supports. What you're looking for is a straight driveshaft that is parallel with the gantry main beam. it should not be bending in places or rubbing excessively on any of the supports.Squeaking?
You may notice some squeaking noises coming from the driveshaft rubbing on the supports. If you notice this squeaking and it annoys you, first try micro-adjusting any offending supports. They may be slightly misaligned and putting extra force onto the driveshaft. If the noise persists, add a small amount of outdoor grease to the driveshaft where it rests on the support. Bicycle chain grease works well.
Step 8: Feed and Secure the Belts
Feed GT2 timing belt down the center of your gantry column, ensuring the orientation is correct so that the belt teeth will engage the motor pulley properly.
Grab the end of the GT2 belt and feed it under the middle V-wheel of your gantry plate,then forward along the track extrusion, and then under the front V-wheel. The flat side of the belt should be in contact with your V-wheels.Avoid twists
When feeding your belt through the gantry column, there is a possibility it became twisted. Ensure that there are no twists in your belt.
Secure the end of your belt to the front end of your Tracks by using an M5x8mm screw and tee nut.Be gentle
You do not need to over-tighten the M5 screw. Doing so may result in damage to the belt and reduce the holding power of the screw.
Take the back half of the belt and feed it over the motor pulley, down the back of the extrusion, under the back V-wheel on the Gantry Plate, and back along the Track extrusions.
Secure the belt at the end of the Tracks. Put a small amount of tension on the belt as you tighten the M5 screw.
Repeat the above steps for the second belt on the other side of the Gantry.
Step 9: Equalize and Synchronize the Gantry
An equalized Gantry is one that is exactly perpendicular to the Tracks such that it is not crooked, and so that it is not being torqued. A crooked or torqued Gantry can cause creaking, extra wear on the v-wheels, and introduce a high amount of friction into the system. It also just looks bad.
To equalize the Gantry, move it along the Tracks gently and slowly about 12 inches or 30cm, pushing or pullingfrom the middle of the main beam. This process will remove any torque on the Gantry, and ensure it is not crooked. If you push or pull the Gantry from one of the gantry columns, or anywhere that is not the middle of the main beam, then you will torque the Gantry and make it crooked. Don't do that.
Now that the Gantry is equalized, we want to synchronize the movement of each side of the Gantry. This will ensure that when the motor spins, each side of the Gantry moves exactly in sync - meaning that the Gantry will not be torqued or become crooked.
Synchronize the Gantry by tightening the flex coupling onto the driveshaft (that thing we skipped back in Step 6). Now, a rotation of your motor should move both pulleys and therefore both sides of the Gantry exactly the same amount at the same time.Congrats!
You're now done building your FarmBot's Gantry. Go have a beer already.
Cross-Slide Assembly45 minutes
This is the estimated time it will take to assemble the Cross-Slide.
Step 1: Gather the Parts
Gather all the parts you will need for the Cross-Slide and lay them out in a logical manner. You will need:
- One Cross-Slide plate
- Six complete V-wheels
- Six M5x30mm screws
- Four M5x16mm screws
- Four normal 6mm spacers
- Two eccentric 6mm spacers
- Six washers
- Ten M5 locknuts
- One delrin leadscrew block
- One NEMA 17 Stepper Motor
- One 3D printed motor housing
- Four M3 x 10mm screws
- One 20 tooth GT2 pulley
- Two M3x5mm setcrews
- One 3D printed long cable carrier mounting bracket
Step 2: Attach the Delrin Leadscrew Block
Use two M5x16mm screws and two M5 locknuts to attach the delrin leadscrew block to the Cross-Slide plate.Plate orientation is key
Its pretty easy to orient your Cross-Slide Plate wrong and attach a bunch of components to it facing the wrong direction. Take your time to study the photos in this step to ensure you attach things on the correct side of the plate the first time.
Step 3: Attach the Stepper Motor
Use four M3x10mm screws to attach the stepper motor and motor housing to the Cross-Slide plate. Make sure the motor and housing are on the same side of the Cross-Slide Plate as the delrin leadscrew block, and that the motor's wiring and the motor housing's open side are facing down towards the delrin leadscrew block.
Step 4: Add on the Z-Axis V-Wheels
Using M5x30mm screws, attach two V-wheels with normal 6mm spacers to the corner holes of the Cross-Slide Plate. The V-wheels should be on the same side of the plate as the motor and the delrin leadscrew block. Secure these wheels with a washer and an M5 locknut on the other side of the plate.
Add a V-wheel with an eccentric 6mm spacer to the hole nearest the middle of the Cross-Slide plate. The V-wheel should be on the same side of the plate as the other components and secured with a washer and an M5 locknut on the other side.
Step 5: Add the Gantry V-Wheels
Flip the Cross-Slide over so that all of the components you have added so far are facing away from you.
Using M5x30mm screws, washers, and M5 locknuts, attach two V-wheels with normal 6mm spacers to the holes in the middle of the left and right edges of the Cross-Slide plate.Note: this picture does not show the other components attached yet. The other components should be facing away from you.
Add a V-wheel with an eccentric 6mm spacer to the hole in the middle of the bottom edge of the Cross-Slide plate, nearest the delrin block.
Step 6: Add the Cable Carrier Mounting Bracket
Use two M5x16mm screws and M5 locknuts to secure the 3D printed cable carrier mounting bracket to the Cross-Slide plate. The bracket should be on the opposite side of the plate as the motor. The bracket should be oriented such that the bracket part is below the mounting screws.Congrats!
You're now finished assembling the Cross-Slide.
This is the estimated time it will take to assemble the Z-Axis.
Step 1: Attach the Stepper Motor to the Z-Axis Motor Bracket
Partially screw two M5x8mm screws and tee nuts into the z-axis motor mounting bracket.
Route the Stepper Motor’s cable through the bracket.
Attach the motor to the bracket with four M3x8mm screws.
Electronics Assembly45 minutes
This is the estimated time it will take to setup the Electronics.
Step 1: Setup the Raspberry Pi
Follow the instructions on the Raspberry Pi Software page to install the necessary software onto the Raspberry Pi.
Step 2: Assemble the Arduino and RAMPS shieldMake sure nothing has power
Before assembling or modifying your electronics in any way, be sure that nothing has electrical power. Tampering with the electronics when powered can cause electrical damage to the components and subject you to electrical shock.
Align the RAMPS Shield on top of your Arduino Mega 2560. The green connectors of the RAMPS shield should be on top of the USB port of the Arduino. Carefully press the two boards together. Make sure that you do not bend any of the RAMPS pins.
Step 3: Add the Pololu Stepper Drivers
Pololu Stepper Drivers are the small boards that mount on top of the RAMPS shield and power the stepper motors. The RAMPS shield has space for up to five drivers, but we're only going to use three for FarmBot. We'll use the spaces marked for the X, Y, and Z directions.
Pololu drivers support micro-stepping which allows the stepper motors to be positioned in between steps. This provides smoother control of the stepper motors. To activate micro-stepping, add three jumper pins to each space on the RAMPS shield where a driver will rest, so nine jumper pins will be used altogether.
Now mount your three Pololu drivers on top of the RAMPS shield, being careful not to bend any pins. The tuning screw should be facing away from the green connectors of the RAMPS shield.
Step 4: Connect the Arduino to the Raspberry Pi
Use a short Type A male to Type B male USB cable to connect the Arduino to the Raspberry Pi. It does not matter which USB port you you use on the Pi. Shorter cables (3 to 12 inches) are preferable so that they do not take up a lot of space in your electronics housing.
Step 5: Add a Power Cord to your Power Supply
Attach a three pronged power cord to the power supply.
Do not plug in your power supply to the wall at this time.
Step 6: Attach the RAMPS Shield to the Power Supply
Use 2-16 stranded wire (two stranded wires of 16 gauge) to connect the power supply to the RAMPS Shield. One wire should connect the Ground output of the power supply to the negative or ground input on the RAMPS shield. The other wire should connect the +12V output of the power supply to the positive input on the RAMPS shield.
Step 6: Attach the DC/DC converter from the RAMPS Shield to the Pi
Note: This is optional: You can use a standard 5V micro USB cable and power supply to power your Raspberry Pi.
Step 7: Plug in the Stepper Motors
The FarmBot Web App
The Farmbot Web App is a cloud based web service that performs the following functions:
- Storage of device info and calibration settings
- Real time manual control of a FarmBot from a web browser via Meshblu
- Creation of sequences of events
- Scheduling of recurring sequences of events (irrigation, seeding, etc...)
- Coming soon: creation of regimens (plant-age-based scheduling of sequences of events)
- Coming soon: drag and drop interface for farm/garden design
- Coming soon: crop and sensor data storage and management
You can host the web application yourself on your own servers, or use the My FarmBot service. Below, we talk about how to do both.
Create an account on my.farmbot.cc
- Go to my.farmbot.cc
- Click 'Register'
- Enter a username, email, and password. Click 'Register'
- Check your email and follow the link to confirm your account (coming soon)
- Once you are logged into the application, you will be prompted to enter in device credentials. You can do this from the 'Devices' page.
- Enter the name, UUID, and security token for your FarmBot and click 'Add FarmBot'. You can get the UUID and security token from the terminal screen when farmbot.rb first starts up.
- You may need to refresh the web application for the settings to take effect
Now you can begin creating sequences and scheduling them to run whenever you want. Just press the synchronize button to update your FarmBot!
Provisioning the FarmBot Web App (advanced)For advanced users only
This step is intended for expert users and software developers who wish to run the FarmBot Web App on their own servers. Nontechnical users are encouraged to use the My Farmbot Service.
Please see the official README for the web app source code here: https://github.com/FarmBot/farmbot-web-app/blob/master/README.md