January 13, 2022 Software Update

Hi FarmBot community,

Today we released FarmBot OS v14.8.0 and a new version of the web app. Here’s what’s new:

Jobs popup

You’ll now find a new popup in the main nav bar for Jobs. Jobs track the progress of tasks that FarmBot is carrying out, such as taking a photo, performing an OTA update, or running a long sequence like scanning the entire garden for weeds.

To create and update your own jobs, just use the new Lua helpers set_job_progress() and get_job_progress() as in the example below. (detailed documentation coming soon)

set_job_progress("foo", { percent = 75 })
job = get_job_progress("foo")
send_message("info", "Job progress: " .. job.percent, "toast")

Over the coming weeks we will be updating our publicly shared sequences such as Photo Grid and Weed Detection Grid to use the new Jobs feature. Stay tuned and make sure to update your imported sequences when you see there is a new version available!

watch_pin and soft_stop

To support the new Rotary Tool included with Genesis v1.6 kits, we’ve implemented two new Lua helper functions.

The first is watch_pin(), allowing FarmBot to monitor an Arduino pin’s state and execute code in a parallel Lua process every 500ms. This is useful for applications such as monitoring the load on the Rotary Tool’s motor and turning the motor off if the load exceeds a certain threshold.

The second new Lua helper is soft_stop(). When called, soft_stop() will cancel the current movement. Unlike emergency_lock(), it will not lock the device nor will it reset the state of peripherals. Commands (including movement commands) will continue normally after a soft stop has occurred.


  • Garbage collection is now performed automatically whenever a FarmBot specific Lua helper is executed, eliminating the need to perform garbage collection manually.
  • Fixed a bug preventing Lua from exiting after an Emergency Stop in certain circumstances.
  • Improved the display of images in message center cards.
  • Improved the display of featured sequence descriptions.
  • Added a total attempt counter to the homing retry function so the bot cannot go into an infinite loop. The default is set to 10 attempts. Note that this setting is hidden behind the advanced feature flag and will generally be unnecessary for end users to modify.
  • Hid the parameter load progress indicator behind the advanced feature flag.