Close

New Synchronization Architecture

A project log for FarmBot - Open-Source CNC Farming

FarmBot is an open-source CNC farming machine and software package built for small scale, hyper local, DIY food production.

rory-aronsonRory Aronson 07/18/2015 at 17:150 Comments

Since we started building the FarmBot web application, our method to synchronize data with the device has been as follows:

  1. The user opens up the web application in the web browser. When they do this, all of their scheduled sequences are loaded from the web application’s server into the browser.
  2. The user makes some changes to the scheduled sequences, which are saved in the web browser and also uploaded to the web application’s server.
  3. When the user pressed the sync button, the browser would upload all data directly to the FarmBot device.

This worked great for manual synchronization whenever the user was actively using the web application. However, this method did not support the FarmBot device synchronizing with the web application automatically without a browser session and the user.

Today we’re happy to announce that we’ve rolled out a new architecture for synchronizing data across the web application, the FarmBot device, and the user’s web browser. FarmBot now has the ability to synchronize schedules while the user is away from the browser. This is significant for upcoming features, such as the ability to adapt schedules to the weather conditions automatically. For manual synchronization it works as follows:

  1. The user opens up the web application in the web browser. When they do this, all of their scheduled sequences are loaded from the web application’s server into the browser.
  2. The user makes some changes to the scheduled sequences, which are saved in the web browser and also uploaded to the web application’s server.
  3. When the user presses the sync button, the browser tells the FarmBot device “Hey, you have a new package, go pick it up”. The FarmBot device then downloads the new schedule from the web application’s server.

Meanwhile, automatic synchronization works as follows:

  1. The FarmBot device is set to go check for new packages at the web application’s server at a certain time interval such as every hour.

This new architecture sets us up for a more automated and dynamic future of FarmBot control. Want to help us build the future of food production? Check out our web application repository on GitHub and stay tuned as we roll out more new features in the weeks to come.

Discussions