[FARMWARE] Mother's Little Helper (MLH)


Sounds correct to me! :slight_smile:


I already tried several times and cut the rest on the right side when I copied the link. However it seems I had missed the space on the left part, which I haven´t obviously seen by the way - I do not have the coder eye :wink:
Nevertheless when I tried a third time, copying the link from another source it worked.

So the proposed solution seems suited and should avoid further inquiries from users with “copy errors” :wink:

Thanks for supporting @etcipnja and @connor


Glad to be of assistance! I’ll update the model as time permits and community needs develop! I will try to edit this post to have pictures a bit later. I know they’ll be helpful. Ans, sorry for the delay, my family is preparing for the arrival a baby girl in October so my time has been spent getting all-of-the-things ready.

As for the hard install, the broad strokes are as follows:


  • Outdoor/Burial-rated conduit - flexible PVC is recommended. Needed for data and power cable external legs of the install (at a minimum).
  • Outdoor rated junction boxen (4x) - essential for code and installation flexibility. Two each for both data and power (one at the FB end, one at the house end).
  • Outdoor rated GFCI outlet - I used a single gang fixture, which gives me some future capacity for other things that may need power in my back yard.
  • Outdoor rated Data cable - Essential for the final outdoor leg to the Farmbot. I used Cat 6 for technology reasons.
  • Water hose that can be buried. Much easier than PVC, but less permanent. I had an old hose laying around, so I used it for simplicity.
  • 8ft copper ground rod with fitting collar (for the ground wire)
  • fence post driver
  • 2lb hammer


  • A separate 15amp or 20 amp circuit breaker. GFCI rated is optional, depending on code
  • Data cable surge suppressor. Strongly recommended to protect your communication infrastructure from lighting.

Order of burial: electricity, data, water. Why? The electrical line is the most dangerous and there are codes regulating burial depth. It’s also the thing that is designed to be in the ground the longest. The hose I chose for the water line will likely deteriorate the quickest, and when it starts leaking, I want to know about it. Having it closer to the surface allows me to replace it without disturbing the other lines.

  1. Cut a trench about 12" (0.33m) deep. I buried water, power, and data in this trench. The depth allowed for separating the three lines for electrical safety code reasons. Your local code may vary. Mine required 6" (0.15m) of separation and a buried depth of at least 6" (0.15m). I also recommend saving your turf (if you have any) on a tarp so that you may reduce the time of the ‘bad haircut’ visual effect after you’re complete.

  2. Lay in the 3 conductor (power, return, earth ground) power line. I used a direct-bury line, which removed the need for conduit for the majority of the run. You’ll still need conduit from getting out of the ground to your electrical box. You also can use conduit. I recommend a ground-rated flexible PVC conduit. Perform a conductivity test. Cover with 6" of soil.

  3. Prepare the data cable for burial. They do have outdoor rated, cabling with a burial-rated jacket. The cost is similar to buying a non-outdoor version and a protective conduit. For my configuration, I chose to put Cat6 riser cable inside of a element proof, desiged-to-be-buried conduit. This allowed me the ability to easily replace the data cable in the future as technology changes occur. I ran the conduit to a jucntio box, and then used outdoor rated Cat6 for the final leg (from the junction box, through the x-axis cable carrier, to the Farmbot box. In this step, you’ll need to pull the data cable through the conduit when it’s possible to stretch out the conduit and reduce the number of elbows.

  4. Lay in the data cable. Run a continuity test. Fill with dirt.

  5. Lay in the water line. Test the water line. Cover with 2" of soil.

  6. Replace the turf.

  7. Connect all of the conduits/service lines to their respective junction boxen/endpoints. I STRONGLY recommend using a GFCI outlet. Most electrical code will require this.

  8. Install an 8’ copper ground rod. A fence post driver, a 2lb hammer, and moist soil are the best tools/conditions for this. I recommend driving the rod in at a 30° angle as this will encourage the rod to either go over or under any rocks it finds on the way.

  9. Connect the ground to all chassis and surge equipment. (I strongly recommend a surge protector for your data cable). Be sure to check for ground loops as well as these can be dangerous.

I ensured that any ground exit points were well guarded from lawn equipment by using bricks.


Today I wanted to execute the farmware (it´s still installed ;)) and I encoutered the following error:

Error CS Failed: [execute_script] - “Farmware failed” 0.2, 0, 0.5 Oct 9, 9:20pm

