Zoology + Industrial Automation

A vivarium is a living world inside an enclosure - a space designed to sustain life by recreating the conditions of a natural environment; plants and animals, warmth and light, in a deliberate harmony. Freya is built in response to the need for advanced, methodology-agnostic environmental orchestration in animal keeping; designed for simulating a specific environment through a purpose-build sensor and industrial automation standards for controlling actuators - and an open programming environment for implementing your methodology's control logic.

Radically open

Most products enforce a behavior and way of thinking through their user interface, giving the user just enough choice to create the illusion of agency and control. As part of the open appliance movement, Freya gives its users the tools to build actual freedom into their vivariums; allowing them to use it however they want - made possible by standing on the shoulders of the open-source community - putting weight in the balance for what standards one should expect surrounding specialized animal care.

Environment Simulation

Freya is a control system designed with the cybernetics control loop in mind. Important environmental variables - temperature, humidity, visible light, UV spectrum and more - are measured through the purpose-build sensor. The sensor data is presented to the control logic, which compares it to the desired goals and controls actuators - lights, heaters, misting pumps and more - accordingly through industry standard digital outputs provided to the system by the purpose-build hardware cartridge.

Functional diagram

Designed to Grow

A central idea of this project is continuous evolution; as our understanding of nature grows and information technologies keep getting better, we adapt. The possibility to make and share small, independent changes is build into every layer of the system.

Node-RED: Visual Control Flows

With compute delivered by Raspberry Pi, Node-RED is running locally on the device. This visual, low-code programming interface gives an intuitive real-time insight into the system's inner workings and allows for, essentially, limitless modifications - while making sharing your methodology implementation literally as simple as copy/paste. The FlowFuse's Dashboard 2.0 nodes give the project a familiar user interface for configuring and monitoring environmental parameters. Once configured and tweaked, the system is designed to disappear quietly from your mind, running reliably in the background.

Included in the project repository is a default flow, making use of Freya's Node-RED libraries; ideal as a starting point for exploring the system and making it your own.

I/O Architecture

Getting the sensor data from the vivarium into the flow, and from the flow back into the actuators. >>ToDo

Userspace Daemon: Managing the Hardware

Independent of whether an application is running, there are userspace daemons (systemd services) for managing the hardware components, exposing an API to D-Bus. While the sensor daemon has specific implementations for talking to the ICs through I2C, the D-Bus API is IC-agnostic - allowing for downstream compatibility of different sensor setups.

SDK Libraries: Language-specific DBus API implementations

Freya's control logic is built in Node-RED, which is using NodeJS. The project includes NodeJS libraries (available in NPM) for interacting through D-Bus with the daemons controlling the hardware, that are used by the custom Node-RED nodes representing the Freya hardware and enabling getting data from the sensors into the flow, and from the flow to the outputs.

Co-creation & Community

This project is designed to be an ongoing community dialog between zoologists/herpetologists and embedded/automation engineers, with an ever-evolving vivarium control system as anchoring point.

From an open modular hard- and software architecture designed to grow organically, down...

Read more »