March 24, 2021

The Role of Open Source in Agriculture

This is my fifth blog post for the UVA class LPPS 4720.

When you think of farming, you probably picture massive fields with acres of land and tons of heavy equipment. However, not all food needs to be grown this way—individuals can empower themselves to manage their own small-scale farming operations. Unlike companies such as Vision Robotics and Naio Technologies that develop and sell proprietary farming robots, FarmBot is a company completely built upon open-source principles—they sell products, but everything, including the building instructions for the robots and the software that they run on, is fully open-source. I believe that FarmBot’s business model and the technology it is built on represents the future of agriculture and their extreme transparency will give them an edge over their competitors in this emerging market.

As a Benefit Corporation, FarmBot as a company is legally required to stick to its mission and preserve the freedoms of its customers. This type of corporate entity is a fantastic option for companies that embrace the principles of open-source as it emphasizes purpose, accountability, and transparency. While regular public corporations are beholden to their shareholders, Benefit Corporations are beholden to their communities. This is an important distinction because shareholders can include Wall Street traders who do not always have the company’s best interests in mind. Instead of focusing on enriching shareholders, Benefit Corporations can better serve their customers which will lead to a more sustainable business model in the long-run. FarmBot is currently profitable and 2020 was its best year yet which is hopefully a good indication of the company’s future success.

FarmBot’s approach to hardware is completely transparent. While the company primarily makes money by selling its pre-built robots, they have zero restrictions on others taking their designs and building their own robots themselves without paying the company a penny. According to FarmBot’s website, “all of the CAD models, schematics, bill of materials, and more are freely available for everyone to view, copy, edit, and improve upon”, which “opens up a world of opportunities for students to explore fields like coding, makers to modify their FarmBot with 3D printing, and scientists to take full advantage of the platform”. While some may argue that this radical openness may hurt the company’s revenues, in the long-term this will massively benefit their ecosystem as contributions to the robots' designs will improve future versions of the robots and empower a new generation of loyal FarmBot customers who are deeply interested in the intersection between sustainable agriculture and engineering.

The primary piece of software that powers the individual robots is called FarmBot OS. According to the excellent developer documentation, “it uses the Nerves Framework to compile the source code into a single binary image and also handle low-level details such as cross-compilation and driver management”. DockYard claims that the main selling-point of Nerves is that it massively simplifies the platform by combining three components: platform, framework, and tooling. Nerves boots from a minimal Linux kernel straight into the BEAM VM to provide a fantastic cooperative scheduling concurrency framework that can handle millions of network requests (soft real-time) while also maintaining a high degree of fault-tolerance. Basically what this means is that the tiny computer on a FarmBot machine can process tons of data and API calls at once without hanging, and if there is an issue with the FarmBot software, the OS itself can restart the small process that is failing to see if that fixes the problem without the programmer needing to step in. This “Let it Crash” philosophy combined with the fault-tolerant capabilities of the BEAM leads to a highly robust FarmBot OS that can operate autonomously for months at a time without any problems. Nerves also makes it easy to update the OS—“because Nerves bundles entire applications into relatively small archives in terms of firmware images for full Linux systems, Farmbot can use NervesHub to send OTA updates more quickly and users can download them faster”. Instead of spending hundreds of hours manually writing all these features themselves and re-inventing the wheel, FarmBot developers can stand on the shoulders of giants and use Nerves to make writing software for embedded systems simple, scalable, and fun. I think that Nerves is the future of embedded device development and hopefully many other companies will use and contribute to this amazing technology as well.

© Samarth Kishor 2020

Powered by Hugo & Kiss.