Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Accretech uf contact wafer #30

Merged
merged 5 commits into from
Feb 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions src/WaferProber-Accretech_UFseries/libs/accretech_uf.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#
# MIT License
#
# Copyright (c) 2022 SweepMe! GmbH (sweep-me.net)
# Copyright (c) 2022-2024 SweepMe! GmbH (sweep-me.net)
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
Expand Down Expand Up @@ -63,7 +63,8 @@ def __init__(self, port):
"No connection established with Accretech UF prober. "
"Please check port address / instrument is connected"
)
self.port.port.enable_event(self.event_type, self.event_mech)

self.register_srq_event()

# not used at the moment as the default is set in acquire_status_byte()
# self.service_request_timeout = 5 # in seconds
Expand Down Expand Up @@ -181,7 +182,12 @@ def __init__(self, port):
}

def __del__(self):
self.unregister_srq_event()

def register_srq_event(self):
self.port.port.enable_event(self.event_type, self.event_mech)

def unregister_srq_event(self):
self.port.port.disable_event(self.event_type, self.event_mech)

def set_verbose(self, state=True):
Expand Down Expand Up @@ -565,6 +571,12 @@ def request_position(self):

Caution: Unit depends on system settings. Using 'Metric' unit is 1e-1 µm. Using 'English' unit is 1e-5 inch.

Attention:
The command 'R' was designed for 200 mm wafer and might not work with 300 mm wafer
In future, one could use the command ur11401 und ur11402 to read x and y position. The 'ur' command is used
to read parameter values. However, the coordinate system of ur11401 und ur11402 is different with respect to
the 'R' command

Returns:
int: x coordinate in µm
int: y coordinate in µm
Expand Down
2 changes: 1 addition & 1 deletion src/WaferProber-Accretech_UFseries/license.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ find those in the corresponding folders or contact the maintainer.

MIT License

Copyright (c) 2022 SweepMe! GmbH (sweep-me.net)
Copyright (c) 2022-2024 SweepMe! GmbH (sweep-me.net)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
7 changes: 3 additions & 4 deletions src/WaferProber-Accretech_UFseries/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#
# MIT License
#
# Copyright (c) 2022-2023 SweepMe! GmbH (sweep-me.net)
# Copyright (c) 2022-2024 SweepMe! GmbH (sweep-me.net)
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
Expand Down Expand Up @@ -49,7 +49,6 @@
accretech_uf = imp.load_source("accretech_uf", os.path.dirname(os.path.abspath(__file__)) +
os.sep + r"libs\accretech_uf.py")


# this is needed as a fallback solutions as pysweepme.UserInterface is not available for all 1.5.5 update versions
try:
from pysweepme.UserInterface import message_box
Expand Down Expand Up @@ -400,8 +399,8 @@ def apply(self):
self.die_x, self.die_y = self.prober.request_die_coordinate()

# We always get in contact if not done already
# if not self.prober.is_chuck_contacted():
# self.prober.z_up()
if not self.prober.is_chuck_contacted():
self.prober.z_up()

# Check whether dies are correct
self.print_die_info()
Expand Down
Loading