🛠️ Hardware

In a belt drive system, the belts have to remain taut to rotate the knobs. This meant that the microscope had to be fixed in position while our algorithm ran. To do so, we drilled holes into the wooden base and secured the microscope onto the platform from the bottom using screws.

Securing the microscope onto the wooden platform

Despite our best attempts, the holes that we drilled were not perfectly aligned with those of the microscope’s base. Thus, it was challenging to screw the microscope onto the wood. We circumvented this by partially hammering in some of the screws, which then allowed us to attach them.

Unfortunately for us, one of the stage adjustment knobs became stuck and we were no longer able to move the mechanical stage. To fix this, we disassembled the fittings for the stuck knob and greased it to reduce friction. We also started designing an adaptor for the stage adjustment knob to attach a timing belt pulley for our belt drive system.

To move the other stage adjustment knob, we designed a ‘chair’ for the stepper motor with wheels attached, enabling the stepper motor to move with the microscope’s stage. We also worked on a prototype clamp for the stepper motor’s shaft.

Adaptor for stepper motor

“Chair” for the stepper motor

However, in designing the adaptor, we did not align the axis of rotation of the stepper motor and the knob. Therefore, the whole stepper motor rotates about an axis. We thus had to remodel the adaptor such that the axis of rotation was aligned.

Axis of rotation did not align

Despite our earlier attempts to build a ‘chair’ for the stepper motor, we realised that we had overlooked a major component of the microscope – the fact that the stage adjustment knobs moved together with the mechanical stage in the vertical direction. As our ‘chair’ is rigid, it would be unable to accommodate any changes in stage height. Consequently, we had to ensure that the motors attached to the stage adjustment knobs moved together with the stage.We decided to use the screw fittings for the stage to attach a 3D-printed platform for the stepper motors to be mounted on.Then, we 3D-printed a prototype for the platform to test if it’s strong enough to support 2 stepper motors.Unfortunately, the hinge we designed was too weak and it broke off. Additionally, the holes on the hinge were not aligned with those on the microscope.

For our next prototype, we decided to separate our design into 3 parts: The hinge, the bridge, and the platform. Firstly, we modified the design of the hinge and 3D-printed it to ensure that the holes were aligned before proceeding.

Screw fittings for the microscope’s stage

Our 3D-printed stage for the stepper motors

Hinge breaking off

The holes of the hinge are aligned

Another challenge we faced was figuring out a mechanism to change between the different objective lenses. This is because changing between the lenses involves rotating them at an oblique angle. Our idea was to use a gear system to rotate between the lenses using a stepper motor.Firstly, we came up with a collar attachment for the lenses, as shown below:

“Collar” attachment for the lens

Next, we designed a gear which is directly attached to the collars to rotate the objective lenses. We came up with two designs: the first one is a complete gear, and the other is a gear split into three portions. However, we quickly realised that this would not work as the axis of rotation of the gear changes with the rotation of the objective lenses. We decided to work on a new design over the weekends.

First design for gear

đź’» Software

This has been an exciting week of breakthroughs for the software department of our project!

Firstly, our Arducam finally worked after much troubleshooting; however, this was short-lived as repeated testing resulted in the destruction of our camera cable. We decided to order more online.

Mr SAM (Cellpose-Sam) also works much better with the installation of our new CPU cooler, although it still takes a while to process images.

After some research, we have found a GitHub repository containing code to train our own machine learning model! The model we have decided upon is EfficientNetLite-B0, where we will be finetuning this model to identify cells for us.

A new concern now is that the Raspberry Pi will take a very long time to run all the programs involved in our device. But that’s a problem for another day.