README.mdon commit add dlw module; clean up for handover (d7cac70)
   1# Direct laser writing
   2
   3Andrew Lorimer  
   4Structured Nanophotonics Group  
   5Monash University
   6
   7This repository contains code for direct laser writing (DLW) on samples using a solenoid shutter (Thor Labs SH05R/M) connected to a data acquisition card for control (NI cDAQ-9174) and a three-axis piezo stage (PI P-545.3C7). It started as an attempt to generate paths for feeding into the existing LabView script for DLW but ended up completely replacing the LabView script. The DLW setup can now be completely controlled from Python. Commands can be sent to the stage and shutter, and there is code written to write diffraction gratings, bitmap images and arrays of lines and dots. The `dlw` module can be imported into other code to provide easy access to the DLW setup for custom applications.
   8
   9Minimum exposure time defined by shutter (according to manufacturer): 8 ms  
  10Spatial resolution defined by stage (according to manufacturer): 1 nm
  11
  12For details on the laser writing setup this code was written for, see *Direct laser writing for nanophotonic devices on Sb2S3 phase-change thin film* (Lorimer 2025).
  13
  14## Directory listing
  15
  16- labview: original LabView script and accompanying example inputs that were provided with it. Python is now preferred.
  17- img_to_path: contains Python code for converting bitmap images to text files containing points for input to LabView script
  18- write_path: Python scripts for controlling the stage and shutter to perform various DLW functions. Some of this is a bit messy and mostly contains configuration values for a specific application.
  19- dlw: Python module for control of DLW setup. This was developed after all the scripts in write_path and should be used for new DLW scripts as it streamlines the process. You can import dlw from its path or copy dlw.py to the directory of your script and then just import dlw.