MushR – A Smart, Automated and Scalable Indoor Harvesting System for Gourmet Mushrooms


The MushR project aims to close the gap between the usage of digital tools and modular, adaptable micro-farming and agricultural systems. It introduces four innovative novelties extending the state of the art of gourmet mushroom production, facilitating process automation, more sustainable mushroom provision, increased yield and improved quality of harvested mushrooms. The project proposes a modular and scalable gourmet mushroom growing and harvesting system using an image recognition setup that detects when and which mushrooms are ready to be harvested in combination with an automated mushroom harvesting mechanism for harvesting the mushrooms.

The mushrooms are grown in a sensor-array controlled growing chamber similar to traditional industrial mushroom farms. However, instead of using non-reusable plastic bags, the mushrooms are grown in reusable mushroom pods, which are linked to a digital twin. The growth status and the health of the mushrooms are regularly checked via cameras. The camera input is processed by a Mask R-CNN model to detect whether the mushrooms are ready to be harvested or not. The later integrated automated harvesting system will then be activated towards carrying out its task. Finally, the mushrooms are ready for consumption, and the mushroom pods remain in the growing chamber.

Our Grow Chamber Setup

We setup two identical Grow Chambers in our lab in Goslar (Germany).


Humidification system maintains ~85-90% relative humidity.


Maintains ~20°C at all times.


Ensures fresh air inside the chamber.

Hourly automated image capture

Three 120° wide angle cameras per growth chamber. The humidification system is automatically turned off five minutes in advance to avoid “foggy” images.

Digital Twins for Mushroom Production

We also modeled all stages of the production process into these digital twins: 1.) Substrate and Spawn production, 2.) Inoculation, 3.) Fruiting, and 4.) Harvesting. 

The MushR DigitalTwin API allows retrieval for the state of the entire production environment at any previous instance in time. We also created graph visualizations for displaying and interacting with various assets. For instance, location-based provenance information can be retrieved to know the history of substrates fruiting in each Grow Chamber. We can also display the species provenance information for substrate, spawn, flushes, mushroom harvests, etc.

AI Maturity Detection

We aimed to develop an AI model that infers the maturity of the growing mushrooms from the images captures from inside the tents. However, there are no openly available datasets for training image-based CNN models. Thus, we decided to make our own, by taking hourly images from six cameras inside our grow chambers, over a period of eight months. We then trained a Mask R-CNN instance segmentation model on the annotated dataset, which achieved a training accuracy of 91.72%.

Dataset on KaggleTrained Model on Github


We developed two prototype harvesting mechanisms that can be automated in the future, and used in conjunction with our maturity detection model.

Motorized Harvesting

The figure to the left shows the major components of the developed motorized harvesting system, which consists of a stainless steel cylinder (C) with fruiting holes suspended from the ceiling of a stool constructed using item profiles. The cylinder contains a plastic bag filled with a substrate for oyster mushroom growth. These holes on the cylinder aligned with the perforation in the plastic bag, allowing the mushrooms to emerge and grow. A 3D-printed lid (L), matching the diameter of the cylinder, seals the bottom to prevent substrate spillage in case of damage to the bag. A stepper motor (S) is installed underneath the suspended cylinder to drive a 3D-printed plate, which vertically holds the blade (B). The plate is specifically designed to accommodate the motor, ensuring stability during rotation. 

The stepper motor initiates rotation, causing the blade to cut the mushrooms protruding through the holes in the cylinder. We program the motor to rotate in either direction to ensure successful harvesting. Adjustments such as sharpening the knife and modifying the motor’s speed can be made to optimize the system’s performance.

Pneumatic Harvesting

This system actuates a blade (B) which is mounted perpendicularly on a bi-directional pneumatic cylinder (C). The cylinder is set up to harvest oyster mushrooms growing from our developed mushroom pods. The pneumatic tubes T1 and T2 control the motion of the pneumatic cylinder. Depending on whether T1 or T2 is pressurized, the piston rod moves outwards or inwards from the cylinder, respectively. When both T1 and T2 are pressurized or depressurized, the piston is immobilized or free to move, respectively. 

For the purpose of harvesting, T1 and T2 must be pressurized and depressurized alternatively. This is accomplished by the 5/3-way solenoid valve (SV). Internally, two solenoids control the valves pressurizing T1 and T2. These solenoids are activated by 12-volt DC magnetic coils MG1 and MG2 . These coils are digitally controlled by 5-volt relay switches connected to a Raspberry Pi 4B, programmatically controlling the entire setup. 


General Github Repository


Digital Twin API


Mask-R CNN Modell 


Dataset on Kaggle