Automated imaging of microbial plates: Raspberry Pi controller, web UI, and reference assets
Project description
Automator: automated imaging of microbial plates
Automator is an open-source system for real-time automated imaging, tracking, and analysis of microbial plates, integrating motion control, camera acquisition, and scheduling on Raspberry Pi hardware using Klipper, Moonraker, and a custom Python-based controller and web interface.
This package is the installable distribution of the Automator controller and its reference assets — for the full source repository, contributor guidelines, and changelog, see https://github.com/rotsl/Automator.
Install on a new Raspberry Pi
1. System prerequisites (Raspberry Pi OS lite 64-bit)
sudo apt update
sudo apt install -y \
python3 python3-venv python3-dev \
libcamera-dev libcamera-apps v4l-utils \
libjpeg-dev libpng-dev libatlas-base-dev
2. Create a virtual environment and install the package
python3 -m venv venv_clean
source venv_clean/bin/activate
pip install --upgrade pip
pip install automator-tsl[pi]
The [pi] extra pulls in the Raspberry-Pi-only hardware dependencies (picamera2, RPi.GPIO, gpiozero). Omit it if you're only inspecting the bundled documentation/templates on a non-Pi machine.
3. Fetch the plate-detection model
The YOLO ONNX model used for plate detection is not bundled in this package (to keep it small) — fetch it from Hugging Face after install:
automator-fetch-model
This downloads bestnew.onnx from rotsl/petri_dish_yolo and places it at ~/Automator/data/bestnew.onnx.
Integrity check: the download is verified against a pinned SHA-256 digest before being copied into place. If the file has been tampered with or the upstream model has changed unexpectedly, the command will exit with an error and remove the file automatically.
4. Generate security keys, configure Klipper/Moonraker, and start the controller
Follow the full installation steps in HandOver.md, then start the controller:
python -m dev2.maincontroller
Full documentation
The complete documentation site, including the step-by-step user guide, admin/maintainer handover, and run book, is published at:
https://rotsl.github.io/Automator/
In this package
Alongside the Python code, this package installs a copy of the project's reference assets under share/automator/ in your environment's install prefix:
share/automator/data/—calibration.json(camera calibration reference)share/automator/raw/— runtime state directory (created empty on install)
License
This package bundles software (MIT License), hardware design references (CERN Open Hardware Licence v2 - Strongly Reciprocal), and documentation (CC BY 4.0). See LICENSE for the full breakdown by component, and LICENSE-MIT, LICENSE-CERN-OHL-S, LICENSE-CC-BY-4.0 for the individual license texts (all included with this package).
Recommended citation
@software{R_Automator_Automated_Imaging_20252026,
author = {R, Rohan},
title = {{Automator: Automated Imaging of Microbial Plates}},
url = {https://github.com/rotsl/Automator},
year = {2025–2026}
}
Institutional note
This package as part of the main repository represents research automation tooling developed at The Sainsbury Laboratory, Norwich.
It is provided as-is for research and engineering use and is not a certified laboratory instrument unless approved by the institute.
Users are responsible for:
- validating the system for their experimental context
- complying with local safety, electrical, and biological regulations
- ensuring appropriate risk assessments are in place
🦠 Built for reproducible research automation.👨🔬
“Make the instrument part of the method.”
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file automator_tsl-1.0.0.tar.gz.
File metadata
- Download URL: automator_tsl-1.0.0.tar.gz
- Upload date:
- Size: 2.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f6d897c2452445de08a01b7479d1d06537d39eb236e28d9066de4a8e4bee7d0
|
|
| MD5 |
b2d80ea0d44d2272d8be703c68cb5c63
|
|
| BLAKE2b-256 |
269471df251e73d60eb5917b6040ff14ff4288267e0d72d50abb5e470461054d
|
Provenance
The following attestation bundles were made for automator_tsl-1.0.0.tar.gz:
Publisher:
release-pypi.yml on rotsl/Automator
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
automator_tsl-1.0.0.tar.gz -
Subject digest:
2f6d897c2452445de08a01b7479d1d06537d39eb236e28d9066de4a8e4bee7d0 - Sigstore transparency entry: 1968245833
- Sigstore integration time:
-
Permalink:
rotsl/Automator@46a0ee93cefdef00c8a21623323876a5d398dc3c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/rotsl
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@46a0ee93cefdef00c8a21623323876a5d398dc3c -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file automator_tsl-1.0.0-py3-none-any.whl.
File metadata
- Download URL: automator_tsl-1.0.0-py3-none-any.whl
- Upload date:
- Size: 2.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1987fc841a6a9e1c5de18899642beb2a500bb3ca80aba89229c948e1f1475b02
|
|
| MD5 |
3e21d441113eb87f6dd6a8543b6402e6
|
|
| BLAKE2b-256 |
1e6d141f9783d3c6dea887431913ae11520a2459fab5f56cc2620410f5f1c8a4
|
Provenance
The following attestation bundles were made for automator_tsl-1.0.0-py3-none-any.whl:
Publisher:
release-pypi.yml on rotsl/Automator
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
automator_tsl-1.0.0-py3-none-any.whl -
Subject digest:
1987fc841a6a9e1c5de18899642beb2a500bb3ca80aba89229c948e1f1475b02 - Sigstore transparency entry: 1968245918
- Sigstore integration time:
-
Permalink:
rotsl/Automator@46a0ee93cefdef00c8a21623323876a5d398dc3c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/rotsl
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@46a0ee93cefdef00c8a21623323876a5d398dc3c -
Trigger Event:
workflow_dispatch
-
Statement type: