Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
TBD
Download Klayout from their websites and follow the instructions to install the software
After it is successfully installed, open the Klayout editor
To create a new layout File>>New Layout
Set the initial layer(s) that you need. The current hacker fab process would require 5 layers which are substrate, poly, active, contact, and aluminum. This is just for getting started, you can always add new layers later if you need to do so.
The layers will be shown in the upper right corner.
Go to View>>Layer Toolbox to open the layer toolbox so that you can adjust the order of the layers and the texture of the layers based on your preference.
Double-click the layer to hide it. If you are drawing on a hidden layer, the following tip will show up.
To create a new layer, go to Edit>>Layer>>New Layer
Scroll your mouse to adjust the size of the grid
The grid can also be hidden through View>>Show Grid. When you need to export the masks as screenshots, the mask needs to be hidden.
Klayout has the following tools to draw the shapes. Press “shift” to draw straight lines.
Draw the rough shape of an object then adjust it to be the exact size by pressing “Q” to edit its property.
Mask Exporting (method 1):
Go to Display>>Zoom Fit to maximize the size of the mask on the screenshot
Rename and sort the order of the layers according to the order of the fabrication steps. In this case, the easiest way is to sort them by name (0:substrate, 1:poly gate, 2:active layer, 3:contact hole, 4:aluminum)
To make the masks compatible with the lithography stepper, adjust the size of the substrate layer (layer 0 in this case) to be proportional to its resolution (3840x2160). In this set of masks, the size of the substrate layer is set to be 384x216. Under this setting, the actual size of the pattern coming from the stepper is 2.5 times the designed size.
Adjust the color and texture of the mask to be blue/red/black accordingly to make them compatible with the red focusing and UV focusing.
Hide or show certain layers based on the property of the mask and take screenshots via File>>Screenshot and save the mask.
Corp the screenshots since the exported screenshot would normally have white sides.
Mask Exporting (method 2):
Set up steps are the same as Step 10 a. to c. steps.
Go to Macros>>Macro Development to write Maros in Klayout
Select “Python” and change the Macro Template to “Plain Python file”
Paste the following code into the Python file you just created. 1
Change the path to the folder where you want your images to be saved. Note that if the name of your folder or file starts with a number, it will give you the following error message.
The .png file of your mask will be saved in black and white. Be sure to adjust the color and texture of the mask to be blue/red/black accordingly to make them compatible with the red focusing and UV focusing.
Reference:
1 GDS to image https://www.klayout.de/doc-qt5/programming/python.html
Appendix 1. Klayout user guides
Klayout user manual from their websites:
https://www.klayout.de/doc/manual/basic.html
Shorter one for getting started with basic functions:
https://mycourses.aalto.fi/pluginfile.php/897248/mod_resource/content/2/KLayout%20Guide.pdf
Appendix 2. Masks for an NMOS enhancement load inverter
This is the project page for a lithography system based on repurposing Blu-Ray drives. The initial goal is to reach a feature size of at least 500nm (2x the Blu-ray laser spot size). As a stretch goal, we would like to also use the sled and spindle motors as high speed nano-positioners and to spin coat and cure photo-resin.
Right now, the first project for this technology (Lithography Spinner V1) is in the research/idea stage. See work in progress page for details on upcoming tasks if you want to contribute.
For a description of what the team at CMU is working on in Spring 2025, check out !
Goals of this page:
Not to try and cover theory or industry standard, but to break the problem into first principles just enough to give context to the quantifiable parameters
Also an opportunity to frame the problem wide enough to set the tone of thinking of these machines from the ground up (aligned with goal, don't think of industry as immutable)
Exhaustive list of industry methods and examples
Quantifiable end user parameters with descriptions + standardized tests
A photolithography stepper is a machine that exposes a pattern of light onto a layer of photoresist chemical on the wafer, then ‘steps’ over to the next pattern. Before each exposure, it must align with previous patterns on the wafer so that each layer of the device is in the correct position relative to the previous. The accuracy with which it can do this is called “alignment accuracy”. Alignment accuracy and optical resolution are the two most important metrics of a stepper’s performance.
There are 2 main components of our stepper: the light source and optics, and then the mechanical micropositioning stage that moves the chip itself. Alignment accuracy is a function of both the mechanical micropositioning stage and the reliability of the projector’s optomechanical components.
Commercial lithography machines use photomasks to create the image, typically made of chrome on glass. Instead, our Maskless Photolithography Stepper uses a DLP projector to create a pattern. This allows us to change patterns instantly, opening the option up for advanced techniques like tiling (making a circuit larger than one exposure field).
Patterning Machine Specifications:
Want to work on something? Plan a task add your name next to it!
See step 11 for an alternative way of exporting the masks using Python scripts
Possible Variation: Error during development (see )
Possible Variation: Error during development (see )
The SW needed for this project can be broken down into the following subsections.
KLayout
OpenROAD
Computer-Aided Manufacturing software translates a 3D design into G-code instructions that a CNC machine (in this case laser burner) can understand, essentially "slicing" the design into smaller, machinable steps.
This SW takes a file with the desired mask (Pattern Capture Output) as an input and translates it into a set of machine instructions.
This software runs on the micro-controller that drives all the HW. It is responsible for taking sensor inputs and driving all output motors and lasers. This device also has an interface which can transmit all the data to/from the user.
This software is responsible for general control of the laser burner from the PC side.
This SW is responsible for the user facing interface which gives the user full control of the burner.
If you already have a stepper built and you're looking for information on how to operate the tool, check out our SOP!
Approximate Build Time
6 hours
Optical Resolution
2 µm
Developed Resolution
2 µm
Tiling Alignment Accuracy
5 µm
Overlay Alignment Accuracy
5 µm
Exposure Size (Diagonal)
1.2 mm
Exposure Time
9 seconds
Mechanical Step Size
1.5 µm
Mechanical Repeatability
5 µm (to verify)
Maximum Wafer Size
2 cm by 2 cm
Tool Size
30 cm x 36 cm x 20 cm
Our design was based on Sam Zeloof and Huygens Optics’ versions of this tool, which is essentially a projector connected to a microscope. We use a 10x objective for demagnification and a mechanical XYZ stage for positioning.
Stepper version 2 has greatly improved mechanical performance over V1 while using the same DLP chip from Texas Instruments. Several factors led to this improvement:
Instead of an off the shelf projector with a flimsy plastic housing, we switched to the TI DLPDLCR471TPEVM evaluation board. This allows for a more robust physical connection to the projector housing, thus eliminating vibrations. It also has much better documentation.
By swapping to a finite conjugate microscope objective, the optical path length is reduced from ~250 to 160 mm. This reduces the moment of inertia of the optics subassembly, therefore also reducing vibration.
Swapping to LEDs instead of the broad spectrum mercury lamp removes the need to constantly swap filters, which introduced random perturbations from touching the optics. We replaced the stock blue LED with a 410 nm LED mounted on a custom PCB. The PCB design files can be found here.
Mounting the projector horizontally means less structure is needed.
M3 and M4 taps
3D printer
Pick-and-place machine
Reflow oven
Solder paste (preferably a syringe)
Calipers
Total Cost: $3,062.28 (doesn't include computer and peripherals)
TI DLP Evaluation Module
1
$999
Assorted Optics
1
$736.52
10X Din Plan Objective
1
$150
FLIR Blackfly S Camera w/ Sony IMX183
1
$699
USB Type A to Micro B locking cable
1
$24.6
19V 4.74A Projector Power Supply
1
$17.99
XYZ Stage 40mm
1
$125
Rotation Stage
1
$58.99
NEMA 28 Steppers
4
$71.96
Arduino Uno (Elegoo)
1
$16.99
CNC Shield for Arduino V3.0
1
$10.99
Stepper Motor Drivers
1
$22.99
Flexible Shaft 1/8"
1
$6.49
Shield Power Supply 12V
2
$23.98
2.5mm Barrel Connector
1
$8.99
Vacuum pump for chuck
1
$26.99
M2.5 Screw Assortment
1
$16.99
Collapsible Magnetic Tray for Vibration
1
$11.99
410nm Lumiled LED
4
$27.96
Pico-spox 10pos Vertical Connector
2
$1.86
*Upload this CSV file to Thorlabs for all the optomechanical parts + beamsplitter.
Note: the OnShape folder is organized poorly because it was our first time using it. Won't happen again, we promise!
Referance for assembling optical components
1
Driver kit
1
Water jet/ Online CNC shop/ 3D print
Structural base for aligning the micropositioning stage to the projector and optics.
1
Manual mill/ Online CNC shop/ Water jet
Three parts that connect stepper motors to the micropositioning stage x , y and z axes.
1
3D printed
Press fits onto micrometer and slides on motor D-shaft.
3
3D printed
Tiny part for offsetting micrometer stop on Y axis
1
3D printed
Mounts the theta stage at a right angle to the rest of the stage.
1
3D printed
Connects to a vacuum hose to hold the chip. Corner jig aids alignment.
1
3D printed
Python script for controlling the projector. Check for recent version.
Laptop
Firmware for stage microcontroller.
Arduino Uno, IDE, Laptop
Provide detailed, step-by-step construction instructions for the submitted hardware:
Include all necessary information for reproducing it.
Explain and (when possible) characterize design decisions. Include any design alternatives you created.
Use visual instructions such as schematics, images and videos.
Clearly reference design files and component parts described in the Design file summary and the Bill of materials summary
Highlight any potential safety concerns.
Tips and tricks to simplify the assembly process
Possible errors that might occur during assembly and how to rectify them
There are several options for fabricating these two parts: the Base Plate and Adapter Plate. If you have access to a water jet, you may cut these parts from 1/4" aluminum plate, available on McMaster. Otherwise you can order the parts from SendCutSend, Xometry or another online CNC shop.
The Base Plate is 15" long, so double check that your water jet is large enough.
When downloading the Adapter Plate DXF for water jetting, go to Config > Water jet to get the hole sizes right for tapping. The 2.2mm holes are clearance for M2, and the 2.5mm holes are M3 tapped and countersunk.
Click here for a SendCutSend shopping cart with the parts already uploaded and configured. This has not been tested yet.
Base Plate: Click here for a drawing to have open while drilling all the holes. Start with a center drill then use an appropriately sized drill bit for M4 and M6 holes. You may also switch to 8-32 and 1/4-20 if you already have the taps for those, and no other parts will change if you do so.
Adapter plate: This should be manually machineable but we haven't tried.
The PCB Gerber files for our UV LED can be found here. We provide a screenshot of the layout in Altium and a 3D render of the PCB below.
You can order it through your PCB manufacturer of choice (we used JLCPCB). However, note that the PCB is copper core. This is because the LEDs draw several amps of current in operation. To ensure that the PCB doesn't melt, you should use copper core to facilitate better heat flow.
We used 410 nm UV LEDs on this PCB. We found that two LEDs in series is sufficient to produce enough UV light for patterning. We also found connectors that are compatible with the cable in the TI DLP dev kit.
When assembling the UV LED PCB, it is easiest to use a solder syringe to carefully deposit the paste onto the LED pads and connector pads. If you try to use a stencil mask, it is very easy to smear the paste, so this is not recommended.
Once the paste is applied, you can use a pick and place machine to align the components with their pads. Keep in mind that you need to use a nozzle that is small enough to pick up the LEDs. Finally, you can put the PCB into a reflow oven to solder the components to the board.
You can test by applying 6V (limit to 1A) across the LED leads, but be sure to wear UV-protective glasses, as the LEDs will be bright! Once you are confident that the PCB works, you can now replace the blue LED PCB in the TI DLP dev kit with our new UV LED PCB. To see the UV light, simply look at the leds through your phone's camera, as the sensors see it as purple light.
Taking pictures after every step is key to ensuring you can put it back together properly.
Test the projector before we completely take it apart :)
Unplug all the connectors and remove the top PCB by unscrewing the standoffs.
Remove the side PCB.
Unscrew and remove the shroud by sliding it away from the rest of the optics.
Unscrew and remove the heatsink for the front-most LED, which should be the blue one.
Disconnect the LED PCB from the cable. Heat it slightly on a hot plate or with a hot air gun to soften the adhesive and remove the black plastic housing.
Glue the black plastic piece to the DIY UV LED PCB, connect it to the blue cable, and reattach it to the optics housing. Put the heatsink back as well.
Unscrew the projection lens. That one makes things bigger, but we're trying to make things smaller. It's got to go.
Screw on the adapter plate with four countersunk M2 screws.
Reassemble the rest of the projector, including the shroud and the PCBs.
See CAD for interactive assembly help (select option 3)
Start with the beamsplitter cube. Unscrew the set screws, remove the holder, and clip in the beamsplitter. The text ("Thorlabs") should be facing the microscope objective and camera when the holder is reinserted. Keep track of this during assembly and fix it later if necessary.
Assemble the DLP tube. From left to right, the parts in the first picture are 0.3" lens tube (SM1L03), 0.5" lens tube coupler (SM1CPL05), 0.5" adjustable lens tube (SM1V05), and 0.5" lens tube (SM1L05). You may want to remove any internal lens rings. The adjustable lens tube allows axial length adjustment and the coupler allows rotation about the optical axis.
Screw the DLP tube into the beamsplitter cube. The correct orientation is shown above, and the arrow points to the side of the beamsplitter with the text (and optical coating).
Assemble the camera tube, which similarly constructed. The parts are 1" lens tube (SM1L10), 1" lens tube coupler (SM1CPL10), 1" adjustable lens tube (SM1V10), another 1" lens tube (SM1L10), and C-mount SM1 adapter (SM1A9) (last two shown below).
Make sure this camera tube is 82.3 mm long. We calculate this number by subtracting the various component lengths from the standard microscope objective back focal length of 160mm: 160 - 17.5 (c-mount camera) - 22.1 (objective tube) - 38.1 (beamsplitter cube).
Screw on the C-mount SM1 adapter (SM1A9) to the camera and the 1" lens tube. Adjust the lens tube coupler to align the camera with the beamsplitter cube.
Assemble the objective tube, which consists of a 0.5" lens tube (SM1L05), a 0.3" lens tube (SM1L03) an SM1 to RMS adapter (SM1A3), and the microscope objective.
Temporarily loosen the top lens tube coupler in order to finally screw the entire assembly into the projector.
Print all of the parts in the table below. Black PLA is fine. You may need to re-orient them so they print well. The stepper mounts will all need small supports in the motor flange. The X and Y axes need other supports as well.
Three parts that connect stepper motors to the micropositioning stage x , y and z axes.
1
Press fits onto micrometer and slides on motor D-shaft.
3
Tiny part for offsetting micrometer stop on Y axis
1
Mounts the theta stage at a right angle to the rest of the stage.
1
Connects to a vacuum hose to hold the chip. Corner jig aids alignment.
1
Unscrew all the, micrometers, L-stops and stage locks from the micrometer stage. Separate the X, Y and Z axes. Throughout the assmebly process we will be replacing the stock screws with ~4mm longer ones as we reattach the various components to the stage. All 3d printed mounts are 4mm thick at the screw holes. Have your M2.5 screw kit handy!
Press fit the three sliding shaft couplers onto the three micrometer handles until the knurled surface is fully covered. They should fit with significant force and maybe gentle hammering. Be careful - the micrometer handles may have different diameters so you may need to modify the CAD and reprint to get a correct fit.
The shaft couplers should slide on the motor shafts with zero slop. Modify dimensions and re-print if this is not the case. Graphite lubricant may help decrese sliding friction, and the fit will get looser after repeated axial movement as the steel deforms and smooths the plastic.
Screw the motor, coupler, and micrometer into the X axis motor mount as shown. Doing this step before attaching to the rest of the stage takes advantage of the slop in the micrometer mounting screws and aids alignment.
Slide the Y axis motor mount onto the Y axis. You will need to remove some screws and push the stage to allow it to slide on.
Attach the motor. Don't screw down the micrometer mount yet.
While pushing the stage so the micrometer isn't touching the stop, fasten the micrometer mount. This avoids preloading the micrometer/motor assembly and improves shaft alignment.
Reattach the X axis micrometer stop as well. You may need to adjust the screw length to get it to fit.
Insert the Z axis motor mount to the Z axis. The easiest way to do this is to insert it upside down from the opposite side, then flip it while pushing the stage up, then slide it back so the holes line up. Basically it takes some fiddling.
As with the other stages, attach the motor first, then secure the mounts. Tighten the set screw at the green arrow. Make sure the micrometer is flush with the mount at the yellow arrow. Again pushing upwards at the red arrow eliminates prelaod from the spring inside the stage and helps alignment.
Tighten down the Z axis mount.
Attach the X axis motor mount to the stage with the screws at the red arrows.
Add additional screws on the X and Y axes to make sure the mounts are solidly attached. Ignore the spring in the above image.
Attach the right angle bracket to the theta stage and the top of the Z stage.
Screw the chip vacuum chuck onto the theta stage. The stage is finished.
Bolt the XYZ stage to the base plate using short screws so they don't protrude out the bottom. Ensure the stage is aligned with the tapped holes by pushing it forward while screwing it down.
Screw in the four alignment screws for the projector. They don't need to go in all the way.
Push the projector and optics against the four screws to ensure alignment.
Plug in everything: power for the projector, locking USB cable for the camera, USB cable for the stage, power for the stage, HDMI for the projector, power for the pump, and vacuum tube for the chuck. Do not power the stage arduino shield without the motors connected, or you will burn out the drivers.
To install and run the software, you will need a Windows system that has two USB ports. The rest of this section describes how to install the following dependencies:
Arduino GRBL firmware
Python version 3.10 and Python libraries
FLIR Blackfly S Camera Drivers & Viewer
After these are installed, you may clone and instantiate the stepper repository on your device. Optionally, you can develop your own driver for the Flir camera to allow a GUI-integrated live camera preview of the stage. Instructions for such are included below as well.
Install Arduino IDE.
Flash the Arduino with GRBL following the instructions in the Link below (it may display as "Not found", but we have found that the link works anyway). For more info about the CNC shield, see the original designer's page below.
To test that the installation was successful, open Arduino IDE and open the serial monitor. You should see text indicating that a version of GRBL is running on your Arduino.
At the time of development the latest Python version the Flir Spinnaker SDK supports is version 3.10. As such, you must install libraries and run the software for/from this version.
We highly recommend using a Linux-based terminal on your Windows system for installation. One option is the official git terminal. The following instructions assume you are using this terminal environment.
Open git terminal. Check if you have Python 3.10 already installed on your system by running py -3.10 -V
. If no installation is present, download and install Python 3.10 from the official download link.
Import necessary libraries with pip
pip install pillow, serial, opencv-python
TKinter should be bundled with the 3.10 download, but if not found, it must be installed with local package manager: not pip
PIL / Pillow -> pip install pillow
Serial -> pip install serial
cv2 -> pip install opencv-python
Do not install camera
library with pip, as it will conflict with the Flir python library
(WIP)
Open git terminal to the location where you want the Stepper GUI software to be downloaded. Then, run the following commands:
git clone https://github.com/hacker-fab/stepper .
cd stepper
If you have access to the private Flir camera submodule repository, then also enter the following commands:
git submodule init
git submodule update
Otherwise, disable the camera in the software. To do this, go to the stepper/litho/scripts/config.py file and toggle the necessary flags at the top (i.e. RUN_WITH_CAMERA = False). (Or, if are using a different camera, update config.py to select your camera instead. The camera must implement the CameraModule interface.)
Run the software.
py -3.10 ./litho/scripts/Lithographer.py
Run lithographer.py with Python 3.10:
py -3.10 ./litho/scripts/Lithographer.py
For instructions on how to use the Stepper GUI software (including troubleshooting), please see the Standard Operating Procedures.
The Stepper V2 build uses a Teledyne Flir camera and custom software written for it. The Stepper software uses the Flir Spinnaker SDK to integrate a live camera preview of the stepper's stage. Since the SDK and its derivative software are closed-source components, we currently do not possess the legal authority to grant access to our custom Flir camera driver to third parties. The following steps describe how to install the Flir Spinnaker SDK and how to develop your own driver. Please carefully review all terms, agreements, and licensing requirements. Follow the steps below.
Create an account on the Flir website (https://www.flir.com/), or, if you already have one, sign in.
Download the Flir Spinnaker SDK (https://www.flir.com/products/spinnaker-sdk/) for Windows.
Decompress your download if necessary. Open the README.txt file in the (decompressed) download and follow the installation instructions inside.
Test that the installation was successful by running an example program. To do this, first make sure your Flir camera is connected. Then, open git terminal in the "Examples" folder. Then, choose any example .py script and run it by entering py -3.10 NameOfYourScript.py
. Ensure that the program output reports connection and communication with your Flir camera.
To write a Flir camera driver compatible with the rest of the software, you must conform to the stepper's CameraModule API. Within your custom "FlirCamera" class, which should be defined as a subclass of CameraModule and a Flir event handler, we recommend implementing at least the following functions:
def __init__(self)
def setStreamCaptureCallback(self, callback)
def streamImageReady(self); returns True if live image is available
def getStreamCaptureImage(self); returns a tuple of (numpy ND image array, shape of that array, and an image format string ("rgb888" or "mono8")), or False if the image is invalid
def isOpen(self); returns True if the camera is active
def open(self); returns True on success
def close(self); returns True on success
def startStreamCapture(self); returns True on success
def stopStreamCapture(self); returns True on success
a Flir image event handler
We also suggest optimizing live preview performance by selecting a low-overhead color processing scheme and by displaying only the most recently acquired image (i.e. newest first). The Flir SDK code examples show how you might do this.
In config.py, assign "camera" to an instance of your FlirCamera class. For instance:
Once the stepper is connected to a computer and the live camera feed is visible, proceed with final alignment. The goal is to adjust the tube length between the DLP housing and the beamsplitter cube such that both the projected image and the chip are in focus.
Place a chip with a visible pattern on it. Cracked glass or extremely dirty chips are good options.
Project a mostly red image with some fine marks for determining focus.
Using the Z axis (focus) of the stage, focus onto the chip surface. Disregard the projected pattern for now.
Loosen the clamp that connects the two parts of the DLP-beamsplitter tube so that they freely rotate. (update picture)
Loosen the locking ring on the adjustable lens tube.
Screw the adjustable lens tube in/out while periodically checking to see if the projected image gets more or less in focus. You may need to push the optics into the coupler to ensure planarity.
Once both images are in focus at the same time, tighten the locking ring on the adjustable lens tune as well as the coupler. (insert image)
Wear UV-blocking glasses whenever light leakage from the projector is possible.
KEM-497AAA Pin Out Analysis
The Lithography Spinner V1 plans to use the Blu-Ray disc assembly from a Play Station 5 (KEM-497AAA) to drive the whole system. They are readily available and can be found for $30-$70 in most places.
Typically a single IC is used to drive these modules but most vendors wont sell chips to individuals. So the plan is to design a discrete controller board to manage all the HW and write our own controller SW.
Our design was based on Sam Zeloof and Huygens Optics’ versions of this tool. Sam repurposed a vertical microscope for structure and laid out optics experimentally with a 5x reduction objective, whereas Huygens built his own horizontal structure, and used more involved optics with a 20x reduction. We took the middle road by combining a scratch built structure with ThorLabs optical and optomechanical components to ensure alignment. We use a 10x objective for demagnification. We also opted for a different mechanical XYZ stage.
Cost
$5,820.10
Approximate Work Time
5 hours
Optical resolution
~10 µm
Alignment accuracy
5 µm
Litho Stepper Software
Water jet capable of cutting ¼” aluminum plate
Manual milling machine and small end mill
Drill
Screwdriver and metric allen key sets
Glass scribe (tungsten carbide or diamond)
3+ large C clamps or similar.
Link to spreadsheet - edit sheet then update or copy table here
Total Cost: $5,820.10
Name
QTY
Cost per unit - USD
Total cost - USD
Purchasing Link
ViewSonic PX-701 4k Projector
1
$909.99
$909.99
Multiple Optical Components
1
$3,796.97
$3,796.97
¼” x 12” x 12” 6061 Aluminum plate
1
$35.61
$35.61
¼” x 6” x 18” 6061 Aluminum plate
1
$40.54
$40.54
Amscope Camera MU2003-BI
1
$841.99
$841.99
Manual XYZR Stage
1
$195.00
$195.00
Screws: mostly M3, M4
$0
$0
The complete list of ThorLabs parts is in the second sheet in the Stepper BOM. To order all of these at once, download the third sheet as a CSV and upload it to ThorLabs Upload Cart.
File Name w/ link
Description
QTY
Tools Used
Water jet from ¼” x 6” x 18” aluminum plate. Serves as a flat surface on which everything is mounted.
1
Water jet
Water jet from ¼” x 12” x 12” aluminum plate. Holds the projector via vertically slotted holes. Connects to the base, triangle bracket, and support arm.
1
Water jet
Water jet from ¼” x 12” x 12” aluminum plate. Adds stiffness between base and back plate.
1
Water jet
Water jet from ¼” x 12” x 12” aluminum plate. Connects back plate to the optics.
1
Water jet
Water jet from ¼” x 12” x 12” aluminum plate. Connect the support arm to the optics.
1
Water jet
Machined from 1 ¼” aluminum angle iron.
1
Manual milling machine
Machined from 1 ¼” aluminum angle iron.
2
Manual milling machine
Machined from 1 ¼” aluminum angle iron.
Use an ⅛” end mill for the slot.
1
Manual milling machine
3D printed part for connecting the optics to the projector. Not load-bearing, mainly serves to dampen vibrations and aid alignment.
1
3D printer
1
1
Most of the water jet components can be cut from a single 12” square aluminum plate. Water jet layout.SLDASM provides the pattern for this. The base needs a separate 18”x6” plate.
The following steps do not need to be completed in order, except for the last three sections (assembling the structure, stepper, and alignment).
Export “Water jet layout.sldasm” and “base.sldprt” to the appropriate 2D vector format for your water jet (likely .DXF).
Water jet these two files, following the instructions for your specific machine. A CNC router may also work.
Be aware that the “base” part takes up the full 6”x18” plate, so no need to cut the outside edges. You may need to adjust the kerf settings so your water jet cuts on the inside of each hole.
Countersink all the holes on the bottom of the base plate.
3D print the projector coupler with default settings.
Cut the angle iron into three 80 mm long pieces and one 60 mm long piece using a saw.
Cut the slot in the adjustable bracket using a 4mm or slightly larger endmill (3/16” works). None of the dimensions of the slot need to be precise. The holes in all the brackets will be drilled during the assembly process.
Open “_optics_assem.sldasm” for reference during assembly. The cutaway view may be helpful.
Unscrew the set screw on the cage cube to remove the filter mount. Insert the beamsplitter into the mount so that the text on the beamsplitter reads forwards when viewed from the projector.
Bolt the two filter holders together using four M3x20 or similar screws and washers.
Use SM1 locking rings to mount the UV bandpass and red longpass filters in the two filter holders. Make sure the filters are inserted in the correct direction. Label the filter holders “red” and “UV”.
Screw together the rest of the optics, paying attention to the direction of the tube lenses.
Use calipers to adjust the length of the vertical SM2 tube so that the distance between the tube lens and the camera flange is exactly 134.3 mm. This value is calculated by subtracting the standard C-mount flange focal distance (17.526 mm) from the TTL-200A tube lens’ working distance (151.8 mm).
Unscrew all available philips screws in the projector.
Use a small flathead screwdriver to pry open and remove the top projector housing. This takes some rough handling.
Remove the front foot by removing the metal pin as shown below, then unscrewing the foot out while pushing the tabs in.
Unscrew the three screws that hold the stock lens assembly to the projector and remove the lens.
Remove the plastic half-lens cover and cut the top housing as shown above.
Unscrew and detach the lamp assembly (screw circled).
Cut the Thorlabs UV-pass hot mirror to the same width as the stock hot mirror.
Use a scribe to mark the correct width on both sides of the UV-pass hot mirror.
Use a straightedge to scribe a deep groove in the hot mirror. Use a lot of force and several passes.
Apply bending pressure to the hot mirror with the groove facing away from you until it breaks.
The following steps will benefit from having two or more helpers. In the images below, the red arrows indicate applied pressure for ensuring parts are correctly mated. Green arrows indicate clamps. Yellow dots indicate tightened fasteners. For all drilling steps use the largest drill bit available that freely fits inside the holes for the brackets.
Put the projector back plate and triangle bracket into their slots in the base. Apply pressure as shown so that both parts are flat against the base and in the corner of their grooves.
While maintaining pressure, place one 80mm bracket between the triangle and the back plate and clamp it to the triangle.
With the clamp still attached, drill through the bracket using the holes in the triangle for alignment. Use M5 nuts and bolts to fasten the two parts together. Put the nuts on the outside to avoid interference with the projector.
Return the parts to their previous position, apply pressure, and clamp the bracket to the back plate.
With the parts still clamped, drill two holes and fasten. Depending on the size of your drill, it may be necessary to unbolt the triangle first.
Clamp the other 80 mm bracket to the back plate. Clamp the 60 mm bracket to the triangle. Ensure the brackets lay flush on the base.
Drill into the brackets using the holes in the back plate and triangle for alignment. Fasten with any protruding screws on the outside to avoid interfering with the projector.
Place the assembly back into the grooves on the base, again pushing them into the corner. Clamp both brackets to the base.
Flip the base upside down and use the holes on the bottom to drill into the brackets.
Attach all three brackets and plates.
Use three M4 screws to attach the support arm. Use a straightedge to ensure that the top edges of the support arm and back plate are parallel.
Clamp and drill holes in the adjustable bracket. Make sure the top surface of the bracket is flush with the support arm.
Structure is complete and ready for further assembly.
Screw the manual XYZR stage into the base plate using countersunk screws.
Screw the 3D printed projector coupler into the projector with three M3x? screws.
Push the optics onto the projector coupler. You may need to temporarily detach the vertical parts of the optics assembly. This part was designed iteratively and may not fit perfectly because the true position of the DLP chip inside the projector is unknown. In that case, it can be modified or removed as needed.
Attach the cube adjuster to the cage cube with 4-40 screws. Attach the cube adjuster to the adjustable bracket with M3 screws and washers on both sides.
Screw the camera onto the C-mount threads at the top of the optics.
Go to this link and install the correct Amscope software for the camera MU2003-BI and your operating system.
Connect the camera to your computer with a USB 3.0 cable.
Connect the projector to your computing using an HDMI cable.
Put in the UV filter. Remove the red filter.
Turn on the projector.
Open AmScope. Select the camera in “camera list”. If everything is working an image should appear (might be black).
Place a flat mirror-like object on the stage. This can be a bare silicon chip.
Adjust the height of the microscope objective to approximately 16 mm.
Focus the image using the Z-axis on the stage. You should see your projected screen. Try projecting some patterns to test the focus.
Adjust the lens tube coupler so that the projected image is square inside the camera frame.
Default configuration Without objective
Unscrew and remove the microscope objective. You may still see an image. This is because if the two tube lenses are in the correct positions they will perfectly focus the collimated light between them. We will use this to our advantage by translating the entire optical assembly towards/away from the projector until the image is focused. When this step is complete, we know that the first tube lens is 151.8 mm from the DLP chip.
We can also use the no-objective configuration to check the stage’s orthogonality relative to the vertical axis of the optics. When aligned, the image will be centered in the camera frame. Any offset (shown below) can be fixed by adjusting the structure in the angles labeled A and B above. This correction fixes the planarity of the focal plane, visible in the images below. Rotation in A moves the image vertically and rotation in B moves the image horizontally in the camera frame.
To add: details about how to mechanically execute alignment, including shims.
No objective, before alignment
With objective, before alignment. Non-uniform focus is apparent in the top left corner.
No objective, after alignment. The projected image (purple) is centered in the camera frame.
With objective, after alignment. Focus is much more uniform.
Demonstrate the operation of the hardware and characterize its performance for a specific application.
Highlight a relevant use case.
If possible, characterize performance of the hardware over operational parameters.
Create a bulleted list describing the capabilities (and limitations) of the hardware. For example, load and operation time, spin speed, coefficient of variation, accuracy, precision, etc
Wear UV-blocking glasses whenever light leakage from the projector is possible.
This page documents the current work being done on patterning systems and the goals of that work. If you want to start a new project or research related to patterning, add it here so we can keep track of what's being done!
The current design for stepper v2 involves having the micrometer-motor couplers slide along the shaft of the motor. This leads to wear in the 3D print and prevents the use of a rigid connection, leading to the coupler eventually becoming loose. This can cause ~30º of backlash in the rotation, which corresponds to about 15 microns.
Mounting the motors on the stage that they move, rather than on a (relatively) fixed stage allows for using a rigid coupling without significant modification to other parts of the design. These fixes should be applicable to any fab with an existing v2 stage. This is a major enabler for .
This may require redesigning the stage to be mounted upright, or the stage to be turned sideways.
The WIP CAD files are available on and more information can be found .
In order to enable many features like automated or computer-assisted patterning, it must be possible to consistently refer to positions on a die. This requires being able to determine the absolute position of the stage.
There has been some experimentation with using inductive sensors for determining the stage position, though calibrating and mounting the sensors is difficult. The accuracy for a properly calibrated and mounted sensor may be sufficient, though. (TODO: Link inductive sensor notes once those get merged)
Currently, a design using simple limit switches is being developed (though blocked on ).
The current optics system is not physically capable of handling the projector's resolution, i.e. some amount of detail is wasted in the optics system. This means that we can use a lower resolution (read: cheaper) projector.
Lastly, there are other components in the optics system itself that we believe can be modified/replaced to further reduce the cost. The ThorLabs components cost at least $700, but many of those parts such as tubes and flanges could be replaced by 3D-printed parts. We will have to test to see if heat generated by the stepper becomes an issue, but this would provide a significant reduction in cost.
Altogether, we believe that we can bring the cost of the stepper below $2000 - perhaps even $1500.
*
Connects the optics to the projector. Matches hole pattern on DLP housing and .
(link to )
Below is a completed version of the PCB - note the polarity! This image shows the correct orientation of the LEDs (credit to University of Utah for the photo). If you have it flipped, then the projector will project an image briefly before shutting itself off:
t
(link to )
Assembly containing all projector parts, obtained from . Used for geometry of the 3D printed adapter.
Assembly of all ThorLabs components. Original part files from .
Remove the metal clip and the stock hot mirror from the lamp assembly. The stock hot mirror blocks ultraviolet light, so it needs to be replaced.
There are two main items that we are looking at replacing to reduce our cost. The first is the projector itself, as we are using an expensive 4K projector that does not appear to yield much benefit in patterning resolution. We are considering going from the ($999) to the ($299).
The second item that we are looking at is our camera. We are currently using a high-resolution ($700) which, again, is excessive for our application. We believe that we can find a similar C-mount camera for less than $200.
Backlash Improvements
<2µm backlash
Before February
Carson Swoveland (@_salix)
Absolute Positioning
<5µm accuracy+precision
End of semester
Carson Swoveland (@_salix)
Cost Reductions
Stepper price <$2000
End of semester
Joel Gonzalez Sky Bailey