farmbot_os/CHANGELOG.md

14 KiB

Changelog

10.0.0

  • 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".

9.2.2

  • 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)

9.2.1

  • 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 occuring when one is already in progress.

9.2.0

  • Support for criteria-based groups.
  • Genesis v1.5 and Express v1.0 firmware homing updates.
  • Fix bug where unknown positions would report as -1.

9.1.2

  • 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.

9.1.1

  • Genesis v1.5 and Express v1.0 firmware updates.

9.1.0

  • 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.

9.0.4

  • 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.

9.0.3

  • Dependency updates

9.0.2

  • See notes for 9.0.1.

9.0.1

  • Routine token updates on Circle CI.
  • Fix bugs that were causing devices to erroneously factory reset under some circumstances.

9.0.0

  • Run updates on Nerves systems.
  • Updates to the way set_servo_angle is handled.
  • Fixes rip0 firmware flash issues.

8.2.4

  • Bug fixes
    • fix Farmware causing sequences to exit
    • fix arduino_debug_messages fbos_config field being ignored
    • fix espeak not working
    • add name paramater back to image uploads
  • Enhancements
    • resource_update command can now update:
      • device.mounted_tool_id
      • GenericPointer.*

8.2.3

  • 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

8.2.2

  • Bug fixes
    • Fix race condition in executing farmwares

8.2.1

  • Features
    • Add timer to reset firmware_input_log and firmware_output_log after 5 minutes
    • Add a back off timer for flashing firmware
  • Bug fixes
    • Fix issue where opencv would error. Most notibly in take-photo

8.2.0

  • 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

8.1.1

  • Bug fixes
    • Fix bug where farmbot could not execute the following commands
      • home
      • calibrate

8.1.0

  • 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

8.0.4

  • Bug fixes
    • Fix the move_absolute step to honor speed parameter correctly

8.0.3

  • Features
    • Add new firmware params to support trinamic motor drivers
  • Bug fixes
    • Fix farmware sometimes hanging sequences
    • Fix the mark_as step

8.0.2

  • 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

8.0.1

  • 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

8.0.0

  • Reorganize project structure
  • Split original single application into multiple OTP applications:
    • farmbot_celery_script - CeleryScript compiler and friends
    • farmbot_firmware - Interaction with the motor controler
    • farmbot_core - Main database access and other workers
    • farmbot_ext - Extra, mostly networked functionality
    • farmbot_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

7.0.3

  • Update to AMQP to disable heartbeat timeouts

7.0.2

  • AMQP now reconnects immediately after an unexpected disconnect
  • Misc Configurator UI updates

7.0.1

  • 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 implemenation to crash

7.0.0

  • Initial support for WPA-EAP networks.
  • Increase NervesHub reconnect timer to not waste CPU time.
  • Update Farmware packages
    • Python 3
    • OpenCv 3

6.4.13

  • Add SensorReadings when read_pin is executed.

6.4.12

  • 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

6.4.11

  • 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 seconds
    • memory_usage megabytes
    • disk_usage percent

6.4.10

  • Skipped due to release failure.

6.4.9

  • Add feature to save logs to sdcard for debugging.
  • Fix bug causing long running Farmwares to fail.
  • Make sure to clear eeprom before flashing Arduino firmware.
  • Update Linux system layer.

6.4.8

  • Make sure not to crash if a wifi network is malformed.

6.4.7

  • Fix DNS server config for self hosters.
  • Add new field to informational_settings: currently_on_beta.
  • Reindex farmware on bot_state crash.

6.4.6

  • Add new RPC to reinitialize Firmware
  • Tweak PinBinding debounce timeout.
  • Update Linux system layer to fix sound.

6.4.5

  • Fix Firmware syncing applying every setting.

6.4.4

  • 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 and BoxLed4 to write_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.

6.4.3

  • Fix Ramps firmware build.

6.4.2

  • 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.

6.4.1

  • 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.

6.4.0

  • Update logs to no longer use the meta field.
  • Update Timed Estop messages to use the fatal_email channel.
  • Regimens will now persist reboots.

6.3.2

  • Add support for Raspberry Pi 3 B+.
  • Add new package pyserial.

6.3.1

  • Fix bug causing FarmEvents not to work.

6.3.0

  • 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 new NamedPin node.
  • allow to use NamedPin in:
    • ReadPin
    • WritePin
    • If

6.2.1

  • Fix Bug breaking diy builders with Arduinos showing up other than /dev/ttyACM0.

6.2.0

  • 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.

6.1.2

  • Fix fw hardware being reset on os upgrade.
  • Bump arduino-firmware version to 6.0.1

6.1.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.

6.1.0

  • 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.

6.0.1

  • 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.

5.0.9

  • Add missing redis-py package for Farmware.

5.0.8

  • Update underlying Linux System deps.
  • Preperation for 6.x releases.

5.0.6

  • Fix images double uploading.
  • Allow reinstallation of first party farmware.

5.0.5

  • Fix token refreshing.

5.0.4

  • Fix lag when communicating over MQTT
  • Don't retain last will log message.
  • Update node packages.

5.0.3

  • Add selector for firmware hardware to Configurator.
  • Fix an OS update bug.
  • Fix an image upload bug.
  • Fix a farmware download bug.

5.0.2

  • Fix a bug causing busy to be set erroneously.
  • add note to configurator for osx users.

5.0.1

  • 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.

5.0.0

  • 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.

4.0.1

  • fix bug in E-Stop

4.0.0

  • bundle new Arduino Firmware
  • overhaul HTTP adapter
  • start fixing cross cutting concerns within the application

3.1.6

  • Bundle new FW (01.13)
  • Increase WiFi Stability
  • Refresh auth token more frequently
  • Clean up noisy log messages

3.1.5

  • Clean up a ton of log messages causing RollBar problems.
  • Finally rewrite the firmware uploader.
  • Bump Firmware Version.
  • Misc bug fixes.

3.1.4

  • Bundle new FW
  • Add Rollbar client

3.1.3

  • Fix peripheral bug.

3.1.2

  • Fix bug caused by Github changing their release api.

3.1.1

  • Bundle a new FW fixing z axis and gravity.

3.1.0

  • Fix a bug with unwanted Logs going to the frontend/backend.

3.0.8

  • Rewrite Serial handler and bundle FW into the OS.

3.0.6

  • Syncing is now a multiple request action and is now much faster and safer.
  • change folder structure
  • begin adding redis support.

3.0.5

  • Configurator got a facelift + a few extra features.

3.0.4

  • Logger bug fixes

3.0.3

  • Farmware fixes

3.0.2

  • Farmware initial concepts.

3.0.1

  • implement bot state migrations
  • logger fixes.

3.0.0

  • Makefile

2.1.10

  • a few minor bug fixes to the previous release.

2.1.9

  • 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