Robotic Liquid Handler

Built on a refurbished 3D printer platform, the system incorporates custom-designed, 3D-printed racks, a base, a pipette holder, and calibration tabs. Liquid handling is performed using a commercial analytical 1 mL pipette. The machine achieves sub-0.1 mm repeatability, and a system was successfully evaluated against ISO 8655 for liquid-handling accuracy and precision.

Supports up to 3×96 well plates, Eppendorf tubes, 15/50 mL Falcon tubes, and 4 mL vials. Includes liquid-air eject (for remaining liquid), reliable tip pick/drop, aspirate–dispense mixing, and aspirate-during-transport to enable pipetting of volatile solvents like solvents such as ACN, MeOH or even NH4OH.

System is controlled by a Python script with a custom user interface that sends G-code over serial. It also manages calibration/config values from local JSON, giving a practical balance of readability and easy tuning.

Oligonucleotide LIMS

Built out of necessity to track hundreds of barcoded vials. A full-stack Laboratory Information Management system for day-to-day lab operations: barcode scan lookup, batch import/validation, inventory search and status tracking, automatic oligo .mol structure creation, calculation of molar/monoisotopic mass, PDF/CSV export, snapshot backup/restore, complete audit capture, and file storage of synthesis protocols and oligo analytical data.

Stack: Python FastAPI backend with a Jinja + JavaScript frontend. Data is stored in a JSON tree: each oligo lives in a folder keyed by a generated 6-character base62 hash, and audit trails are decoupled into per-entity log files so history stays intact through updates, trash/restore, and deletes.

2D Barcode Scanner

Custom scanner system for vials with 2D ECC200 barcodes. Integrates with the LIMS for automated sample identification and workflow management, eliminating manual data entry and reducing tracking errors. The enclosure is 3D printed, illumination comes from an internally chamfered LED strip, and images are captured with an Arducam 16 MP USB camera with software-controlled focus.

NMR Photoreactor

A 3D-printed NMR photoreactor delivering uniform 360° light around the sample at ~−78 °C in isopropanol/dry-ice slurry. A 20 mL glass vial around the sample acts as both the optical window and the cooling reservoir. Light comes from three 2 W LEDs on heat sinks, powered by a constant-current DC supply, with a gentle dry N₂ purge to prevent condensation from contaminating the LED → sample optical path.

UV-Vis Photoreactor

A 3D-printed spectrometer insert for a standard 10 × 10 × 40 mm quartz cuvette, with temperature control from a neighboring bath and magnetic stirring. The exchangeable LED sits on a separate 3D-printed white polycarbonate mount or optional aluminum heat sink. Diode is driven by an Arduino-based controller for programmable on/off cycling in photostability studies.

Bio Photoreactor

A 3D-printed bio-photoreactor for transparent-bottom 96/384-well plates, with one half illuminated and the other half kept dark as on-plate controls. A swappable LED module (PC insert in an ASA chassis) supports quick wavelength changes, while five independently controlled LEDs, reflective lining, and a selected diffusion film deliver uniform plate irradiation. A custom two-axis light scanner was developed and used to tune light balance, and thermal drift stayed minimal (<0.2 °C over 120 min at full LED power).

Plate Illumination Scanner

A two-axis robotic scanner equipped with a digital light sensor quantifies the light distribution across the plate. As the scanner sequentially measures the illumination of each well, two synchronized Arduino boards drive the LEDs while a host script solves a 5-dimensional optimization problem, simultaneously fine-tuning the power of five distinct diodes to find the solution with maximum total irradiance and minimal energy spread.

Photochemistry Analysis Tools

Scripts were developed out of a need to analyze data from an Agilent 8454 diode-array UV–Vis spectrometer, which outputs data as a raw .txt 3D array. Scripts were written with the goal of exporting figures in Journal of the American Chemical Society format:

Extinction Coefficient Calculator. A spectral unmixing utility that derives pure-state molar extinction spectra for E and Z isomers from an initial spectrum, a photostationary-state spectrum, and known PSS composition. Using Beer–Lambert conversion, linear algebra, and export cleanup, it generates the cis and trans datasets needed for downstream kinetic deconvolution and quantum-yield calculations.

Half-Life Calculator. A three-panel UV–Vis kinetics interface for extracting thermal relaxation rate constants and half-lives from time-resolved absorbance data. It links wavelength-specific kinetic traces, spectral snapshots or spectral evolution views, and first or second-order exponential curve fitting.

Photostability Analyzer. An interactive absorbance-cycle analysis app for light/dark irradiation experiments. It finds local maxima and minima in the raw trace, then converts them into a cycle-resolved stability plot showing fatigue, bleaching, or incomplete recovery across repeated switching cycles, with export-ready figures.

Quantum Yield Calculator. Tool for estimating photoisomerization quantum yields under total-absorption conditions (A > 2 at the irradiation wavelength).

Publications