Building an incubator for Genspace's Open Plant project
Genspace in Brooklyn is the world's first community biology lab: a place where anyone can come and do real science. One of its community projects is Open Plant, which works with the liverwort Marchantia polymorpha. Marchantia is small, grows fast and is easy to genetically engineer, which makes it a great plant for bioengineering experiments. The Open Plant team has transformed it with fluorescent-protein genes and is exploring using it to produce insulin.
Marchantia grows in tissue-culture boxes, and it wants steady, cool conditions (around 16–19 °C) and a controlled light. So the project needs incubators.
Where it started
Nitin (nitin710) had built the project's incubators and written their control firmware. He explained to me how they work and how to build one, so I built a bigger one from scratch.
Music: “Galactic Rap” by Kevin MacLeod (incompetech.com), licensed under Creative Commons: By Attribution 4.0.
How it works
The incubator is an insulated foam box lined with reflective insulation. Inside, an ESP32 microcontroller runs everything:
- Temperature control. A sensor measures temperature and humidity. The controller keeps the temperature within ±2 °C of the setpoint (19 °C for Marchantia): above that band the fans switch on and run at full speed, below it they slow down and switch off, and in between they run at half speed.
- Light. A dimmable grow light, adjustable with a button on the controller.
- Fans. Two speed-controlled fans do the cooling, and the controller measures their actual speed (rpm).
- Display. A small screen shows the temperature, humidity, light level, fan speeds and whether the temperature is above, below or within the target range.
- Logging. Every 5 minutes, the readings are saved to an SD card (and on a Raspberry Pi).
The control loop runs entirely on the incubator itself, so if the Wi-Fi or the network goes down, the plants are still looked after.
Watching it from anywhere
The incubator also sends its readings over Wi-Fi (via MQTT) to a Raspberry Pi. On the Pi I built a small platform where you can see the current temperature and humidity, look back at the recorded history, and steer the incubator remotely: change the temperature setpoint (which drives the fans) and the light level.
Code
The firmware is on GitHub: nikolabukowiecka/openplant_incubator_fw, my fork of Nitin's original. My version adds the remote control and monitoring, the SD-card logging, and settings tuned for Marchantia.
The full build
The whole build, from the electronics to the enclosure to installing it at Genspace. This version is only here:
Music: “Galactic Rap” by Kevin MacLeod (incompetech.com), licensed under Creative Commons: By Attribution 4.0.
Thank you to Nitin for teaching me how to build it, and to the Open Plant team at Genspace.