May 19, 2020 Software Update

Hi FarmBot community,

This morning we released a major new version of FarmBot OS (v10.0.0) and deployed a new version of the web app to go along. There are some important details in this update that we hope you will read. Let’s get started!

New MARK AS command

The MARK AS command in the sequence editor has been majorly upgraded. Now you can pass in Location Variables to this step, allowing you to systematically update Plants, Weeds, Points, and more without having to ‘hard-code’ in a specific item. This works great with sequences run over a group of items. For example, when running a seed planting sequence for 10 Spinach Plants, you can have FarmBot mark each plant’s status as planted.

We’ve exposed a variety of fields that you can change for various resources including X, Y, and Z coordinates, Radius, Color, and Status. There is also a custom write-in option that allows you to use meta.custom properties. For example, if you would like to mark points in the map with something like meta.soil-ph = 5, you can do that!

Meta properties are then viewable in item details panels.

And you can then use advanced group filters to select items that match your custom properties.

Important information for updating to FBOS v10:
Because FarmBot OS v10 is incompatible with the old MARK AS sequence command, we have globally disabled AUTO UPDATE. When you are ready to perform an upgrade:

  • Press the UPDATE button on the device page.
  • Go to the sequences page and find the old MARK AS step(s) in your sequences. These steps will appear as “Deprecated Mark As” in the sequence editor.
  • Hit the CONVERT button to convert the old MARK AS step to the new one.
  • Re-enable AUTO UPDATE.

Calibration improvements

Calibration has been changed to now move to the maximum position first, and then the home position. This makes the calibration process faster, as it eliminates one leg of the journey.

Homing improvements

Previously, homing was susceptible to failing when FarmBot would erroneously stall somewhere along an axis that was not the home position, and incorrectly set that location as 0.

Now, whenever FarmBot thinks it has found the home position, it will back up a short distance and then move forward again to verify that it stalls again in the expected location. If FarmBot has reached the true home position (a physical hard stop), it will always stall in the same location, and it will set that location as 0 after verification. If FarmBot has not reached the true home position (FarmBot had previously stalled erroneously), then it will continue forward until it thinks it has found the home position again, somewhere else. Currently the firmware is set to verify the location three times, though this may be lowered in the future.

Farm designer

Weeds can now have a status of “Active” or “Removed”, and the weeds panel has been updated to separate the two categories. You can now also use an additional map layer to toggle ON/OFF the Removed weeds.

You can now select all items in a group from the select panel.

There are now Z-coordinate input fields for Plants, Points, and Weeds, as well as a Diameter field for Plants.

Other improvements

  • Groups have been moved up in location dropdowns to signify their greater importance.
  • Groups have been added to the account seeding process, so new accounts and demo accounts have some examples of how that feature works.
  • Fixed a bug with the group age filter where FarmBot OS was using the created_at date of a resource instead of the planted_at date.
  • Improved the toast notification system to allow for permanent toasts and for the app to cancel toasts. For example, the “Reconnecting…” toast now gets cancelled once the app is “Reconnected”.
  • Improved the layout of the IF statement command when there are variables.
  • Updated verbiage throughout the app and some log messages to make things more clear.
  • Added a new sequence command to SHUTDOWN FarmBot. Thanks @mbuchberger1967 for the request.
  • The logs page tooltip has been removed because it did not provide any value. Thank you @rampollaluis on GitHub for submitting this PR, and congratulations on your first ever open-source contribution!
  • Added a note to the connectivity popup to ensure FarmBot OS is up-to-date before troubleshooting connection issues.
6 Likes

Wow those are great news, I can’t wait to test all those great new functions. Having the mark-as sequence step makes the farmbot so much more productive and easier to set up. I also like that the custom meta field is now that easily accessible.
It’s good to see that you are still working hard even in times like this.
Thanks for that great work! You all really deserve this :medal_sports: .

4 Likes

My OTA failed apparently. The Pi has sat there for 24 hours following the attached log events. I’ve now tried rebooting but it hasn’t helped. I guess I’ll have to reflash.

@SimonB Ouch ! More Nerves-Hub or FBOS fragility, looks like.

Upgrading from v9.2.2 to v10.0.0 ?
You’re on the recent Genesis XL v1.5 platform ?
Has operation been solid and reliable until this ?

Yes, yes, yes.

I would reinstall the last working version of the OS. There are instructions in the farmbot software documentation on how to etcher previous OS versions onto your mini SD card in the Pi. It doesn’t take me long.

I have asked for a reinstall previous version button in the web app, they will get to it. They have had a very busy start to the year.

As a general rule of thumb as I require stability, I wait a few weeks before installing new OS versions. I turn the auto update off. Like any software it takes a bit to iron the bugs out each new release.

