How etce-lab/mushr works
MushR is a modular mushroom cultivation, imaging, maturity-detection, and harvesting system. The principal workflow is: grow-chamber operation produces mushrooms; scheduled Raspberry Pi capture selects cameras and stores images; image recognition estimates maturity; that result guides pneumatic or motorized harvesting. The repository also documents smart-plug/environment setup, dataset creation, a Digital Twin integration, and lifecycle calculations. Source sampling confirms camera multiplexing, brightness gating, and joystick-driven blade control; recognition, chamber automation, and orchestration links are therefore shown only where documented, with uncertain integrations dashed.
Components 17
Cultivation
- Grow Chamber
growchamber-setup - Smart Plugs
growchamber-setup/smartplugs
Imaging
- Capture Orchestrator
automated-image-capture/mushrimager.py - Brightness Gate
automated-image-capture/mushrimager.py - Camera Multiplexer
automated-image-capture/arducam_multicamera.py - Camera Array
- Image Dataset
Recognition
- Maturity Model
- Digital Twin
Harvesting
- Joystick Controller
pneumatic-harvesting/joystick_control.py - Joystick Hardware
- Pneumatic Cutter
pneumatic-harvesting - Motorized Harvester
motorized-harvesting
Analysis
- LCA Workbooks
lca-calculations
Other components
- Grow Operator
- Hourly Scheduler
- Raw Image Dataset
Connections 15
- Grow Operator → Grow Chamber: operates
- Grow Operator → Smart Plugs: configures
- Hourly Scheduler → Capture Orchestrator: starts
- Capture Orchestrator → Brightness Gate: checks light
- Brightness Gate → Camera Multiplexer: captures probe
- Capture Orchestrator → Camera Multiplexer: captures images
- Camera Multiplexer → Camera Array: selects camera
- Camera Multiplexer → Image Dataset: writes images
- Image Dataset → Maturity Model: provides images
- Maturity Model → Digital Twin: reports maturity
- Maturity Model → Pneumatic Cutter: guides harvest
- Maturity Model → Motorized Harvester: guides harvest
- Joystick Hardware → Joystick Controller: provides input
- Joystick Controller → Pneumatic Cutter: drives blade
- Image Dataset → Raw Image Dataset: accumulates images