Contract: Robotic Microscope Prototype
Building the beast
My most ambitious hardware project to date: a fully automated fluorescent multi-spectral microscope prototype with sub-micron resolution, a control system (covering XYZ axis motion control, LED brightness and selection, collimator adjustment, polarizer toggle, and polarizer rotation), automated giga-pixel image capture, and a display/control interface.
So to start off my notes for how to build this thing spans 18000 characters and the characters are mostly for external links. But it was actually more complicated than that initially because the goal was simply to produce this prototype as a research tool for computer vision technologies (with potential application towards Lyme disease). So really I had to figure out the best thing that could be reasonably built given a limited development budget (basically the cost of buying a similar product) along with my capabilities. And this was to be completed in roughly two months 😱
However, being a challenging project it was also a fun project 😄. The client (the CEO of a computer vision technology company) reached out after discovering my smartphone microscope kickstarter and we had an exciting conversation about the potential applications.
The thing was that he could have bought an automated microscope and applied his company’s computer vision tech, but by building an automated microscope in-house he can control and customize the hardware side of it as well leading to some potentially very green fields. And thus a partnership was born and my work began 🚀
The strategy
Now a rocket ship emoji is a surprisingly accurate symbol, there was a lot of work to do in a very short time and a small mistake could led to budget overruns and failure! Hahaha, but luckily I’ve had experience with complicated projects before and reduced the project to smaller sub-components covering the optical aspect, mechanical aspect, electronic aspect, software aspect, and QC in that order. Because ultimately it’s a microscope, I need the thing to work, optics are complicated, and the simpler and higher priority I keep this component the more likely everything will turn out fine in the end. Following the optics would be the mechanics that move and hold all the optics in the right place with sub-millimeter precision. Following the mechanics would be the electronics to drive the motors and LEDs. Finally there’s the software that marries electronic software with the camera API into a unified display/control interface. And the QC step to make sure everything works.
The priority stack of constraints is a good strategy to keep in mind during planning that does two main things: 1. Focus on optimizing the most important components first in terms such as performance, simplicity, risk-reduction, etc. 2. Reduce the size of the problem space or complexity by applying constraints in the right order (for instance since I knew I needed a certain mechanical accuracy for the Z axis, I needed a certain type of stepper motor, and thus I needed a certain stepper driver).
Yeah, I’ve never built something like this before, but I had the right strategy. And fast forward 2.5 months later, the prototype was completed on-budget and demoed with satisfactory performance to the client 😆