This is a small passion project of mine in which I implement a few automations to my Bresser Researcher Trino 40-1000x. A few design-goals are:
- Minimally intrusive in the sense that the changes to the microscope should be revertible as much as possible.
- The microscope should still be fully usable in the original (analogue) way.
The control electronics is split between two controllers. The low-level control is handled by an ESP32 microcontroller, with the stepping motors being driven by TMC2208 stepper drivers.
The high-level control is handled by a Raspberry Pi 4, however the housing also allows for the installation of a Jetson Nano device instead of the Raspberry Pi.
The Raspberry Pi and ESP32 communicate over a serial connection (UART) using a custom protocol.
The user interface is a web application served by the Raspberry Pi. The frontend is built using Svelte, Tailwind CSS and DaisyUI. The backend is a Rust application using the Axum framework.
The ESP32 firmware is written in Rust using the esp-idf framework and embassy.
- Motorized z-axis with endstops for focusing
- Web interface for controlling the microscope
- Live view from camera with controls for exposure, gain, white balance, etc.
- Z-stack acquisition
- Build custom focus knob which interacts with the microcontroller to allow for manual focusing when not using the web interface.
- Motorized stage for x/y movement
- Build custom stage knobs which interact with the microcontroller to allow for manual x/y
- Objective turret slot detection
- Substage illumination control
- Incident illumination

