Water sequence question

I’m currently watering all plants in my garden with a group that has all currently planted plants in it. The problem is, in some areas like my carrots and onions, I’m flooding the area because the FarmBot is watering each seed for 3 seconds. Is there a quick way I can make the bot water the entire area by moving over it while watering while maintaining the group I have?

Hopefully this makes sense

@stre1026 I would need to see the “shape” of the group to know for sure, but I can give you an overview of how I do it on my garden in this situation.

Here is what I am doing this spring for a row of seedlings.

  1. Create two points, one called “ROW START” another called “ROW END”.
  2. Create a sequence as shown below:

The sequence above will turn the water on, move in a straight line across the garden, then turn off the water.

Another idea would be to create a row of “starting points” on one side of the garden and put those in a group. When FarmBot visits each starting point, have the bot turn on the water, move down the row 1,234 steps, and then turn off the water. It could do this for each “starting point” in the group.

Is that the issue? Or is it something else?

Hi @RickCarlino

I think this makes sense. But there is no way to do it with the same group of plants I have now, right? I have to use a separate sequence? Here’s the shape:


Groups were designed to perform the same exact action on multiple items. They were not designed to perform the use case you are trying to accomplish. The best alternative would be to create a group that contains the “head of row” plant and then perform the row watering sequence for each plant:

There might be other ways to do this also but I think they would be cumbersome:

  • Use an IF statement to guess where the bot is based on current X/Y
  • Use custom Lua code (possibly using the env("key", "value") helper to store state between iterations.

On second thought, it is possible, but I think the solution above is cleaner:


@stre1026 Please let me know if any of those options work for you. In the last example, there is a slight pause between each movement (takes a small amount of time to finish one MOVE command and start the next).

Hi @RickCarlino

So I’m just trying to figure out which the best way to do this would be. I have a sequence right now which basically has a group of plants I want to water. I then pass that group into my watering sequence:

I like the way you are doing your seedlings, but I’m just trying to figure out the best way to integrate that into my sequence. I have a sequence that mounts the tool, runs the water plant sequence, then unmounts the tool. I guess I could have it run the sequence to water the group of seedlings right after before it unmounts the tool. Would this be the best way to accomplish this?

I think this would work, though I am saying that without knowing your individual sequences.

If you ever find that the sequence is acting unexpectedly (eg, trying to mount/dismount the tool for every plant) that may be a sign that you need to apply a “wrapper” sequence, similar to what I did with the sequences in my second example. Example: I wrapper “MOVE - Single Plant” using “MOVE Wrapper (All Plants)”.

1 Like

As a side note to anyone that finds this via search, we do acknowledge that the use of wrappers can be cumbersome. The reason for this behavior is extremely complicated and not easy to fix, but we do want to eventually simplify how groups are passed down to child sequences.

Thanks @RickCarlino

I will play with these options and see which one works best.

1 Like