July 14, 2020 Software Update
We just released a big update to the web app as well as FBOS v10.1.3. Here’s what’s new:
FarmBot Express stall detection beta
FarmBot Express owners may now ENABLE STALL DETECTION for all three axes. This feature utilizes the Trinamic TMC2130 stepper drivers’ capability of measuring back-current as a way of determining motor load, and thus when a stall has occurred. This feature has been a long time in the making, and we still have a ways to go towards optimizing this functionality, but we wanted to make it available to you all today as a public beta and solicit feedback.
In addition to enabling stall detection, there are a few other settings available for tuning the system: STALL SENSITIVITY, MAX MOTOR LOAD, and GRACE PERIOD.
Thus far we recommend a stall sensitivity of 63 (least sensitive), a max motor load of 60 (out of 100), and a grace period of 100 steps to ignore during acceleration. We may change, add, or remove tuning parameters based on additional testing and feedback, but here’s what you may be able to expect today:
- Stall detection is very sensitive to speed. I am running my motors quickly (~180mm/s on X and Y) to achieve good results. Going slower usually makes the driver think it is under heavier load; which we’re still investigating. Because speed is low and load is high during acceleration, you can increase GRACE PERIOD to ignore the accelerating portion of a movement. You may also shorten the distance the bot accelerates for.
- Stall detection is very sensitive to motor current. Play around!
- Changing sensitivity seems to have little effect in most scenarios, but we’re curious what your results are.
- The bot considers that it has stalled when the motor load goes over the MAX MOTOR LOAD.
- Each axis will need different settings, and you may not find settings that give good results yet for some or all of the axes. If so, just disable stall detection for now until the next update.
Motor load indicators
When stall detection is enabled, the stepper drivers will report the value that we’re using as a MOTOR LOAD heuristic. You can see the realtime, average, and max load for each motor in the Controls panel right above the current location fields.
To tune your stall detection settings, I recommend moving your bot back and forth along an axis and monitoring the motor load. Then change a setting and repeat to see how the load changes. Your goal is to achieve low motor load during normal movements, and a high motor load when stalling the bot against an end location. MAX MOTOR LOAD should be set such that the bot will always think it has stalled when it is actually stalling, but not get falsely triggered during normal movements.
There is also a new setting to show FARMBOT MOTOR LOAD in the map. Whenever an axis is reporting loads in the yellow, orange, or red threshold ranges, an axis label will be dropped on the map where this high load occurred.
Pending weeds
The weeds panel now includes a new section for PENDING weeds. This will soon be used as a way to triage weeds that are detected using FarmBot’s camera, allowing you to more easily approve or disapprove results. Clicking ✅ will move the weed to the ACTIVE category, while clicking X will delete it.
Additionally, there is now a white dashed line indicator shown around weeds in the map when mousing over the corresponding listing in the panel, and when the weed is selected. Panel sections are also now collapsible, feature map layer toggles, and indicate the number of weeds in each category.
Filter map photos
A new expandable section in the photos panel allows you to filter which photos are displayed in the map based on date/time, a toggle for only showing the image currently shown in the panel, a highlight option, and quick settings for adjusting the date/time range based on the timestamp of the image currently shown in the panel.
Other changes
- The advanced image processing parameters for weed detection have been moved into a collapsible section to simplify the view for non power users.
- FBOS logs referring to “farmware” have been changed to refer to “dependencies”, and the logs for 1st party farmware such as taking photos have been simplified.
- Other FBOS logs have been updated to reflect recent verbiage changes such as Calibration -> Find Axis Length.
- FBOS logs for analog peripheral writes have been fixed to report the correct value.
-
sensor_readings
have been removed from the sync object for FBOS to improve performance (FBOS did not need this resource). - Fixed a padding issue for tool slots in the select panel.
- Fixed an issue where some firmware settings were causing Code 30 errors.
- The number of Good Consecutive Homings has been reduced to 1 for Express bots. This change will come to Genesis too, and eventually the setting will also be configurable, though we have a bug in the Genesis firmware that needs to be resolved first.
- Implemented row locking in the API to help prevent stale data situations that cause user issues particularly when changing hardware settings quickly.
- Fast photo taking and rotation correction in the map is now the default behavior. You can still turn ADJUST ROTATION DURING CAPTURE to ON if you would like your images to be captured with the older, slower method.
- FBOS will now flash firmware on every boot.
- Fixed a bug where configurator would not restart when bad credentials were entered.