Tuesday afternoon we deployed updates to the FarmBot web API, frontend, FarmBot OS, and the Arduino firmware. Here is an overview of the specific changes, bug fixes, and improvements throughout the software stack.
Improved Rotary Encoder Support
The latest firmware included with FarmBot OS 3.1.4 has much improved rotary encoder support. Enabling rotary encoders allows FarmBot to detect when its motors stall. For example: when it reaches its minimum and maximum locations during calibration, or when a plant grows onto your tracks and causes FarmBot to get stuck. For the encoders to work correctly, you will need to have your settings within acceptable ranges. As a starting point we recommend the following:
- Max Speed (Steps/s): 400
- Enable Encoders: Yes
- Encoder Scaling: 100
- Max Missed Steps: 10
As we continue to make code improvements and optimizations, we will refine these recommended numbers and build them into the firmware as defaults.
Once you have entered in settings for the encoders, the "Calibrate" buttons on the hardware widget will instruct FarmBot to move (slowly) to find its minimum and maximum points, and also measure the distance between them. Not implemented yet but on our list for the next deployment is using these measurements to make sure FarmBot never tries to move beyond its maximum locations, as well as showing the values in the input boxes for "Length" on the hardware widget.
The "Home " buttons on the hardware widget will also utilize the encoders to re-find the minimum position along an axis. Note: this is different than the home button on the controls widget which just tells FarmBot to move to (0, 0, 0).
Set the current position as zero for each axis. This makes manual calibration easier - just move your bot to your desired home position and press the "Zero " button(s) from the hardware widget on the web app to set that position as zero.
Always-on motors. You might want or need your FarmBot's motors to always be powered so that they are 'locked' in position even when FarmBot is not moving. For example, an always-on z-axis motor would prevent the z-axis from wiggling down due to gravity. Enable or disable this setting for each axis from the toggle switches on the hardware widget.
Invert encoder toggles. These toggle switches will allow you to invert the encoder readings in case you plugged the encoders into the RAMPS board backwards.
- Improvements to the hardware widget which make updating hardware settings faster and more reliable.
- Smarter Save buttons throughout the app indicate if data is Saved, Saving, or needs to be Saved. This feature replaces most of the green "Success" toast notifications.
- Bug fixes to the Farm Events creator and editor.
- Photos in the weed detector widget now show up newest first.
- Log filtering to prevent the display or recording of any sensitive information such as home wifi credentials.
- When editing a plant's location, its "spread" is shown as a green circle, indicating the amount of area the plant will need. Note: This data comes from OpenFarm and is not available for many crops yet.
- Mouseover effects for the farm designer allow you to quickly see what icon a plant in the all-plants-list corresponds to.
- Tooltips have been added to every hardware setting to help clarify what that setting is used for.
- Added a link to the software documentation hub under the right-side dropdown.
- Descriptive browser tab titles.
- Log filtering has been fixed to prevent sensitive information such as home wifi credentials from leaving the device.
- OS errors are now sent to us (from all FarmBots) using a system called Rollbar which allows us to better detect, diagnose, and fix bugs as they happen.
- Support for all the new firmware settings.
- The latest firmware is included.
- Stability improvements, better logging, and bug fixes to wifi and other core areas of the OS.
- OpenFarm (the database that provides icons and crop info) has added Companion Plants to their infrastrucutre. While we are not pulling this data into the FarmBot web app just yet, we do plan to show this information in the future so that you can better plan your garden.
- We now have over 100 crop icons created and uploaded to OpenFarm.
- Updated/added the Contributor License Agreement links on all active repositories.
- Added MIT Licenses to any active repositories that were missing them.
Our next big pushes include:
* Performance improvements for encoders.
* Improve how E-Stop works at the firmware and OS level.
* Implement a "Safe State" feature so FarmBot knows what to do (and what not to do) during an E-Stop or when the encoders detect a motor stall.
* Deploy alpha weed detection farmware to all users.
* Ability to use plant and weed coordinates in your sequences (as defined in the farm designer or generated from the weed detection farmware)
* Ability to loop a sequence. Initially, looping will just be repeating the same sequence multiple times, but the feature will expand into looping a sequence over a group of plants or weeds. So for example: you could make one weeding sequence that loops over all the weeds in your database, and then schedule it for every day at 6am.
* Ability to apply a regimen to a plant for taking care of it throughout its entire life.
* Dedicated web app pages for weed detection and farmwares.
* And of course: stability improvements and bug fixes throughout the stack.