September 9, 2019 Software Update

Hey FarmBot community,

Today we deployed a handful of new features to the FarmBot web application, which you can now see and use at my.farm.bot. Later this week we’ll be releasing FarmBot OS v8 and all-new documentation as well, so stay tuned! In the meantime, here’s what’s new with the app:

Improved farm designer navigation

New plant hover indicator

Now when you hover over a plant in the plant list panel, the corresponding icon in the map will be indicated with a rotating white dashed circle. This helps you locate plants in your garden, no matter the number of plants you have growing. Big thanks to @Ascend for submitting a PR with this improvement!

Escape key navigation

When using the farm designer panels to add an event, inspect plant details, etc, you can now use your keyboard’s Escape key to navigate back. Thank you to @Ascend for building out this feature as well :slight_smile:

New sequence commands

We’ve got two new sequence commands for you to try out with FarmBot OS v8 beta (or the official release once it comes out).

Mark as…

The Mark as command allows you to systematically change the state of objects in your FarmBot with your sequences. For example, you could mark your tomato plant as planted at the end of your seeding sequence:

Another example is you can mark the tool mount as mounted to the watering nozzle at the end of your sequence to mount the watering nozzle.

We envision this sequence command being useful in keeping track of the state of your garden as various operations are performed on the plants and weeds over time, as well as keeping track of the state of your FarmBot for some special visual effects we have ideas for. While the command is still in its most basic form right now, stay tuned for it to support variables and additional object types and states in the future!

Assertion

The assertion command was originally conceived as an internal tool to help us automate the testing of hardware and software here at FarmBot Inc, but we think some of you will find it useful as well. Please note: this is more of an advanced/power user type of command.

If you’re familiar with automated software testing methodologies, you’ll be right at home with the assertion command. Simply write an assertion in Lua, and then specify what FarmBot should do if the the test fails. Options include Continue, Recover and Continue, Abort and Recover, and Abort.

Internally we’re using this command to verify that sequences and commands execute correctly, for example by asserting that FarmBot has reached an intended location:

Moving forward, we envision running full test suites for several hours every night to high-cycle test our hardware and detect software regressions early and often.

If you’re interested in trying out the assertion command, check out the documentation for a working list of what you can do with the assertion field.

Read-only mode

There are now hundreds of schools using FarmBot as an education and research tool. In some cases, one FarmBot gets shared amongst several teachers, each with several classes, which can result in an account being accessed by hundreds of students. To help prevent unwanted or accidental changes from being made to an account, you can now put the account into read-only mode using a toggle in the account settings page. While we do envision much more comprehensive access controls in the future for shared FarmBots, this is a first step in helping reduce some headache.

Network quality checker

Many issues people have with their FarmBots are related to connectivity, and we’re always looking at ways to provide more meaningful information to users to help diagnose their issues and improve their FarmBot’s operation. The latest addition to our suite of tools is a network quality checker, which you can find in the connectivity popup:

Ping%20Checker

This works by sending FarmBot a “ping” message from your web browser, and then measuring the time taken for the FarmBot’s responding “pong” message to return to your browser. If your phone or laptop has a poor connection to the Internet (weak WiFi signal, slow mobile connection, etc), and/or if your FarmBot has a poor connection (weak WiFi signal, etc) then it may take a long time for the messages to go from the browser to the bot and back to the browser again, or the message may get lost entirely. If too much time passes, the message will be considered lost, and the Percent OK metric will decrease from 100%.

If you suspect you have connectivity issues, and/or your FarmBot keeps losing connection, the network quality checker might help you identify the issue more clearly, and determine its severity.

Cosmetic improvements

Huge shoutout to @Ascend for helping us out a ton the last few weeks with all of these cosmetic and usability improvements:

  • All toast notifications now have legible, properly contrasting text colors
  • Removed an unused SAVE button from the Hardware widget
  • Improved the styling of the Sync text indicator when auto-sync is enabled
  • Changed some red [–] buttons to red [X] buttons to improve consistency
  • Fixed an issue where some tooltips were being cut off
  • The IF STATEMENT command now has a more compact layout

Under the hood changes

  • Regular dependency and security updates
  • Upgraded to ActiveStorage
  • Improved API errors for Farmware authors
  • Improved management of first-party farmwares
  • MQTT rate limiter for users with very poor connections (to prevent email spamming in certain conditions)
  • Improvements to the way FBOS beta opt-in is handled
  • Added an option to select “none” for firmware (facilitates internal development)
  • Implemented a maximum allowed time for an individual wait command of 3 minutes (180,000 milliseconds). If you need to wait more time, you can add multiple wait commands back-to-back.
  • There is a new app option to “Confirm Sequence Deletion”
  • Edits to your device’s name now auto-save (also thanks to @Ascend)
  • Updated translations for French (thanks PrincesseLulu!)

Coming soon

Groups

We’ve started work on the Groups feature, which will allow you to define groups of plants and later execute sequences on every plant in the group. We’re nearly finished with the web app side of implementation - there are just a few things left that need to be polished up. PRs welcome!

New farm designer panels and navigation

We’ve begun work on several new panels for the farm designer page including one for points, groups, tools, and gardens. Once these get finished up, get ready for our new icon-based navigation:

Panel%20Nav

FBOS v8, and v8 software docs

Coming later this week!

3 Likes

anyone else find that their farmware now doesn’t install? MLH etc are not working for me.

image

This is caused by the v8.0.0 update. Looks like the community farmwares are not yet updated to run on v8.

@adimw @Ascend This is correct. The move from version 7 to version 8 is a “major update”, meaning that an update contains non-compatible changes with previous versions. This is different than a “minor update”, which does not have breaking changes (example: Upgrading from FBOS 7.0 to 7.0.1). You can read more about semantic versioning here

The schema of Farmware JSON files has changed to address problems in v7 that could not be incrementally upgraded, or problems which our three person developer team could not reasonably provide support for. To learn more about our support policy for old versions of FarmBot OS, see our support policy.

In the meantime, your options are to:

  1. Downgrade to FBOS 7.0.1. Please note that since this is now an outdated version, we cannot provide support for bug fixes in v7.
  2. Upgrade to v8 and wait for the authors to upgrade their project. I am uncertain if MLH is still under active development. You may wish to contact the Farmware authors to notify them that their Farmware is not compatible with FBOS v8. We are happy to answer questions that developers have about the new OS version.

I hope this helps. Please let us know if you have any additional questions.

1 Like

Additionally, we have an upgrade document here.

@adimw @RickCarlino
I’d recommend option 1 - downgrade to 7.0.1 by reflashing the SD-card.
Just forked the “Powerloop” farmware and changed the manifest to fit v8. Now the farmware installs and is shown almost correctly in the farmware widget, but if I run the farmware its throwing some OS errors leading to an very slow and almost unresponsive OS.

I’m still investigating whats going wrong, but downgrading is definitely the thing to do right now.

Thanks for the heads up @Ascend. I will let @connor know.

1 Like

I’ll open an additional thread in the software category to share what exactly is going on, maybe this will help as well.