If you’re more technically minded and happy to assist with helping the open source then ignore what I last said.

@SimonB @RickCarlino Tried to reproduce the above OTA update failure

  • flashed a fresh copy of FBOS v9.2.2 and checked that it runs Ok
  • kicked off OTA update . . successfully restarted on v10.0.0
    So that bit’s Ok. Didn’t reproduce.

Did notice, though, that MCU Firmware was not automatically flashed.
FBOS v9.2.2 bundled Genesis v1.5 firmware version 6.5.11
FBOS v10.0.0 bundles Genesis v1.5 firmware version 6.5.22
so unless manual flash is performed ( it works ) then users will still use the old buggy firmware.

Thanks for the suggestion - I just tried flashing the firmware from the device page. The problems I‘ve outlined in another post persist:

https://forum.farmbot.org/t/farmbot-os-v-10-0-calibration-not-working/6247/6

Yeah, it’s starting to feel like disabling auto-update might be wise.

Aaaah, Ok . . Yes, my pref. is usually AUTO UPDATE => OFF right now ( for various reasons :slight_smile: )

I also ran into massive flashing problems when updating (no OTA) from FBOS 9.2.2 to 10.0.0. I flashed a 10.0.0 to the sd-card and configured the farmbot via configurator. After bootup the arduino was not detected anymore and could not be flashed by clicking the webpage button. So I flashed the newest arduino firmware manually, but it still was not detected on the WebApp. Reflashing 10.0.0 did not help so I flashed 9.2.2 to the SD-card and arduino was detected and flashed properly again. After OTA updating to 10.0.0 the firmware was still working, but I didn’t check the firmware version because I was so glad its finally working. Now that I check the FIRMWARE CODE field in the Device popup, it shows 6.4.2R which is from Sept '19.

Now if I try to flash the Firmware through the WebApp, a communication timeout from avrdude comes up and the process is cancelled. I am using some kind of Mega/ramps combination, but that should not be an issue since farmduinos are afaik also using mega2560 chips.

1 Like

That’s likely the latest for your “firmware-hardware” ( Arduino/RAMPS ).
It’s firmware for the Express and Genesis v1.5 models that’s been changing a lot recently.

Good point, I also thought about that but are there really different versions of the firmware bundled on the OS, so for different hardware types are different versions flashed? I thought that the firmware version is same for all and the functions are tailored to the hardware type set in the OS? Also weren’t there functions updated that affect all hardware types like axis calibration routine and homing improvements?

I still experience issues when trying to flash the firmware from FBOS 10.0.0 manually. As soon as I try to flash it manually from the WebApp it gets aborted by avrdude and the connection to the arduino will be immediately lost. Only if I flash 9.2.2 the firmware gets flashed again and I can OTA updating to V10 as it does not try to flash the firmware again. I’m wondering if that only affects my device, maybe I’ll try that on another raspy/mega that I’ve got in spare.

Sure are :slight_smile:

iex(farmbot@farmbot-00000000b7305e34.local)3> cmd 'find / -name "*.hex" -print'
/srv/erlang/lib/farmbot_firmware-10.0.0/priv/arduino_firmware.hex
/srv/erlang/lib/farmbot_firmware-10.0.0/priv/eeprom_clear.ino.hex
/srv/erlang/lib/farmbot_firmware-10.0.0/priv/express_k10.hex
/srv/erlang/lib/farmbot_firmware-10.0.0/priv/farmduino.hex
/srv/erlang/lib/farmbot_firmware-10.0.0/priv/farmduino_k14.hex
/srv/erlang/lib/farmbot_firmware-10.0.0/priv/farmduino_k15.hex
0
iex(farmbot@farmbot-00000000b7305e34.local)4>

I’m hoping for you that @RickCarlino or @Gabriel will shed light on this issue !

[edit 0] Just to keep things moving, are you able to get into your FBOS and check the configuration setting of firmware_hardware ?

Here’s mine ( a Farmduino v1.5 MCU, for example )

I ran into the same issue as @Ascend.
With FBOS 10.0.0, flashing the firmware is impossible and breaks link with the firmware. After that, communication with firmware is completely broken, even after restart.
Like @Ascend, I had to downgrade to FBOS 9.2.2 to make it work again.
So for now, I will stay with FBOS 9.2.2 until this bug is fixed.

@roryaronson this update has been great. I would love to use the “Mark As” feature in an “IF” statement.

As an example, to run a soil test in multiple defined locations but skip the mount tool sequence that I have layered in to a larger sequence.

I would like to use (IF tool verification = 1) AND (IF Mounted Tool = Soil Sensor) then skip my Soil Senor Mounting Sequence.

1 Like