Edenworks Indoor Farming: A Crop of Data
How do we harvest the right insights as we harvest our products?
Edenworks was an indoor farming and manufacturing startup. Using aquaponics, the company grew fish that were the fertilizer source for greens. The fish grew in tanks and the greens grew in a series of ponds in vertical industrial racks. Bacterially produced, nitrogen-rich water circulated from fish to greens. The system used no artificial fertilizers or harmful insecticides, and the product was on store shelves the same day it was harvested.
Edenworks was a startup so it was constantly growing — both literally as a farm and metaphorically as an organization. It was effectively not only a farm but also a manufacturing facility.
With so many living things in an enclosed ecosystem and with so many operational processes, data was incredibly important. A core requirement was preventing mortality events. But, data also meant the opportunity for insights in quality problems, R&D projects, and optimized production.
I orchestrated the creation and operation of the data infrastructure for Edenworks’ many needs and various users. This involved a team of four as well as a variety of sensors, embedded systems, enterprise & web applications, networks, databases, alarms, dashboards, analytics reports, and data exploration facilities.
My work was expansive. This case study focuses on the environmental data system. To be clear, there were also similar and interconnected business data, operational, and information technology systems not discussed here.
My contributions to developing Edenworks’ environmental data infrastructure fell in four buckets:
Leading the Software & Electronics team
Strategy, user discovery, and requirements
Software development & hardware bringup processes
Developing custom software
Interaction design + information architecture
Firmware for embedded hardware
Systems-level applications for data handling
System administration — Docker, Linux, NGINX, various web apps, OAuth2, etc.
Leading data and sensor systems operations and maintenance
Sensor node application — C++ on ATmega2560, i2c, RS485/Modbus, and MQTT with a telnet-based command line for sensor calibration and administration functions
Continuous Integration build system — Docker, Git, SCons, avr-gcc toolchain, valgrind, Google Test
Deployment system — Docker container generated by build system + avrdude + ser2net + USB
FarmManager — Hybrid local Linux + cloud-based data handling system
Custom components written in Go
Assembly of 15+ Docker containers for web apps, databases, backup, and monitoring systems
Farmbot — Slack-based app written in Go for system management and raw data queries
Django-based custom manual environmental measurements entry web app
InfluxDB-based time-series data handling stack
PagerDuty-based environmental and I.T. infrastructure alarms
Environmental conditions alarms
Power loss & 3 phase power disruption alarms
Internet connectivity alarm
FarmHand internal logging alarms
Grafana-based dashboards for production, testing, and calibration data
Power BI-based reports synthesizing business and environmental data
NGINX: Intranet, reverse-proxies for web applications, and OAuth2 access management via GSuite
At its peak, the environmental data infrastructure I worked to produce processed 10 types of sensor readings at 50+ sites yielding 10,000,000+ data points a month.
Farmers had alarms and dashboards to manage day-to-day work while the engineering and business teams had ready access to large volumes of data through further dashboards and reports. All users had access to a variety of web applications and data exploration interfaces.
We were invited to participate in the Beta of the InfluxData’s next generation of products. Similarly, because of our creative use of their product, PagerDuty highlighted Edenworks at their PagerDuty Summit 2019 and co-authored an integration guide with us.
See the gallery below for some of the equipment involved, various software screenshots, and more.
Open each image for a larger view and a detailed caption. The following depict only a portion of the larger data collection, analytics, and information technology systems touched on above.