We've been hard at work the last few months working on a ton of new features, refactoring old code, and hardening the codebases up and down the stack. Here is a breakdown of what we have accomplished recently:
The Web App
- Now features continuous integration so that we can deploy faster and more often. This allows us to spend more time developing features rather than doing dev ops. It also allows us to test new features and fixes faster and more often.
- Sequences and regimens now have a user adjustable color so you can make all of your watering regimens blue, all of the planting sequences green, all of the tool sequences orange, or whatever makes sense to you.
- The webcam widget now stores a custom URL so you can add any webcam stream you want to your dashboard.
- You can now create Regimens on the web app (support on the Raspberry Pi is coming soon). Regimens allow you to schedule sequences based on the age of a plant. That means you can make a regimen to take care of a plant throughout its entire life, and then re-use that regimen for all instances of that crop.
- We've readied the app for internationalization, which means that it will soon be available in many more languages other than English. Stay tuned for a call for translation help :)
- The farm designer plants are now represented by the appropriate crop icon (about 30 icons exist so far).
- The farm designer is now integrated with OpenFarm.cc so that any crop in the OpenFarm database can be searched for and selected for placement on the map.
- Dropdown widget help text, improved navigation UI, users now stay logged in for up to 30 days, and countless other stability improvements.
- We've completely rebuilt the Raspberry Pi Controller using Elixir with the Nerves framework. Using Elixir allows the controller to be more reliable, hot reload updates, and all around have better performance compared to our old controller. You can now push over-the-air updates to the Pi Controller and the Arduino Firmware by clicking one button from the web app, and soon enough we'll have an auto-update toggle so you never even have to press the button to stay up to date with the latest features.
- There is now a functioning wifi-configurator app that makes connecting your FarmBot to your home wifi network and web app profile a breeze. No SSH or external screen and keyboard required - simply use your smartphone or laptop to configure FarmBot.
- The new controller and wifi configurator are actually bundled into an entire OS build process which means with one command you can create a ready-to-rock FarmBot OS .img file for flashing onto an SD card. This build process includes all of the FarmBot software so you no longer have to use an external keyboard and monitor and hours of your time to prepare the Raspberry Pi. Soon we'll be regularly publishing OS builds so you can just download the latest image file, flash it, and fire up your FarmBot right away for configuration.
FarmBot Arduino Firmware
- Now in beta: closed loop feedback control with rotary encoders. This is important so that FarmBot knows when something has gone wrong (such as a vine getting in its way) and it can alert you to investigate the problem. Without this feature, FarmBot's motors could stall and then it could go and accidentally destroy the whole garden.
- There is now a pin watchdog feature which prevents the arduino from keeping any peripheral on for too long of a time, which could be dangerous.
Computer Vision (in beta)
- FarmBot's built-in camera can now experimentally auto-calibrate itself and map image pixels to coordinates within the FarmBot system.
- Experimentally locate the tool bay and tools by using red markers and some image processing.
- Experimentally detect all plants in the bed so that they can be marked for removal when they are determined to be weeds.
There are many things still left to do and we have some wildly cool ideas for the future of the FarmBot software ecosystem. Here are a few of the immediate goals that we hope to have released in the next few months:
- Regimens at the Pi level
- Third party script execution on the Pi (for image processing and other capabilities) and the ability to call a script from a Sequence
- Bring back Events (formerly known as Schedules) for scheduling Sequences like calendar events (one-time or on a repeating basis)
- Custom Sequence Step names so you can make your Sequences easier to read, your Logs more usable, and the status ticker more descriptive so you know exactly what your FarmBot is doing at all times.
- Device settings stored in the API and synced with the device
- Customizable tools and peripherals widget for creating new and editing existing labels and pin numbers
- Drag and drop Sequence Steps for a faster and more fun sequence creation and editing experience
- Plant objects at the Pi level
- Ability to reference Plant coordinates in a sequence
- Sequence parameters, and the ability for child Sequence Steps to reference them
- Regimen parameters, and the ability for child Sequences to reference them
- Plant Groups
Want to get involved? Drop in to GitHub to check out our repositories
and help out where you can!