Repository navigation
Expand file tree
/
Copy pathChanges.txt
More file actions
202 lines (168 loc) · 10 KB
/
Copy pathChanges.txt
File metadata and controls
202 lines (168 loc) · 10 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
Changes:
Version 26.2.0
=============
BREAKING CHANGE: SiPH positioner commands follow the remote command structure
The SiPH commands that address a single positioner are now available as
prober.siph.[top|bottom].{east|west|north|south|northeast|northwest|southeast|southwest}.<command>()
mirroring the SENTIO remote commands "siph:{top|bottom}:{position}:<command>" (SENTIO 25.2 and newer).
As in the remote command the "top" part is optional: prober.siph.east is the same as prober.siph.top.east.
Bottom positioners exist for east and west only. The sub groups are not created for SENTIO older than 25.2.
The old functions are not kept as deprecated aliases. If you need to keep running existing scripts
unchanged, stay on the previous release of this package: pip install sentio-prober-control==25.2.1
The old flat functions were removed. Migration:
prober.siph.get_cap_sensor() -> prober.siph.[top.]east.get_cap_sensor() / .west.get_cap_sensor()
prober.siph.get_fiber_length(stage, probe) -> prober.siph.[top|bottom].{probe}.get_fiber_length()
prober.siph.set_hover(stage, probe, gap) -> prober.siph.[top|bottom].{probe}.set_hover(gap)
prober.siph.coupling(probe, axis) -> prober.siph.{probe}.coupling(axis)
prober.siph.get_alignment(probe, fiber_type) -> prober.siph.{probe}.get_alignment(fiber_type)
prober.siph.set_alignment(probe, fiber_type, coarse, fine, gradient, rotary)
-> prober.siph.{probe}.set_alignment(fiber_type, coarse, fine, gradient, rotary_gradient, focal_gradient)
prober.siph.set_origin(probe) -> prober.siph.{probe}.set_origin()
prober.siph.move_origin(probe) -> prober.siph.{probe}.move_origin()
prober.siph.pivot_point(probe) -> prober.siph.{probe}.pivot_point()
prober.siph.move_nanocube_xy(probe, x, y) -> prober.siph.{probe}.move_nanocube_xy(x, y)
prober.siph.get_nanocube_xy(probe) -> prober.siph.{probe}.get_nanocube_xy()
prober.siph.get_nanocube_z(probe) -> prober.siph.{probe}.get_nanocube_z()
Newly wrapped positioner commands: enable_distance_sensor, fiber_power_reading, fine_alignment,
move_nanocube_z, set_pivot_point (per positioner).
get_alignment returns one flag per search type of the fiber type (3 to 5 values) instead of always four.
set_alignment sends only the flags given; rotary_gradient and focal_gradient are optional and depend on the fiber type.
Bugfixes:
+ fix for #53 (get_cap_sensor command not working with SENTIO V26)
- Since SENTIO 25.2 "siph:get_cap_sensor" returns a single value for one positioner. Use
prober.siph.[top|bottom].{position}.get_cap_sensor() which wraps "siph:{stage}:{position}:get_cap_sensor".
+ SentioProber(comm, compat_level=...) ignored an explicitly passed compatibility level and always
raised "Compatibility level could not be determined".
New functions:
+ prober.list_project_files() (requires SENTIO 26.2)
+ prober.aux.cleaning.reset_touch_count(chuck_site)
+ prober.siph.[top|bottom].{position}.* (see above)
+ prober.siph.get_prop(...) / set_prop(...) for the SiPH module properties (siph:get_prop / siph:set_prop)
+ prober.probe.[top|bottom].{position}.move_uvw(axis, value) and .get_uvw(axis) wrapping the remote commands
"probe:{top|bottom}:{position}:move_uvw" / "get_uvw" (SENTIO 25.2 and newer). Unlike siph.move_position_uvw
they also address bottom positioners.
New enumerations:
+ PowerMeterUnit (mWatt, dBm)
+ FiberType.LensedArray
Modifications:
+ prober.vision.align_wafer has a new optional timeout parameter (SENTIO #22611)
+ prober.siph.move_position_uvw is marked deprecated; use prober.probe.[top|bottom].{position}.move_uvw instead.
+ new compatibility level CompatibilityLevel.Sentio_26_2 (SENTIO 26.2 and newer)
+ StageCommandGroup.set_home: site can now be passed without x and y; argument formatting fixed
+ new enum method Stage.to_probe_selector() returning "top" / "bottom".
+ documentation: new page SiPHPositionerCommandGroup.md, SiPH navigation split into two pages.
+ unit tests: all tests pass an explicit compatibility level; new test files TestCompatibility,
TestEnumerations and TestSiPHPositionerCommandGroup.
Version 25.2.1
=============
Service release.
Bugfixes:
+ fix for #49 (VisionCompensationGroup.start_execute always expected three parameters; moveToOffset
parameter was missing). Signature is now start_execute(compensation_type, mode=None, moveToOffset=None).
+ SENTIO 26.x was not recognized by the compatibility level detection; the stage command groups
(prober.chuck, prober.scope, prober.probe.top/bottom) were therefore unavailable with SENTIO 26.
New functions:
+ prober.probe.get_probe_status(...)
+ prober.probe.enable_probe_motor(...)
Modifications:
+ hard deprecation warnings ("deprecated" package) removed and replaced by documentation hints.
+ typed overloads for get_prop in the module command groups.
+ documentation updated (#47 ZReference compensated contact, #48 move_xy XyReference usage).
Version 25.2.0
=============
Major API consolidation release. The Python API was made consistent with the SENTIO remote command API.
See https://github.com/SentioProberDev/SentioProberControl/releases/tag/v25.2.0 for the full list of
pull requests. This release contains breaking changes (see issue #46):
+ Function names and parameter order now follow the underlying remote command.
+ String parameters that represent a fixed set of values were replaced by enums.
+ Functions no longer return Response objects; failures are signalled by exceptions.
New features:
+ compatibility levels (CompatibilityLevel.Sentio_24_0 / Sentio_25_1 / Sentio_25_2). SentioProber queries
the SENTIO version on construction; commands not supported by the connected SENTIO raise a RuntimeError
with a clear message instead of failing with a cryptic remote command error (#42).
+ generic stage command groups mirroring the SENTIO 25.2 remote command structure (SENTIO >= 25.2):
- prober.chuck.*, prober.scope.*
- prober.probe.top.{east|west|north|south|northeast|northwest|southeast|southwest}.*
- prober.probe.bottom.{east|west|...}.*
- prober.probe.{east|west|...}.* as shortcut for the top probes
+ new command groups: prober.setup (incl. setup.contact_counter, setup.remote), prober.vision.pattern,
prober.map.view
+ SiPH command group completed (fast_alignment, get_cap_sensor, get_fiber_length, get_intensity,
gradient_search, move_hover, move_separation, move_position_uvw, pivot_point, set_hover, set_pivot_point,
coupling, start_tracking, download_graph_data, nanocube commands, ...)
+ probe command group completed (async_step_probe_site*, get_probe_site*, get_probe_xy/z,
move_probe_contact/home/lift/separation/xy/z, set_probe_contact/home, step_probe_site*, ...)
+ many missing remote commands wrapped in the aux, loader, status, qalibria, vision, vision.camera,
wafermap (bins, die, path, poi, subsite, compensation) command groups and on SentioProber itself
(e.g. chuck/scope/vce movement, project handling, door lock, signal tower, indexer, wafer id, ...)
+ SentioProber.get_wafer_diameter, SentioProber.move_chuck_lift
+ communicators accept an encoding parameter (default: locale preferred encoding)
+ unit tests for all command groups added (sentio_prober_control/UnitTest)
Bugfixes:
+ fix for #17 (status:set_chuck_temp is missing the new optional parameter)
+ fix for #34 (nanocube remote commands do not have a siph prefix)
+ fix for #38 (ZReference bug when communicating with SENTIO 24.x)
+ fix for #42 (get_probe_site not working)
+ missing DriftType added; missing remote command error code added
+ set_chuck_site_height return values changed to mimic the remote command response
+ map:get_orient_marker returns an enum
Modifications / breaking changes:
+ enums renamed or replaced:
- ChuckXYReference, ScopeXYReference, ProbeXYReference -> XyReference
- ChuckZReference, ScopeZReference, ProbeZReference, VceZReference -> ZReference
- ChuckThetaReference -> ThetaReference
- ProbeSentio -> ProbePosition
+ new enums: AccessLevel, ChuckSpeed, ChuckThermoEnergyMode, ChuckThermoHoldMode, DevicePosition,
DriftType, ElementType, FiberType, HighPowerAirState, MoveAxis, PathSelection, SoftContactState,
SubsiteGroup, SwapBridgeSide, UserCoordState, UvwAxis, VacuumState, WaferIdSide, XyCompensationType,
ZCompensationType
+ removed: vision.create_probepad_model, vision.detect_probepads
+ aux and qalibria command group API simplified
+ member functions sorted alphabetically (needed for the generated documentation)
Version 24.4.0
=============
Bugfixes:
+ fix for #15 (align_wafer remote method behaviour is different compared to when ran locally)
+ fix for #16 (get_intensity method is broken)
Modifications:
+ removed return type from prober.vision.align_wafer function
Version 24.0.3
=============
Bugfixes:
+ fix for #12 (class ProbeCommandGroup has inheritance bug)
Version 24.0.1
=============
Modifications:
+ default timeout of the waitcomplete command increased to 300 seconds.
+ map.bins.set_bin parameters col, row and site are now optional as in the corresponding remote command.
Version 23.1.x
=============
Bugfixes:
+ Fix for SENTIO#12991 (#4)
+ The Module enumerator did not have a "Loader" entry.
+ move_vce_z was broken
Modification:
+ Common Probe Tip detector added (new SENTIO 3.8)
- prober.vision.detect_probetips adapted to SENTIO changes
+ remote command error codes updated
Version 3.6.0
=============
New features:
+ New Remote command wrapper functions:
- prober.status.get_chuck_temp
- prober.status.get_chuck_temp_setpoint
- prober.status.set_chuck_temp
- prober.status.get_chuck_thermo_state
Version 3.5.1
=============
New Features:
+ added communicator class for NI GPIB drivers
Version 3.5.2
=============
New Features:
+ no new features
Python API Bugfixes:
+ When no subsite was specified "prober.map.step_next_die" and
"prober.map.bin_step_next_die" were always stepping to site 0
instead of staying at the current site
+ missing error handling in map.step_first_die added