- Prevent unnecessary scheduler exit upon encountering duplicate variables when one is a placeholder.
- Add
tool.flow_rate_ml_per_s
. - Add
get_tool
Lua helper and use it in relevant helpers. - Fix
update_device({mounted_tool_id = 0})
functionality and validate values. - Fix
badarg
bug for plants withplanted_at
value.
- Add support for using remote
plant
objects in thewater
Lua helper. - Add
to_unix
Lua helper. - Add
planted_at
to localplant
objects.
- Firmware update to fix calibration deadzone settings.
- Add optional arguments to
take_photo
andtake_photo_raw
lua helpers. - Add point group
planted_at
/created_at
conditional. - Add
utc
andlocal_time
lua helpers. - Dependency updates.
- Dependency updates (includes
RingLogger.viewer
). - Add Genesis v1.7 and Express v1.2 firmwares.
- Change MQTT client.
- Genesis firmware updates.
- Dependency updates (includes system updates).
- Rework
photo_grid
lua helper exit upon missing configs.
- Add tool name input option to
mount_tool
lua helper. - Adjust configurator timeout text.
- Add new
dispense
,water
,grid
,set_job
,complete_job
, andget_job
lua helpers. - Add job progress tracking to
wait
lua helper. - Add
z
togarden_size
and add0
fallback values. - Fix
photo_grid
lua helper calculation bug.
- Add new
get_curve
lua helper. - Add/expose new plant fields:
depth
,water_curve_id
,spread_curve_id
,height_curve_id
,age
. - Fix
photo_grid
andapi
lua helper bugs.
- Add new warning element to configurator. Misc UI changes.
- Fix
move_absolute
andcheck_position
lua helper bugs. - Add new
get_xyz
,safe_z
,mount_tool
, anddismount_tool
lua helpers.
- Add new
on
,off
,debug
,toast
, andmove
lua helpers. - Fix abort command in Genesis and Express firmware.
- Fix bug running sequences with large numbers of steps.
- Allow configuration to hidden SSIDs.
- Improve system performance while using the red LED.
- Add new optimized and alternating sort methods.
- Add
sort
andgroup
lua helpers. - Add camera device info to informational settings.
- Add support for peripherals to
toggle_pin
. - Add
toggle_pin
lua helper.
- Fix boot sequence edge case bug.
- Add job progress tracking to farmware
- Add
time
to luaset_job_progress()
helper
- Implement boot sequence feature
- Add boot job progress
- Add
read_at
tosensor_readings
- Add
boot_sequence_id
tofbos_configs
- Add
get_seed_tray_cell()
andverify_tool()
lua helpers
- hotfix for uptime bug
- rpc() Lua helper
- sequence() Lua helper
- Dependency upgrades (including wifi scan edge case bugfix)
- Ability to manage
resource
variables from Lua. - Ability to execute GCode raw from Lua.
- Runtime validation of missing sequence parameters.
- Upgrade Nerves system, Erlang, Elixir.
- Ability to specify
safe_z
from Luamove_absolute()
. - Remove SSH subsystem. It is no longer maintained.
- Nerves system upgrades
- Genesis and Express firmware updates.
- Add
api()
helper to simplify API access in Lua. - Remove legacy logs relating to device updates.
- Ability to execute raw CeleryScript from Lua.
- Upgrade Elixir, Erlang and system deps.
- Nerves System (Linux) upgrade.
- Add support for RPi4 target.
- Bugfix: Prevent crashes from stopping a soft reset.
- Change the way Lua handles e-stops (no operation during e-stop now that soft_stop() exists)
- E-stop now prevents all sequence operations, not just firmware commands.
- Add
movement_calibration_retry_total_*
fields to MCU params - Lua technical preview for
set_job_progress
/get_job_progress
- Add support for text variables.
- Possible fix for "blinking MQTT" bug where device stops seeing incoming MQTT packets.
- Increase UART timeout / better handling of UART timeouts.
- Genesis and Express firmware updates.
- Fix bug where scheduling > 1 regimen per day would crash the scheduler.
- Farmware updates.
- Genesis and Express firmware updates.
- Fix bug where firmware parameters would appear to not be uploaded.
- Ability to handle
numeric
sequence variables from Lua - Silence timeout error messages from user log stream
- Add
photo_grid()
technical preview to Lua VM. - Better handling of timeout errors in lua
http()
function. - Bugfix: Prevent firmware handler from crashing when there is an active but unused pin watcher.
- Recovery deploy / hotfix. Fix bug where not all firmware parameters would load.
- Fix bug where Lua scripts would not stop sending GCode during estop
- Genesis and Express firmware updates.
- Improved Lua error legibility.
- Technical preview of load sense API
- Routine dependency upgrades.
- Remove need to download farmwares over the network (improves offline experience)
- Remove references to legacy components (FarmbotCore, FarmbotExt, etc..)
- Add new Lua functions:
detect_weeds
,garden_size
,measure_soil_height
- Upgrade database driver.
- Convert application to a monolith.
- SSL/HTTPS configuration updates.
- Upgrade numerous deps, such as Lua runtime and Certifi.
- Fix issue where FarmEvents would fail to execute near boot time on Express models.
- Performance updates to firmware handler.
- Update Erlang version
- Update error reporting info
- Upgrade Nerves system, Erlang, Elixir, OTP.
- Minor changes related to deprecations and platform changes.
- Ability to read
lat
,lng
, andindoor
from Luaget_device()
helpers. - Fix system halting memory leak when taking > 1,000 photos in a single boot.
- Increase timeout for
http()
requests in Lua. alpha
release of Lua helpers:base64.encode()
,base64.decode()
,auth_token()
,take_photo_raw()
.- Fix bug where calling
json.decode()
in Lua on an Array would raise an exception.
- Refactor code that generates calendars for FarmEvent resources.
- Routine dependency upgrades
- Bug fix: FBOS crashes when pinbinding is set to SYNC / REBOOT.
- Express firmware bugfix
- Genesis and Express firmware updates.
- Ability to use more than one variable per sequence.
- Ability for Lua developers to see current point group via
__GROUP__
sequence variable. - Improved CeleryScript / RPC error reporting.
- Fix bug where stall was reported as timeout.
- Report axis name when detecting stalls.
- Genesis and Express firmware updates.
- Add new v1.6 firmware with beta support for quiet mode.
- Fix problem where writing to an analog peripheral did not update device state.
- Add a
write_pin()
lua helper. - Bug fix for some Lua formulas.
- Full removal of factory reset timers.
- MOVE block now attempts to guess soil height when more than three soil height readings are available (previous versions relied on
soil_height
setting in device panel) - Genesis and Express firmware updates.
- Expose the following point attributes to the Lua
variable()
helper:- gantry_mounted
- id
- meta
- openfarm_slug
- plant_stage
- pointer_type
- pullout_direction
- radius
- tool_id
- Box LED fixes.
- Improved internal diagnostic tools for diagnosing camera problems.
- Routine dependency updates.
- Remove WatchDog timer.
- Add WatchDog timer to handle unresponsive firmware.
- Routine system upgrades.
- Fix box LEDs (solid red when firmware online).
- Fix espeak logs.
- Remove useless / developer-centric logs
- Fix bug where some FarmEvent and Regimen executions silently fail
- Add
wait()
helper to Lua - Minor changes to firmware restart logic
- Remove non-actionable disconnect logs.
- Better error output for Lua users
- Bug fix in Lua
read_pin
helper - Bug fix in Lua
uart.*
helpers (ALPHA status - feedback welcome!) - Routine dep. updates.
- Bugfix for CODE 30 error under rare circumstances.
- Complete overhaul of firmware handler in FBOS.
- Genesis and Express firmware updates.
- Ability to use
custom.hex
firmware file in user data partition instead of default firmware. - Ability to detect missing boot loader.
- Bug fix for devices that became throttled after long disconnects.
- Alpha support for 3rd party UART devices in Lua sandbox.
- Expose
set_pin_io_mode
to Lua (feature request from forum use @JoeHou)
- Finalize AMQP removal. MQTT is the only transport now.
- Begin transition back to MQTT from AMQP (ping channel only)
- Nerves system upgrade
- Bug fix for self-hosted image uploads.
- Support for new LUA block
- Numerous fixes to Lua VM (formulas, ASSERT block, LUA block)
- Ability to access sequence variables within LUA block (via
variables.parent
)
Bug fixes:
- SD card errors from log overflow (limit log buffer to 1000 logs max).
- app crashes if user accidentally installs very old / incompatible Farmwares.
- prevent firmware handler crashes on unexpected or timed out messages.
- WiFi-related app crashes on certain networks.
- Improve remote error reporting.
- Improve captive portal performance on certain platforms.
- Require explicit call to
read_status()
to update farmware state information.
- Fix farmware bug where farmware system reports stale version of bot state.
- Firmware debug log removal
- Performance updates for Express devices
- Fix firmware bug where
report_position_change
was erroneously reported as an error. - Dependency upgrades
- Firmware debug log removal
- Performance updates for Express devices
- Fix firmware bug where
report_position_change
was erroneously reported as an error.
- Legacy component removal.
- Upgrade OS-level dependencies.
- Add support for USB Ethernet adapters (for Express users with WiFi trouble)
safe_height
andsoil_height
support for MOVE block.- Bug fix relating to auth errors after > 40 days of uptime.
- See release notes for 12.0.0
- Migrate OTA system to an in-house solution.
- Express v1.0 firmware updates.
- Fix bug where sequences would crash when a
coordinate
is passed as a variable (Thanks, @jsimmonds2).
- Interim release to transition devices to new in-house OTA system
- Bug fix related to usage of tools in MOVE block.
- Interim release to transition devices to new in-house OTA system
- Auto sync is now mandatory.
- Ability to use Lua expressions for movement
- Ability to set "variance" to movement commands
- Ability to use axial overrides
- Ability to perform axis addition
- "Safe Z" feature
- Remove CeleryScript unused variable warnings in terminal
- Ability to set speed for an individual axis (rather than all axes)
- Improve accuracy of runtime telemetry (Thanks, @Jsimmonds2)
- Add colors and labels to configurator WiFi signal strengths.
- Remove unused variable warning from SSH logs.
- Fix bug affecting OTAs of Express devices.
- See changelog for 10.1.5
- Express v1.0 firmware homing updates.
- Add warning to configurator credentials page.
- Fix bug where configurator would not restart when bad credentials were entered.
- Fix missing
firmware_path
bug.
- Express v1.0 firmware updates.
- Regimen Farm Event scheduler fixes.
- Changes to TTY to allow use of DIY boards
- Upgrade underlying OS for RPi3 Nerves system (
ERL_CRASH_DUMP_SECONDS=-1
)
- Internal upgrades to underlying OS
- Bug fix to prevent firmware reset issues when MCU becomes unresponsive
- Fix for Genesis v1.5 firmware bug.
- Deprecate
resource_update
RPC - Introduce
update_resource
RPC, which allows users to modify variables from the sequence editor. - Genesis v1.5 and Express v1.0 firmware updates.
- Fix a bug where FBOS would not honor an "AUTO UPDATE" value of "false".
- Fix firmware locking error ("Can't perform X in Y state")
- Removal of dead code / legacy plus numerous unit test additions.
- Added coveralls test coverage reporter
- Unit test additions (+2.7% coverage 🎉)
- Updates to build instructions for third party developers
- Bug fix for criteria-based groups that have only one filter criteria.
- Bug fix for express bots involving timeout during remote firmware flash
- Remove VCR again (for now)
- Increase farmware timeout to 20 minutes (use at own risk)
- Improve firmware debug messages.
- Remove confusing firmware debug messages, such as "Error OK".
- Improved camera support on FarmBot express.
- Bug fix to prevents OTA updates occurring when one is already in progress.
- Support for criteria-based groups.
- Genesis v1.5 and Express v1.0 firmware homing updates.
- Fix bug where unknown positions would report as -1.
- Genesis v1.5 and Express v1.0 firmware updates.
- Bug fix for movement error reporting
- Improved firmware error message reporting
- Improved support for gantry mounted tools.
- Genesis v1.5 and Express v1.0 firmware updates.
- Improved support for new FarmBot Express models
- Various firmware bug fixes for Express models.
- Bug fix for slow Farmware execution (Thanks, @jsimmonds2)
- Dependency upgrades
- Upgrade VintageNet (networking library)
- Removal of
dump_info
RPCs - Numerous internal improvements, such as increasing test coverage and changing dependency injection scheme.
- Fix issue where firmware commands would be tried too many times.
- Bug fix for slow Farmware execution (Thanks, @jsimmonds2)
- Dependency upgrades
- Upgrade VintageNet (networking library)
- Removal of
dump_info
RPCs - Numerous internal improvements, such as increasing test coverage and changing dependency injection scheme.
- Dependency updates
- See notes for 9.0.1.
- Routine token updates on Circle CI.
- Fix bugs that were causing devices to erroneously factory reset under some circumstances.
- Run updates on Nerves systems.
- Updates to the way
set_servo_angle
is handled. - Fixes rip0 firmware flash issues.
- Bug fixes
- fix Farmware causing sequences to exit
- fix
arduino_debug_messages
fbos_config field being ignored - fix
espeak
not working - add
name
parameter back to image uploads
- Enhancements
resource_update
command can now update:- device.mounted_tool_id
- GenericPointer.*
- Features
- Farmbot will now check for an hour in which to apply over the air updates
- Bug fixes
take-photo
will now send a log- having multiple instances of the app open won't cause sync errors
- Bug fixes
- Fix race condition in executing farmwares
- Features
- Add timer to reset
firmware_input_log
andfirmware_output_log
after 5 minutes - Add a back off timer for flashing firmware
- Add timer to reset
- Bug fixes
- Fix issue where opencv would error. Most notably in take-photo
- Features
- Add telemetry to app. Telemetry data is now streamed to AMQP
- Add log messages containing iteration context for looped sequences and events
- Add support for EAP networks back
- Bug fixes
- Fix bug where farmbot could not execute the following commands
- home
- calibrate
- Fix bug where farmbot could not execute the following commands
- Features
- PointGroups are now supported by farmbot os
- Sequence, FarmEvent, and Regimens can now enumerate over PointGroups
- Bug fixes
- Fixed a arduino-firmware bug when sending commands that are bigger than the buffer
- Bug fixes
- Fix the
move_absolute
step to honor speed parameter correctly
- Fix the
- Features
- Add new firmware params to support trinamic motor drivers
- Bug fixes
- Fix farmware sometimes hanging sequences
- Fix the
mark_as
step
- Updated dependencies
nerves_hub
nerves_runtime
- Updated log messages
- Configuration changes now log human readable names
- Firmware changes now log human readable names
- Bug fixes
- Fix farmbot ignoring
movement_invert_2_endpoints
params
- Fix farmbot ignoring
- Updated log messages
- AMQP connection log should be less noisy on first boot
- Farmware installation logs will be more condensed
- Enhancements
- Syncing LED blink speed increased
- Reorganize project structure
- Split original single application into multiple OTP applications:
farmbot_celery_script
- CeleryScript compiler and friendsfarmbot_firmware
- Interaction with the motor controllerfarmbot_core
- Main database access and other workersfarmbot_ext
- Extra, mostly networked functionalityfarmbot_os
-Nerves
Framework
- Refactor global process initialization
- Refactor networking for increased reliability
- Refactor CeleryScript to support run-time variables
- Preliminary support for raspberry pi 0
- Update to AMQP to disable
heartbeat
timeouts
- AMQP now reconnects immediately after an unexpected disconnect
- Misc Configurator UI updates
- Fix typo causing custom dns servers to be ignored.
- Update Configurator UI
- Update Farmbot-Arduino-Firmware to 6.4.2
- Fix bug in decoding of CeleryScript
- Fix bug causing the stubbed Firmware implementation to crash
- Initial support for WPA-EAP networks.
- Increase NervesHub reconnect timer to not waste CPU time.
- Update Farmware packages
- Python 3
- OpenCv 3
- Add SensorReadings when
read_pin
is executed.
- Fix race condition after getting time which broke self hosting users.
- Add retry mechanism for fetching a token.
- Farmbot will now try 5 times to fetch a token.
- Fix bug causing static ip settings not to work.
- Enable
multi_time_warp
which should hopefully compensate for time skew. - Migrate OTA system to NervesHub
- Add SSH back.
- Fix bug during configuration causing bots to maybe not connect.
- FarmBot will now try to emergency lock the firmware on powerdown and reset.
- Fix bug causing FarmBot not to reconnect to WiFi.
- Add fields to
informational_settings
:uptime
secondsmemory_usage
megabytesdisk_usage
percent
- Skipped due to release failure.
- Add feature to save logs to sd card for debugging.
- Fix bug causing long running Farmwares to fail.
- Make sure to clear eeprom before flashing Arduino firmware.
- Update Linux system layer.
- Make sure not to crash if a wifi network is malformed.
- Fix DNS server config for self hosters.
- Add new field to
informational_settings
:currently_on_beta
. - Reindex farmware on bot_state crash.
- Add new RPC to reinitialize Firmware
- Tweak PinBinding debounce timeout.
- Update Linux system layer to fix sound.
- Fix Firmware syncing applying every setting.
- Optimize AMQP connection.
- Sync PinBindings with the API.
- Add new field on
informational_settings
:soc_temp
. - Add new field on
informational_settings
:wifi_level
. - Add new RPC
dump_info
that collects some info helpful for bug reports. - Add
BoxLed3
andBoxLed4
towrite_pin
. - Implement new LED subsystem.
- Declare language and charset in Configurator to avoid localization issues.
- Add new Configurator fields for dns and ntp.
- Another attempt at catching broken sqlite3 lib.
- Update Linux system layer.
- Fix Ramps firmware build.
- Remove
hostapd
- Remove a lot of custom Logger code.
- Try to write the last 100 logs to a flash drive if one exists.
- Fix bugs in
send_message
block templating. - Add new farmware_tools package for plugins.
- Beta updates should always try to flash firmware.
- Bump Nerves and friends to 1.0.0.
- Add new firmware params:
movement_invert_2_endpoints_<x|y|z>
. - Add new rpc:
set_pin_io_mode
. - Clean up positions in logs.
- Update Configurator to support more control over network setup.
- Add mdns to development setups.
- Remove use of
iw
. - Add checks for uart auto detector.
- Syncing a sequence reindexes running regimens that require it.
- Update logs to no longer use the
meta
field. - Update Timed Estop messages to use the
fatal_email
channel. - Regimens will now persist reboots.
- Add support for Raspberry Pi 3 B+.
- Add new package
pyserial
.
- Fix bug causing FarmEvents not to work.
- Update system update system.
- Rename and refactor external resources internally so they are more readable in the codebase.
- Write tests for new system.
- Implement the new "Flat" CeleryScript representation.
- Add ability to log into a new account without rebooting into Configurator.
- Firmware settings are now synced with Farmbot API.
- Add third Firmware board.
- Fix bug causing false positives on sync failure.
- Fix bug causing a captive portal staying up if the user chooses a wired network connection.
- Fix bug that prevented a user from configuring network credentials.
- Fix bug that would halt bootup if a PinBinding is high during boot.
- Add new syncable
Sensor
. - Add new celeryscript node
NamedPin
. - Add new args:
pin_id
pin_type
- allow
pin_number
to be newNamedPin
node. - allow to use
NamedPin
in:ReadPin
WritePin
If
- Fix Bug breaking diy builders with Arduinos showing up other than
/dev/ttyACM0
.
- Farmbot Settings are now synced with Farmbot API.
- Refactor Syncing to not make unnecessary HTTP requests.
- Estop status is now much faster.
- Add dns checkup for users with factory resetting disabled to make tokens refresh faster.
- Opting into beta updates will refresh farmbot's token.
- Fix fw hardware being reset on os upgrade.
- Bump arduino-firmware version to 6.0.1
- Fix bug that caused the "update" button on the frontend to give an error log.
- Fix flashing
beta
channel updates. - Add feature to send user an email if the bot has been e-stopped for 10 minutes.
- Add feature to
espeak
logs. - Set
busy
a little earlier making the bot seem snappier. - Fix
tzdata
bug for real this time. - Update Arduino Firmware.
- Remove all the migration code to safely get from 5.0.x to 6.0.1.
- Clean up and upgrade dependencies.
- Fix bug that could cause Image uploads to silently fail.
- Fix bug in
tzdata
that could cause the sdcard to fill up.
- Add feature auto sync.
- Add feature RPI GPIO.
- Refactor Configurator to not need Javascript/Webpack
- Add timer before network not found factory resets bot.
- Remove steps/mm conversion.
- Bundle new arduino-firmware.
- Replace MQTT with AMQP.
- Get rid of Log batching.
- Add verbosity level to every log message.
- Show position for log messages.
- Add many helpful log messages.
- Add feature to disable many log message.
- Add feature to log all arduino-firmware I/O.
- Migrated CI to CircleCI from TravisCI.
- Refactored FarmEvent Calendar generator.
- Fix a ton of little bugs.
- Add missing redis-py package for Farmware.
- Update underlying Linux System deps.
- Preparation for 6.x releases.
- Fix images double uploading.
- Allow reinstallation of first party farmware.
- Fix token refreshing.
- Fix lag when communicating over MQTT
- Don't retain last will log message.
- Update node packages.
- Add selector for firmware hardware to Configurator.
- Fix an OS update bug.
- Fix an image upload bug.
- Fix a farmware download bug.
- Fix a bug causing
busy
to be set erroneously. - add note to configurator for osx users.
- Fix not being able to move to a point in some cases.
- Fix a sub sequence never returning.
- add
busy
flag to the bot's state.
- add a progress bar to http client for downloads.
- Bundle new Arduino Firmware.
- Rewrite Farmware Handler again, to use HTTP/REST this time instead of STDIN/STDOUT.
- Add location_data to bot state. This includes encoder position.
- Add
jobs
field to bot state.
- fix bug in E-Stop
- bundle new Arduino Firmware
- overhaul HTTP adapter
- start fixing cross cutting concerns within the application
- Bundle new FW (01.13)
- Increase WiFi Stability
- Refresh auth token more frequently
- Clean up noisy log messages
- Clean up a ton of log messages causing RollBar problems.
- Finally rewrite the firmware uploader.
- Bump Firmware Version.
- Misc bug fixes.
- Bundle new FW
- Add Rollbar client
- Fix peripheral bug.
- Fix bug caused by Github changing their release api.
- Bundle a new FW fixing z axis and gravity.
- Fix a bug with unwanted Logs going to the frontend/backend.
- Rewrite Serial handler and bundle FW into the OS.
- Syncing is now a multiple request action and is now much faster and safer.
- change folder structure
- begin adding redis support.
- Configurator got a facelift + a few extra features.
- Logger bug fixes
- Farmware fixes
- Farmware initial concepts.
- implement bot state migrations
- logger fixes.
- Makefile
- a few minor bug fixes to the previous release.
- changed folder structure around
- moved farmbot_auth and farmbot_configurator back into an umbrella application
- begin migration to CeleryScript for all the things
- Multi Platform support
Configurator
looks great. thanks @MrChristofferson && @RickCarlino- Code base was converted to CeleryScript, so it is much more stable
- bot configuration is now based on a single (json) that is shared across platforms/targets