Warn|#Farmware<MLH(2.4.16)> completed with exit status: 1|0.2, 0, 0.5|Oct 9, 9:20pm|

Busy|Beginning execution of #Farmware<MLH(2.4.16)>|

I rebootet the bot and got the same.

Any idea what is happening here? The error log does not tell me anything… :confused:


sorry, my bad - it was syntax problem. Now it shall be better. Update to 2.4.17

I am having problems with my FB - can’t verify it now. Also I am busy with another project lately - so I won’t be able to provide timely support :frowning:


Works again, thanks very much!

Which problems do you face?



Hey Guys,

since the new WebServer/API Version (v7) - MLH does not work for me anymore. Is it just me, because of something else, or has someone similar problems atm?
Trying to narrow down the problem, so feedback is very appreciated :slight_smile:


Hello, this is sad.
It is pretty much winter in MD. On top of the fact that my FB died I am about to winterize it anyway. So I have no way to work on the fix right now. Sorry. I hope community will pick up this project. I’ll try to answer questions if they arise.

I am not giving up with FB yet. This was a lot of fun! See you next season.

Thank you,


Hey @etcipnja sad to see that you’re in winter sleep mode… why did your bot die?


That’s really sad.
MLH was the thing that made farmbot to what it should have been.
I guess I have to build with sequences then… with 132 plants that’s a lot of fun :stuck_out_tongue:
I hope I can tinker a way around putting all this plants by hand but copy & paste them via postgreSQL…

What’s MD by the way?


Thank you for the kind words. And I guess nobody tried the iWatering mode with weather station integration yet. This was the most fun part.

MD=Maryland, USA

BTW: May be FB developers consider MLH to be an essential firmware and verify that updates are not breaking it? Just a thought :slight_smile:


well, first it started to reboot out of blue. I thought that it may be due to excessive drain from the battery/solar. I switched back to AC. Some time later AC power supply died so I had to switch back to the battery and now I can’t even login to the FB even though the LEDs are on (and no setup wifi visible). I decided to not tinker with it this season as “winter is coming” anyway.

Thank you,


Maybe i can take a deeper look into that, my SD-cardreader died from oxidation so I got myself a brandnew Raspberry 3b+. I’m excited to get that bot running again :seedling:.

Alright, i checked the functionality on master and staging server because I don’t use a local server. Looks like the farmware is still running on the official sever but may cause problems on self hosted ones. We’ll see if its just something else like a config error.


No I am so sorry. It is working now. I don’t know what I have done wrong before, but now it MLH 2.4.18 is running just fine.
You still have to change https into http on your personal server without https certificates - for all the other ones with self hosting servers reading this…


Does anyone know how to resolve the error message of:
" [MLH] Something went wrong: ‘<’ not supported between instances of ‘dict’ and ‘dict’"

thanks :slight_smile:


Guys, really sorry that I can’t help. I am in winter hibernation. I promise to come back to you in spring!



no problem, this is the error log if it helps when you de-frost :slight_smile:


My guess is an errant less than symbol has gotten itself inserted inside of a dictionary instantiation. Without digging into the Python code, I won’t know much more, but there’s a starting point for you :slight_smile:


Hi, I’ve spent some hours troubleshooting this issue (mlh version: 2.4.18). Plant distribution affects this. As long as you keep “safe” or “zig zag” plant distribution in farm designer - you’ll avoid having this issues. see attached pic

My hypothesis why this issue is concurring is that x,y,z coordinates are stored as dictionary values {x,y,z}. MLH makes measurements / comparison / sorting of plants to calculate & execute movements to individual plans. At some point it tries to compare position, without converting the dictionary values into integers. If I knew a bit more about python or how to debug farmware, I would look into this piece of code from MLH where I think this might be happening
def sort_plants(self, plants):
totalDist = 0
tr = sorted(plants, key=lambda elem: (int(elem[‘x’]), int(elem[‘y’])))
bl = sorted(plants, key=lambda elem: (int(elem[‘x’]), int(-elem[‘y’])))
dist, cur=min([ (self.distance(self.head,p), p) for p in (tr[0], tr[-1], bl[0], bl[-1])])
path = [cur]
for i in range(1,len(plants)):
dists = [(self.distance(cur,p), p) for p in plants if p not in path]
nextDist, cur = min(dists)
totalDist += nextDist

    return path


Just ran into the same error again trying to simply water all plants.
It still seems to work with earlier versions of MLH. Just try out the dev branch: