Automatic Farming Robot (BRUFACE Mechatronics 1 2025)
by Feodor_Tsabrov_VUB in Circuits > Robots
53 Views, 0 Favorites, 0 Comments
Automatic Farming Robot (BRUFACE Mechatronics 1 2025)
Urban and domestic gardening requires repetitive and physically demanding tasks such as planting and watering, which can become time-consuming, or inaccessible for many users. The Farmbot project proposes the design and development of a small-scale, low-cost, and automated gardening robot capable of planting seeds and watering plants.
Designed as an open-source and modular platform, FarmBot targets home gardeners and greenhouse operators providing an accessible gardening solution. The system operates along three axes (X, Y, Z). The rigid feet of the gantry frame hold up the XY plane at a modulable height to be suited for any plant type, enabling positioning without interference even when crops are fully grown. It autonomously executes planting and irrigation tasks while ensuring user safety, low maintenance, and resistance to outdoor environmental conditions.
This project was created for the Mechatronics 1 course for the BRUFACE program of the VUB/ULB.
Supplies
Based on the prototype Bill of materials.pdf (Tab 1), let say that one Farmbot needs about 200g of 3D printing with the choice material, so about 20€ to produce based on (Fig 3D PROCESS).
Regarding (Fig Aluminum cutting) for 100 Farmbots, less than 1000€ is needed to have the wanted aluminum frames.
Based on (Fig PCB), let’s say that to produce 100 PCB, the budget is about 1500€.
For the assembly of the Farmbot, this is done by the user and made easier by the explanations. It allows the manufacturing cost to be lowered. So, the group “has a benefit” on this part.
By exploiting the prices of the components and manufacture, the group can compute the price for:
Big production, 100 FarmBots:
- Components pricing: ~1500€ Bill of materials.pdf (Tab 1) (Tab 2),
- 3D printing 200g * 100: 20€ * 100 = ~2000€ (Fig 3D PROCESS)
- Electronic production: ~1500€ (Fig PCB)
- Aluminum cutting: ~1000€ (Fig Aluminum cutting)
- Assembly: done by the user
Total price (with marge) for 100 FarmBots: ~20 000€
Total price (with marge) for 1“FarmBot: ~200€
Celling price choice: 400-500€.
In conclusion, a suggested selling price of 400€ allows for a healthy profit margin while significantly undercutting existing market competitors, making it accessible for the education and hobbyist markets identified in the personna identification. As reference the closest competitor’s price is arround 4000€.
Downloads
Table of Contents
Introduction: Abstract
Supplies: Bill of Materials
Step 1: Table of Contents
Step 2: Project Motivation
Step 3: Project Requirements
Step 4: Conceptual Design
Step 5: Embodiment Design
Step 6: Design of Sub-Systems
Step 7: Integration Guide
Step 8: Project Demo
Step 9: Reflection
Step 10: Sustainability
Step 11: Meet the Team
Step 12: Project Repository
Step 13: Appendices
Project Motivation
Motivation
There are different motivations behind gardening, that range from the basic need to survive to environmental awareness or hobby. Additionally, producing greens and vegetables locally is a promising solution for the ever-growing need for healthy food production. However, despite its benefits, home gardening remains physically demanding and time-consuming, especially due to repetitive tasks such as watering plants regularly, digging and planting seeds which can be physically impossible for certain individuals. This, in addition to lack of experience and knowledge, are some of the reasons why people reduce or abandon gardening activities [ref 5].
Furthermore, the greenhouse industry, traditionally reliant on manual labor and basic mechanical systems to function, has recently been evolving with automative technologies, used to perform repetitive or strenuous tasks that would otherwise require human effort. Specifically seeding, where automatic seeders are used to precisely place seeds into trays or soil beds at optimal spacing. Watering can also be automated to give sufficient water to plants, especially useful when conditions need to be meticulously controlled [ref 4].
While some professional agricultural machines exist to help farmers, they are expensive, oversized, and unsuitable for small scale production like in domestic gardens or small research-focused greenhouses. That is where the FarmBot comes in, proposing a solution for all those wanting to automate gardening on a budget.
Persona Definition
Main Persona – Home Gardener
The gardener that struggles with physical effort and the lack of time to garden. They have a limited budget and need a safe, low maintenance and easy to use device.
Values reliability over high performance. They are also the main users, but other members of the household can also use the device.
Secondary Persona – Small Greenhouse Operator (Botanists / Researchers)
Use the system for controlled and repeatable planting. Prioritizes precision, consistency and good productivity. Operates in controlled and protected environments. The users aren’t necessarily the buyers, but rather the operators.
Project Requirements
Working modes/Functionalities
The goal of the FarmBot project is to design an automative device capable of performing autonomous planting and watering tasks within a predefined area of a small garden plot. It must be able to follow given planting or watering instructions, be adapted for different types of plants and seeds typically used for gardening. It must be able to dig and transport seeds precisely. It must be able to distribute water. It operates in humid, dirty and heavily exposed to light environments. It thus has to be resilient to all of the above. The Farmbot should be able to monitor plant growth and determine minimal clearance when plants grow. It must safely work in the presence of humans, possibly pets, or other animals that could interfere. There are also Eco-Design considerations that must be taken into account, such as modular design to allow repair instead of replacement, low power consumption to minimize environmental impact, recyclable materials and accessibility of the hardware, so prioritizing the use of opensource hardware.
The prototype doesn’t include the performing of soil analysis or providing additional plant care such as weeding or fertilizing. These features could be added later should the concept be pursued.
Constraints and Justification
To allow this prototype the ability to function at the sizes and environments envisioned, a set of requirements were considered and assembled. All were used as the basis of the design of the prototype, and the most critical were tested for satisfaction.
The system must meet a set of constraints to be translated into the functional objectives that guide design choices and allow validation of the final solution.
There are four main constraints that are of highest priority (F0) to fulfill the requirements. First, there is the structural strength requirement. The system must be sturdy enough to withstand the forces applied during operation. The most important structural elements are the frame and planting tool arm.
Secondly, the FarmBot must reliably handle all typical sizes of seeds, with a minimum seed size of 1 mm (for herbs and flowers for example) and can go up to 10mm (for pumpkin seeds for example).
Thirdly, because it works in humidity and dirt, the system needs to be resistant to those elements. The IP scale is a measure of that constraint, and it was determined that it should be at least IP23, meaning it needs to be water and dust resistant to big direct splashes. Finally, safe cohabitation with people and animals imposes a maximum stopping force of 100 N.
The rest of the important constraints (F1) mainly refine usability, performance, and sustainability. The FarmBot targets a working area of around 1m² as proof of concept, but at its core it is made to be easily scalable. The same idea goes for plant clearance as it should go up to 1 m height, but the tolerance on those dimensions stay quite loose due to modularity.
Planting efficiency must remain acceptable, but since it can run autonomously it doesn't have to be particularly fast, so a maximum speed of 100 mm/s is more than sufficient. X/Y precision must be ±5 mm so that a seed can accurately be put in the hole that was dug. Irrigation is quantified by a water delivery rate of 0.5 L/min (with a +0.5/−0 tolerance), ensuring predictable watering without oversupply.
Outdoor durability is captured by UV resistance on the ISO 4892-3 scale. Eco-design goals are met by establishing a repair time smaller than 30 min and low maintenance frequency, encouraging modular subassemblies and accessible fasteners. Affordability is also a constraint fixed to be around €500 ± 400. Energy consumption should be limited to up to 250 Wh/day ± 50, efficient actuators and power management should be used to have minimal energy consumption. More requirements are defined in the following table as well as the previously stated constraints.
In summary, the FarmBot solves the problem of automating planting and watering in a small garden while remaining safe and reliable outdoors. This requires good mechanical reliability (structural stiffness, limited deflection), different seed size handling, environmental resilience (UV, water and dirt), and safety guarantees. Additional constraints on size, motion speed/precision, water flow, lifetime, repair time, cost, and energy consumption ensure the solution is practical, maintainable, and eco-designed for real gardening use.
Conceptual Design
To start the design process, the essential problems to be solved were considered. On an abstract level, an automatic farming robot must fulfill the following requirements:
- Must be able to plant various sizes of seeds
- Must deposit different amounts of water
- Must fit different sized farm plots
- Must fit different sizes of plants
- Must be safe to interfere with (i.e. safe for humans and animals)
- Must operate without significant intervention
An additional requirement of weed removal was considered, but deemed out of scope for this project.
From these problems, we derived a list of features to consider. These derived features helped narrow down the design choices leading to an optimal product:
- Seed Picker Mechanism
- Water Distribution Mechanism
- Hole Digging Mechanism
- Mobility in 3 Axes
- Low Stopping Force
- Water Resistance
- Dust Resistance
Different concepts were entertained for each feature, as shown on the morphological chart [fig 1]
Let us consider the potential solutions for each problem:
The seed picker had the most variety in features, mainly divided between a mechanical “tongs” pickup or via a vacuum system. The mechanical means require some sort of seed detection and potentially heavy actuators and moving parts on the head, while a commercially available vacuum pump or a custom designed motorized syringe only require a vacuum hose to be brought to the head. A bellow on the head could potentially remove the need for electronic components, but adds weight and complexity.
Water distribution was a choice between a more commonly used garden hose connection or an easy to demonstrate water pump. As the examination room cannot accommodate a garden hose, the hose connection means was eliminated.
In order to dig holes, we considered either a passively actuated spade, dragged by the motion mechanism, a passive downward spike that uses weight and motor strength to punch a hole in the earth, or an electrically actuated drill.
Most importantly, for positioning, the choice fell between an easily expandable 2-3 DOF arm on an expandable rail, a simple static frame for XY motion, or a whole moving Y axis “gate” that would go over plants. While the arm handles Z motion with its actuators, the other two positioning means require either a bulky yet precise leadscrew Z drive, or a rugged, stiff rack and pinion drive.
Regarding safety, either an inherently safe minimal dynamic motor torque or a current feedback enabled motor driver could result in the desired level of safety. Though, due to the limitation of available motor drivers, current feedback was later eliminated as an option.
As the IP rating could only be practically achieved by sealing away electrical components, there is only one possible means.
Finally, from these, three concepts emerged:
Concept 1 [fig 2] uses a rigid frame on extendable legs, using a vacuum pump and external seed tank to minimize the weight of the tool. For simplicity, all tools are integrated into the tool head, and a dust and corrosion resistant rack and pinion drive is used to translate across the whole length of the garden. Belts are used to position the head as needed, and the frame stands by itself.
Concept 2 [fig 3] uses rigid screws as structural elements and the same design of head as Concept 1. The vertical legs are attached to the garden box to keep the assembly straight. The lead screw drive offers higher torque in the XY plane, but is more prone to contamination.
Concept 3 [fig 4] adopts the belt drive frame but opts for an ultra-light tool changer mechanism to minimize inertia. A docking station is added, requiring higher precision positioning.
As determined by the weighted point table [fig 5], Concept 1 shows the most promise where it matters. The belt drive offers the most flexibility with sourcing materials, while the lower requirements from avoiding a tool changer allow for a more accessible, robust product. The lead screw approach shows a limitation with safety, scalability, and dust/ water resistance. Therefore, Concept 1 is chosen as the direction of the prototype.
Embodiment Design
Having chosen the final concept to be developed, the details of its implementation can be discussed. Design-wise, we can best split the design into four subsystems [fig 1]:
- Gantry X/Y
- Gantry Z
- Farming Tools
- Electronics
Each subsystem was designed individually. The Gantry X/Y and Z were designed in SolidWorks, and the Farming Tools were designed in Fusion 360.
Gantry X/Y
The Gantry X/Y [fig 2, 3] is mainly comprised of straight framing elements, rubber T2.5 belts actuated by stepper motors, and sliding carriages. A cable carrier bundles hoses and wires into a neat channel, reducing strain and avoiding pinch points. It was designed to use a common 20mm T-slot extrusion and included supporting legs. As previously mentioned, the scale of the prototype was limited to a 50cm cube. As a frame for linear motion components, it is important that it be as rigid and light as possible while remaining affordable as possible. As the length and cross-sectional area are defined, the relevant performance index derived by the deflection and mass equations indicates that we must maximize the square root of stiffness divided by density, while still satisfying the minimum stiffness limit [fig 4].
The Ashby plot [fig 5] reveals that although steel and zinc also meet the stiffness requirement, it performs poorly in terms of the performance index compared with aluminum. Therefore, the optimal choices in this regard are aluminum and magnesium. Magnesium is light, but not stiff enough, confirming the initial selection of aluminum T slot. This also satisfies the requirements of heat, UV, and moisture resistance. However, UV resistant plastic like polycarbonate could be used for electronics enclosures.
For moving plates and mounting plates, the free variable is the thickness. We can use the equations in [fig 6] for stiffness, moment of inertia and mass to derive an Ashby plot performance index [fig 7].
It is good to note that other plastic types are very good candidates but lack UV radiation resistance, which is problematic for constant exposure to daylight. Epoxy based solutions offer good results but are much more expensive materials and require more advanced machining for manufacturing. Though laser cut MDF was used for the prototype’s carriages and motor mounting plates, ideally aluminum plates should be used. At the low quantities required for this project, traditional machining is most economical. Thankfully, assembling T-slot hardware with screws is trivial, and can be done with minimal experience.
Gantry Z
The Gantry Z [fig 8] consists of a gearbox that mounts to a carriage, carries a stepper motor, and actuates a vertical rack. It also mounts a cable carrier, routing hoses down to the tool at the bottom end of the rack. As the gearbox and rack must remain rigid while under load, and survive similar conditions as the X/Y frame, aluminum is also an excellent material. Just like the X/Y Gantry, polycarbonate may be used to waterproof the motor and ultrasound sensor attached to the Z axis gearbox. For prototyping, 3D printed PLA was sufficient for the gearbox, and the rack could only practically be manufactured from laser cut MDF. The gearbox was designed with traditional machining in mind, and due to the size and shape of the rack, machining from a solid bar of aluminum is the best option. The Z axis is also designed to be assembled, tensioned, and repaired with screws alone [fig 9].
Tools
The farming tools [fig 8] are composed of a plate that mounts a digging spike, a shower head, and a vacuum seed picker below the end of the Z rack. High stiffness is not required for the plate, as forces are transferred directly into the rack when digging. Still, environmental resilience is still required, making machined polycarbonate an acceptable choice, next to machined aluminum. This was similar to the finding for the shower head and vacuum picker components. The digging spike, however, benefits from high smoothness and stiffness, making machined aluminum an excellent choice. Machine screws are used to secure the whole assembly together, and a silicone o-ring is used to contain leaks. In prototyping, 3D printed PLA was used, though this is not a good long term solution.
Electronics
The electronics sub-system consists of entirely off-the-shelf parts and therefore does not require any custom hardware except for an enclosure. Commercially available polycarbonate enclosures may be used, as long as they are fully sealed. A machined aluminum electronics plate for mounting and grounding components may be used, though this was omitted in the prototype, which used exclusively laser cut MDF for a cosmetic enclosure. Components were glued for the prototype, but ideally screws would be used to secure and ground all electronics.
Design of Subsystems
Mechanical Systems
As the mechanical assemblies combined [ref 1] are too large and diverse to be reviewed together, they will be reviewed individually.
Gantry X/Y
Requirements
The X/Y Gantry [fig 2] performs the critical task of positioning the toolhead wherever it is required. The core requirements, as established earlier, are to position the toolhead within 5mm accuracy at any size configuration. Additionally, the design must allow for a low stopping force, to avoid risk of injury. Like all other sub-systems, it must be built to last and easily repairable should a component wear or break.
Conceptual Design
Initially, several conceptual designs were considered for this sub-system: a belt-drive for both axes, a lead screw-drive for both axes, and a hybrid design using both. Ultimately, the screw-drive was found to be too difficult to scale in length, too expensive, and too high-torque to be inherently safe. Belt drive offers a lightweight solution that is more back drivable and easier to scale to different sizes.
Embodiment Design
Ultimately, a modular design was chosen for the XY gantry. Aluminum T-slot extrusion was used for all structural elements and linear positioning rails. Laser cut MDF was used for motor mounts, idler pulley mounts, and Y axis carriage plates. 3D printed idler pulleys were used for cost savings, though the design is compatible with off-the-shelf V rollers. The Y axis carriage was 3D printed and integrated into the Z axis.
Final CAD Design
The gantry primarily consists of 3 linear belt assemblies [fig 3, 4, 5] and 2 linear carriages [fig 6].
Testing
The digging tip worked successfully while tested in action. Watering system worked fine and the seed system was evaluated using paper balls of up to 10mm. The angle of the cable guide attachment was changed after seeing that it was creating an angle that was creating a moment on the z-axis.
Z Axis
Requirements
As the mechanism carrying the farming tools, the Z axis [fig 7] has the critical requirements of rigidity and positioning accuracy. As the mechanism is designed for a 1.5m tall plant, it must be rigid enough to maintain a planting precision despite the long drop from the XY gantry.
Conceptual Design
Two main concepts were considered for the Z axis: the lead screw and the rack and pinion drive. The lead screw, while superior in positioning accuracy, is sensitive to dirt and contamination, more expensive to implement, and requires the mechanism to be as tall as it needs to reach down, therefore requiring a 3m tall device to reach 1.5m down. By this reasoning, the simpler, more rugged rack and pinion drive is better suited for the requirements.
Embodiment Design
For this prototype, the full length of the rack is not required, as budgetary constraints limit the size of the full mechanism. Therefore, a 50cm rack was assembled from glued layers of laser-cut MDF. Registration/ positioning pins were used to align the rack’s teeth. A single 3D printed step-down gearbox is used to attach the motor, restrain the rack, and attach to the integrated Y carriage. Sealed roller bearings are used to tension the rack into position against the pinion using mounting screws. The Y carriage implements a sturdy, adjustable tensioning mechanism and belt adjustment mechanism, as well as a convenient mounting location for strain relieving cable carriers. Despite the compact nature of the design, the sub-system is easily serviceable. All components are easily able to be removed and replaced within only 5 operations.
Final CAD Design
The Z axis is composed of one main assembly [fig 8].
Testing
Testing was performed by rapid assembly and disassembly of the mechanism, and actuation of the motors, sensors, and switches. The repairability targets were met, and the positioning of the Z axis was successful in the downward direction. Electronics hardware limitations prevented unassisted raising of the Z axis, making the sub-assembly partially successful.
Tool
Requirements
The tool head [fig 9] must be able to perform the three main functions of the Farmbot: digging, watering and plating seeds. The seed size covered in the requirements list goes from 1mm to 10mm. Watering is considered as sufficient as of 0.5L/minute.
The digging depth is not specified. It is also important that the tool head has an attachment system to be fastened to the Z-axis rack. Additionally, repairability and overall UV/corrosion resistance is important to respect the requirements of the overall system of lifespan and robustness.
Conceptual Design
Multiple concepts were developed to fulfill these requirements. For the digging process, it was first considered to use a shovel-like end tip that would be dragged through the dirt creating a small trench in which the seeds could be delivered. However, that design choice didn’t pair well with the height of the system that was considered since the 1.5m would create too much moment at its fixation point to be feasible. A second approach was then considered where the tooltip would now be a point inserted vertically into the soil to create a small seeding hole. This method transfers forces vertically onto the system which is sturdy enough to withstand them. The whole is small enough that corrosion due to the water delivery is enough to cover back the seed.
The design of the water dispensing system is also the product of multiple iterations. Initially a simple tube was considered as the water delivery system for its simplicity, but that was put aside due to the small concentration of watered area that also means to much pressure that could destabilize small plants and move the seed. To solve that problem a wider dispensing system was designed by adding a plate with wholes to spread water in a broader area, while still staying precise and controlled. To maintain the dispensing system in case of plugs or malfunctions the watering system was designed to be held by screws and sealed with an O-ring to be disassembled quickly and easily.
The seed picker system had to main design branches. Dispensing the seed from a container that would be attached to the tool and move with the gantry or having a fixed seed container from which the Farmbot would have to pick from. As the first option was not easily adaptable to multiple seed sizes as required and the extra weight would also be of nuisance, the second option was chosen because it didn’t have those flaws. To pick the seeds from the fixed dispenser either it could be done using a claw-like system to hold the seed or a suction device could be used. The second option was chosen since it requires lower levels of precision to pick a seed. However, it comes with the drawback of picking multiple seeds when the seed size is small.
Embodiment Design
In practice the tool-head is assembled from 3D-printed parts that held together either with screws (digging tip and watering system) or with press-fit (seed picker). All the parts are assembled independently for ease of access and reparability. Multiple digging tips were made for different whole sizes and can be easily changed. The cable guide attachment was added to limit cables fatigue and interference with the rest of the system. A net was added to the suction tube to prevent the seeds from going into the air pipe and held with a zip tie.
Final CAD Design
The final design is assembled with screws, and an exploded view is created for assembly instructions [fig 9]
Testing
The digging tip worked successfully while tested in action. Watering system worked fine and the seed system was evaluated using paper balls of up to 10mm. The angle of the cable guide attachment was changed after seeing that it was creating an angle that was creating a moment on the z-axis.
Circuitry & Sensors
Requirements
The idea is to have a functional circuit coherent with the aim of the FarmBot and to do so, clear wiring is essential.
All the wiring needs to be protected from dust/interactions/water in a closed and fixed box. The goal is to pack everything in a box and have precise holes for the power supply, and so that only the supply will have to be added by the persona, no wiring knowledge must be known.
Design process and considerations of components
Drivers and Steppers: Driver A4988 handles between 8 and 35V, which allows VMOT pins to be connected to 12V with a capacity of 470 μF (smooth out voltage spikes from the motor), VDD pins are connected to Arduino’s 5V. Steppers Nema17 work with current and their nominal current is between 1.2 and 2A. The pair of the Nema17 are connected to the A4988 drivers, this is why to control the stepper’s current, it is required to control the current limit potentiometer of the driver. By turning this potentiometer, the goal is to reach the value of tension that gives the stepper the value of I_limit = 1.5A. This current limit is chosen to be close to the limit of 2A without risking passing the current limit of the Nema17 and damaging the motor. Also chosen to not risk too much overheating the driver due to the multiples long time tries of the group during the labs knowing that the continuous current that A4988 can dissipate is 1A, such that over that current heatsink is mandatory [ref 7]).
Based on the equation: Vref = I_limit × 8 × R_s where Vref is potentiometer value, and R_s is given by “R100” printed on the resistors of the driver: 0.1ohm, Vref should be read as 1.2V on the multimeter [ref1].
Arduino: Main character of the scene since it allows the commands from the computer to be exploited in the dedicated connected hardware. Pin pumps, the stepper pins, the limit switches, sensors and drivers’ pins are connected to it. Arduino is consuming 5V from the computer’s 5V USB port.
Limit switches: Important part of the process since they have external actuators. Indeed, the exact positioning can’t be done by using steppers because unlike servos, they don’t get a position to go to by using the degree of rotation. They are only controlled by steps. In this project case, due to some delays used in coding and some mechanical losses (friction etc.), the return position after a certain time was not always the exact same. This is where the limit switches are showing their importance. The wiring is a base on/off principle where their GND pin is connected to Arduino’s GND and other one to digital Arduino’s pins. The group decided to use the com and NO (not open) pins which is triggered only once pressed. In fact, NC (not close) is more secure because it detects the wiring failures or switch malfunctions (for example a broken wire or a disconnection of switches), so it does force the system to stop instead of assuming the switch is simply unpressed like for NO. But, let’s note that the group tried to use NC first, but the principle didn’t work and was causing problems to the hole system, by precaution the group choose to use NO, as the context of use of the switches is verry simple in this project and matches the project will (stop when pressed) [ref 8].
Pumps: Two pumps are used, one with air allowing to lift and drop the seeds, and another allowing to water the plants. They are connected each to a relay such that the high/low function can be defined (on/off). The positive (red) wire of the pumps goes to NO pin of relay and the ground (black) one goes to its com. In fact, the group had to choices, either the NO or the NC. Just by ease group chose NO as a first try, which means that by default the pumps are off. After doing the code logic, it could also have been an option to use the NC pin for the pump as it is wanted to be activated at the beginning of the robot process. However this is an after done point of view, the wiring is done using NO for both pumps [ref 9].
The relay’s VCC is connected to the 5V of Arduino and GND to Arduino’s GND. It has other pins which are connected to Arduino’s digital pins.
The physical hoses that connect the pumps to the head of the robot are passing through dedicated holes of the box.
Distance Sensor (HC-SR04): HC-SR04 ultrasonic sensor is used to measure the distance between the robot’s head and the growing plants. The sensor is capable of detecting plants up to 5m which suits the requirements. It works by sending a sound pulse, measures the time it takes to bounce back, then Arduino converts that into distance. The sensor’s VCC and GND are connected to 5V and GND of Arduino, while Trig and Echo pins to digital Arduino’s pins. The sensor have been working but the group isn’t able to implement it as wanted to the robot since it detects the head itself instead of the soil. Unfortunately, as the ultrasonic sensor and z_axis (and so the head) has been implemented late, no changes would have been made.
Power management: As every stepper Nema17 does consume (theoretically) ~1.5A and as the power supply provide a limit of 5A, it has been experimented that having 3 drivers/stepper powered by the same power supply is not sufficient since the total current is too close to the allowed limit. In fact, before testing, the group didn’t consider this ‘close limit’ and was wondering why the circuit always came to stop working at some point. After figuring that out, the group added a second power supply, the total power can be computed [fig 11].
The theoretical power needed is ~105W, but in real life testing, Nema17 do not draw more than 1 or 1.2A, which allows the real total power to be near ~80W. Knowing that, the group indeed was able to power the prototype using one universal adaptor limiting 3.5A and one 2e 12V power supply limiting 5A without problem as 12*3.5 + 12*5 = 102W. So having 2 (to follow the wiring logic) universal 220/12V adaptors limiting 5A each is sufficient.
Final Circuit Diagram
For more clarity of the previous section (2.8), [fig 12] is a detailed cabling view of the prototype, which is also the one for the real plant since the cabling is done regardless of the use or unuse of components.
Testing if applicable
Process to achieve the desired movements of FarmBot: All these components weren’t put on all at once. It would have been a nightmare trying to figure out from where the potential problems come from. In fact, the first step is to make the 2 motors of x_axis function at the same time. Which means that they need to begin and stop at the same moment. Let’s neglect the mechanical problems for now. The easy way to make 2 steppers totally synchronized is to assign them the same directions and steps. By using 2 drives connected to the same pins of the Arduino, the control is going to be done in the same direction of the same number of steps.
Let’s now consider mechanical friction. The system is not perfectly symmetric at any time plus knowing that the system has friction between wheels and bars, it is preferable to prevent an potential desynchronization by using properly the limit switches. Putting one limit switch and using the 2 x_motors with the same dir and step is enough but not certain due to potential mechanical misalignments. The solution is to add a second x limit switch and consider that the homing position is going the done if and only if the two x actuators state change. All this allows mechanical and electronic synchronization.
For the y axis, as there is only one bar, no electronic synchronization is needed, but a limit switch is required. On the z axis the bar couldn’t go all the way up, the z_limit switch is not used, but it would have been used with the same principle.
The power management is successfully done regarding the section (2.8) using 1 universal 220/12V adaptors limiting 3.5A and a power supply of 12V limited to 5A.
Provide exact components
4 42A02C Nema 17 Stepper Motors
4 driver Stepper A4988
Dewin JYA-03154 Vacuum Pump
RUNCCI-YUN R1206 Water Pump
2 channels relay
4 Microswitches
1 HC-SR04 Ultrasonic Sensor
2 220/12V universal adaptor 5A max
Software
Requirements
The software part has to match the visually wanted requirements of section 6, such as seed gripping, x and y correct positioning, soil planting, seed dropping, and watering.
Design process and considerations of components
Here the group presents all the code with the functionalities that are used: annex code A and the complete one that was wanted to be used: annex code B.
The initialization:
- Homing of x_plateform and y_plateform and z_plateform to their respective limit switch(es)
- Doing a little step back
- Water pump deactivated and air pump activated
Positioning and planting loop:
While keeping the seed is catches by vacuuming
For each (x, y, z) target:
- Catching the seed by z going down to z_catch_seed on this (x,y) homing step position using vacuum pump
- Activating the vacuum pump
- Z going to z_a_bit_up
- Plant the soil by putting z to the soil level with z_soil
- Z going to z_a_bit_up
- Adjust position for dropping the seed in the planted soil place (offset over y position)
- Deactivation of vacuum pump
- Adjust position for watering the seed (offset over y position)
- Activate the water pump
- Deactivate the water pump
- Go back to homing position
Repeat after 8 second delay
Code flow diagram
Let’s use the previous point as a guideline for the code flow diagram [fig 13, 14].
Testing if applicable
The applicability of code is tested subsequently. The first task was to successfully limit the current in the motors by using the potentiometers of the drivers as explained. Then, by mounting 1 x-axis, it was the first tested without limit switch, then the two x axes were tested. The test consists in having a smooth movement and going to a point then coming back to its initial position. By doing so the group saw the importance of having a homing position since the motor did not go in place after every stopping point. After that, the group tested one x limit switch and added the second one according to the previous section explanation. The same logic has been applied to the y movements. Separately, the group already tested the water and air pump with the 12V source. Once everything was tested, the x and y platforms were moving according to the target points and homing position. The use of the air pump begins from the moment the x, y homing stops until the moment the x, y target position is hit. The integration of the water pump is done after reaching the target position. Unlikely due to mechanical problems, the sensor, although tested, was not used in the final version of the robot prototype as said in the previous section, since it detects the head itself. The limit switch in z follows the same logic as the one of x and y but due to the non-ability of the z axis to move all by itself, it is not efficiently included in the prototype.
In conclusion, the homing of x and y, the two pumps, the seed keeping and dropping do all work as wanted.
Provide code
Code A (Appendix II): Used code doing x, y movements + homing, seed picking, dropping and watering, back to home position.
Code B (Appendix III): Code matching all the requirements x, y, z movements + homing, seed picking, soil digging, seed dropping and watering, back to home position.
Integration Guide
For the final product, the user has to know that the goal is to make mounting easy. For that, as already said, the hardware box has just to be fixed and plugged into the supply. In the real version, the supply adaptors are given.
Every part is put into separated cartoon sheets with the names wrote on it. The different sheets are namely: x, y, z, drag chains, feet, motors x, motor y, motor z, plateform x, plateform y, plateform z, tubes.
Begin by fixing the two x_motors at the extremity of each x_bars by mounting them on their x_plateforms using x_packet screws and nuts. Be sure to let 1- or 2-mm distance between the bar extremity and the pulley of the x_motors. Continu to build the xy gantry frame, using the two parallel y_axis that serve to link the two x_axis (use gantry_package). The two x_bars are placed in a way such that the two x_motor’s pulleys are facing each other. Then with the same package, add the 4 legs of the gantry.
After that, begin the mounting of the y_motor by fixing it to one of the x_plateform. The y_motor’s pulley is facing one of the x_plateforms.
Mount the head on the z_bar then mount the z_bar on its platform on the y_bar.
Put the first drag chain of the z_axis, then the one on the y_axis in the direction where the y_motor is, and finally the one on the x_axis but attached to the extremity where there is no x_motor.
Put the blue vacuum tube on the left side of the head. Then the transparent tube in the middle of the head for the water. Pass these two tubes in the x y z drag chains.
Project Demo
Reflection
What could have been done differently:
The scheduling of work was poorly organized and resulted in delays. The group spent too much time planning the design and working on presentations in the first half of the project period, when tentative early prototyping work could be started, and earlier sourcing could have been done. There were also communication issues, where what was and wasn’t completed, tested, or delayed was not always communicated when it should have been. Generally, too much work was done too close to deadlines, and too much time was spent trying to re-invent what was already invented.
Time constraints:
Since the Z axis electronics were tested later than expected, there was insufficient time to address the problems that were discovered. We had assumed the torque requirement of the Z axis to be lower than it actually was, meaning that a gear reduction should have been integrated into the drive. Re-cutting the rack to reduce imperfections in tooth alignment could have also improved performance. Given more time, more sophisticated programs could be written as well, such as storing the locations and needs of certain plants to make care protocols with. The team also initially wanted to implement more features, detailed in the following section.
Resource constraints:
Weeding is a critical step of gardening that the farmbot currently cannot fulfill. A vision recognition system, while too expensive and time consuming to implement, would be an ideal way to address the challenge. A similar system could be implemented to identify insect infestations and disease. A more independent power supply and a more standard water source. Perhaps with a nutrient tank, could have been implemented if it was financially feasible or possible to demonstrate.
Sustainability
Materials:
The materials used to assemble the prototype are not only easily reusable, but recyclable as well. Aluminium T-slot does have a significant environmental impact to produce, but it is widely considered to be highly recyclable. It should also be noted that using T-slot allows re-use for other projects without an energy cost for recycling.
Polycarbonate has a comparatively higher environmental impact, requiring harmful chemicals for its production and showing comparatively poorer recyclability [ref 6]. Therefore it is used only where strictly necessary to reduce weight
Repairability:
The design uses a minimal amount of proprietary parts, and many structural components are shared, limiting the needed quantity of service parts. The assembly is done entirely with screws, and no one-way snap-fit or glued connections are used, with the exception of the Z rack being a single laminated component present only in the prototype, not the final design. Therefore, replacing any component is possible. The overall product was designed to avoid difficult to reach assembly hotspots, using little hierarchical “stacked” design, and more focusing on trimming and clumping to reduce disassembly operations.
Meet the Team
Feodor: An international student from the USA, Feodor graduated from Rutgers University in 2020 with a bachelor’s degree in mechanical engineering. He is passionate about user friendly design and industrial use of 3D printing in prototyping and production. He worked primarily on the Z axis, integration, and project management. Assisted with creating wiring harnesses, PCB soldering, and upheld GMP.
Cyril: First year Mechatronics and Robotics Master student at ULB/VUB. He is interested in both mechanics and circuits, with a particular focus on design and aesthetics. He was mainly responsible for the conception of the Tool Head, which he continuously improved through several iterations to meet emerging project constraints. He also contributed to the PCB design, allowing a significant reduction in wiring while ensuring reliable integration within a short time frame.
Junior: Mechatronics Master student. He comes from Cameroon and is passionate by electronics and everything related to embedded circuits. He contributed to the testing, coding and wiring of the gantry. He also gave feedback linking the mechanical and electronic interactions.
Sebastien: First year Mechatronics and Robotics Master student at ULB/VUB. He enjoys crafts projects and getting dirty in the workshop. He worked primarily on the assembly of the body. From mounting the frame together to creating pulley systems and designing sliding and fixation plates for all electronics. All was done in CAD to then be built physically. Also helped prototyping Z-axis and did cable management. The most appreciated part of the project is by far the satisfaction of having a physical robot built by our own hands. The journey from design to assembly is very demanding but is just as rewarding.
Hiba: Mechatronics and Robotics Master student. She contributed in the beginning by showing different existing types of gantries. After she did the hardware testing, coding/wiring and gave feedback on the relation between electronic tests and mechanics. She contributed to the final visual of the prototype tests and cable management.
Project Repository
Appendices
Appendix I: Sources
[ref1] In-Depth: Control Stepper Motor with A4988 Driver Module & Arduino
[ref2] In-Depth: Interface Two Channel Relay Module with Arduino
[ref3] How HC-SR04 Ultrasonic Sensor Works & How to Interface It With Arduino
[ref 4] https://livetoplant.com/how-automation-is-changing-the-greenhouse-industry/
[ref 5] https://www.strategicgardening.com/10-reasons-why-people-don-t-garden
[ref 6] https://www.sciencedirect.com/science/article/pii/S0921344922005973
[ref 7] https://www.pololu.com/product/1182
[ref FIG3] https://lastminuteengineers.com/wp-content/uploads/arduino/v2/Measuring-Vref-Voltage-Setting-Current-Limit-for-A4988-with-Multimeter.png
[ref FIG1] https://racheldebarros.com/wp-content/uploads/2025/05/limitswitch-pinout.jpg
[ref FIG2] https://lastminuteengineers.com/wp-content/uploads/arduino/relay-module-pinout.png
[ref FIG10] https://lastminuteengineers.com/arduino-sr04-ultrasonic-sensor-tutorial/
[ref 8] https://racheldebarros.com/using-limit-switches-with-stepper-motors-and-arduino/
[ref 9] https://lastminuteengineers.com/two-channel-relay-module-arduino-tutorial/
[ref lim] https://www.digikey.fr/fr/htmldatasheets/production/53721/0/0/1/micro-limit-switches