LabView Interface with various controls outlined. Blue: Hardware, Red: User input required, Green: Measurement parameters, Orange: Information

Hardware settings (blue outlines)

Camera and Arduino Ports

Controls boxed in blue relate directly to the openSFDI hardware. The program won’t run unless these settings are correct! The camera name should correspond to the openSFDI camera. It will be autofilled as “cam1” which is the LabView default. If this is incorrect you can find the correct name by opening “Measurement and Automation Explorer” that comes with LabView and finding the name associated with your camera

Similarly, the Arduino port must be set to the correct location as the Arduino. The drop down menu should auto-populate with the available ports, you just need to choose the right one. The correct port can be found by opening the Arduino IDE and looking for the port that’s connected to the Arduino.

Manual Control of LEDs

The LEDs can be turned on and off manually using the “Manual Control” menu. Select the LED you want to turn on from the list and click the “Send” button. This will signal the Arduino to turn on the desired LED. You can turn off all the LEDs by selecting “Off”

Critical User Inputs (red outlines)

The items outlined in red need to be filled in by the user. The program may or may not run if you don’t fill them out, but the results won’t be what you expect.

Saving parameters

The top left red box shows the path where the data will be saved. Make sure you change it to a path on your PC where the data belong. Images and a log file will be saved in the selected folder.

The sample name should be filled out with an informative name. This value will be prepended to the image number when the images are saved. If you plan to use our processing software you will need to input this sample name into the processing code.

Spatial calibration

In the box labeled px/mm you must fill out how many DMD pixels are being displayed per millimeter. It is important to be as accurate as possible in this assessment because the input values for spatial frequency depend on the calibration input here. One way to do this is enumerated below:

  1. Make an image file such as a 100 x 100 pixel white square on a black background.
  2. Make sure the zoom is set to 100% in what ever program you’re using (MS Paint, ImageJ, Powerpoint, etc.)
  3. With the DMD running and an LED illuminated, drag the window with the square onto the DMD. The DMD should be configured as an external monitor located directly to the left or right of your main desktop.
  4. Place a ruler alongside the square
  5. Record a camera image where you can clearly see the edges of the square. (Note: the image should be projected on a non-diffusive background such as a sheet of printer paper)
  6. Using ImageJ or another imaging program determine the size of the CAMERA pixels in pixels/mm.
  7. Measure the length of the box in CAMERA pixels
  8. Calculate the length of the box in millimeters using the conversion factor found in step 6
  9. Divide the size of the box in DMD pixels by the length of the box in MILLIMETERS
  10. Enter this value in the px/mm box in Labview
  11. Right-click on the box. Scroll down to Data Representation. Click “Make Current Value Default”

Scan Parameters (green outlines)

The inputs outlined in green control the scan parameters that will be used when the “Run” button is pressed. On the left, the rows of the two columns are used to input the desired spatial frequency to project for an SFDI measurement (left) and for a profilometry measurement (right) in cycles/mm. You can input as many frequencies as you want. To delete a frequency you have to click the “Reset Frequencies” button. Non-grayed out zero values will project DC.

The “SFDI Wavelengths to use” toggle switches should be switched “on” to use the indicated wavelength or “off” to skip it.

The “exposure time” values should be filled in with the desired exposure time (in milliseconds). The minimum exposure time you can use is 17 ms which is the length of a single DMD frame. Adjust the camera aperture as needed to make sure the exposure time isn’t too low. If you see striping in your image not associated with SFDI it might be due to the exposure time being too short. Increasing in multiples of 17 ms will help limit the effect.

The program is set to use a single wavelength for profilometry. You can select which wavelength using the “profilometry wavelength” menu.

The other toggle switches for SFDI, Profilometry, and Dark indicate what measurements are to be taken. You should have at least one selected before clicking “Run.”

The right green box controls how many scans will be taken in the measurement and the time interval to wait between measurements. This allows for longitudinal studies to take place without any manual intervention.

The “delay” box adds a small delay in between changing the DMD image and collecting a camera image to allow the DMD to fully swap the images. A value of 100 is usually sufficient. If you see ghosting between the DC and AC images you may need to increase this value.

Informational Display (Orange outlines)

Boxes outlined in orange contain helpful information about the current state of the measurement. The large green light in the upper right informs users whether a measurement is currently ongoing. This was included to make sure that a casual observer would know that a multi-measurement experiment is underway even if no LEDs are currently illuminated.

The box in the lower left provides information about how many images will be collected in each scan.

The bottom center area provides information about the current state of the system. Image index refers to the currently displayed spatial frequency. “Last measurement time,” and “Measurement Number” are self-explanatory. The three green indicators show which LED (if any) are currently illuminated. The “error” box in the lower right should report any errors and will be helpful if unexpected behavior occurs

Other Buttons

  • “Run Scan” Starts the current measurement protocol using the values in the green boxes
  • “Halt” stops a measurement (depending on when it’s hit, the measurement data may, or may not be saved).
  • “Stop” quits out of the program. You should always use this button rather than the stop sign in the LabView bar. Hitting the stop button closes connections to all the hardware before quitting.

Viewing the images

The large gray box will show the images that were collected, but will only show up once all measurements are complete. You can scroll through all the images using the small arrows in the upper left corner.