Skip to content

Commit 83262f8

Browse files
committed
[feat] driver hamamatsurx: add support for photon-counting acquisition
1 parent ca65a44 commit 83262f8

4 files changed

Lines changed: 854 additions & 349 deletions

File tree

install/linux/usr/share/odemis/sim/sparc2-ek-streakcam-sim.odm.yaml

Lines changed: 18 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,6 @@
22
"SPARCv2 EK + Streakcam": {
33
class: Microscope,
44
role: sparc2,
5-
children: ["SEM E-beam", "SEM Detector", "Calibration Light",
6-
"Optical Path Properties", "Spectrometer Vis-NIR",
7-
"Camera", "CL Detector", "Spectrograph",
8-
"Spec Filter Wheel", "Spec CCD Flipper", "Spectrograph focus",
9-
"Mirror Actuators", "Mirror Actuators in XY referential",
10-
"Slit", "CL Selector", "CL Filter Wheel",
11-
"Lens1 Mover", "Lens2 Switch",
12-
"Streak Readout CCD", "Streak Delay Generator", "Streak Unit",
13-
"Streak Lens"],
145
}
156

167
# Light (lamp with known spectrum)
@@ -150,9 +141,11 @@
150141

151142
# simple simulated streak camera
152143
"Streak Camera": {
153-
class: simstreakcam.StreakCamera,
144+
class: hamamatsurx.StreakCamera,
154145
role: streak-cam,
155146
init: {
147+
host: "fake-synchroscan", # starts a local HPDTA simulator
148+
port: 11001,
156149
},
157150
children: {
158151
readoutcam: "Streak Readout CCD",
@@ -164,38 +157,26 @@
164157
},
165158
}
166159

167-
# for testing with real HW
168-
#"Streak Camera": {
169-
# class: hamamatsurx.StreakCamera,
170-
# role: streak-cam,
171-
# init: {
172-
# host: "172.16.4.2", # Braunschweig System
173-
# port: 1001
174-
# },
175-
# children: {
176-
# readoutcam: "Streak Readout CCD",
177-
# delaybox: "Streak Delay Generator",
178-
# streakunit: "Streak Unit"
179-
# },
180-
# dependencies: {
181-
# spectrograph: "Spectrograph"
182-
# },
183-
#}
184-
185160
"Streak Readout CCD": {
186161
role: streak-ccd,
187162
init: {
188-
image: "sparc-ar-mirror-align.h5", # only for simulator! TODO replace with streak image
189-
# device: 0,
190163
transp: [-1, 2], # if mirrored on X axis
164+
can_photon_counting: true,
191165
},
192-
# dependencies: {spectrograph: "Spectrograph"},
193-
# TODO does not work for now as modelgen says no component named spectrograph found
194166
}
195167

196168
"Streak Unit": {
197169
role: streak-unit,
198170
init: {
171+
# Needed when using the synchroscan version
172+
# Arbitrary value -> range
173+
"time_ranges": {
174+
1: 78.e-12,
175+
2: 235.e-12,
176+
3: 720.e-12,
177+
4: 1600.e-12,
178+
5: 3600.e-12,
179+
},
199180
},
200181
affects: ["Streak Readout CCD"],
201182
}
@@ -205,31 +186,11 @@
205186
init: {
206187
},
207188
metadata: {
208-
TIME_RANGE_TO_DELAY: {
209-
# timeRange (s) -> triggerDelay (s)
210-
1.0e-09: 7.99e-9, # 1ns
211-
2.e-09: 9.63e-9, # 2ns
212-
5.e-09: 3.32e-8, # 5ns
213-
1.e-08: 4.59e-8, # 10ns
214-
2.e-08: 6.64e-8, # 20ns
215-
5.e-08: 1.02e-7, # 50ns
216-
1.e-07: 1.69e-7, # 100ns
217-
2.e-07: 3.02e-7, # 200ns
218-
5.e-07: 7.31e-7, # 500ns
219-
1.e-06: 1.39e-6, # 1us
220-
2.e-06: 2.69e-6, # 2us
221-
5.e-06: 7.02e-6, # 5us
222-
1.e-05: 1.38e-5, # 10us
223-
2.e-05: 2.67e-5, # 20us
224-
5.e-05: 8.16e-5, # 50us
225-
1.e-04: 1.61e-4, # 100us
226-
2.e-04: 3.20e-4, # 200us
227-
5.e-04: 7.98e-4, # 500us
228-
1.e-03: 1.62e-3, # 1ms
229-
2.e-03: 3.18e-3, # 2ms
230-
5.e-03: 7.88e-3, # 5ms
231-
1.e-02: 1.54e-2, # 10ms
232-
},
189+
# Not used with synchroscan, as the delay is dependent on the signal too.
190+
# TIME_RANGE_TO_DELAY: {
191+
# # timeRange (s) -> triggerDelay (s)
192+
# 1.0e-09: 7.99e-9, # 1ns
193+
# },
233194
},
234195
affects: ["Streak Unit", "Streak Readout CCD"],
235196
}

install/linux/usr/share/odemis/sim/sparc2-streakcam-sim.odm.yaml

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -239,11 +239,13 @@
239239
affects: ["SEM E-beam", "Streak Readout CCD", "SEM Detector", "CL Detector", "EBIC"],
240240
}
241241

242-
# simple simulated streak camera
242+
# Streak camera simulator using the HPDTASim (RemoteEx protocol)
243243
"Streak Camera": {
244-
class: simstreakcam.StreakCamera,
244+
class: hamamatsurx.StreakCamera,
245245
role: streak-cam,
246246
init: {
247+
host: "fake-singlesweep", # starts a local HPDTA simulator
248+
port: 11001,
247249
},
248250
children: {
249251
readoutcam: "Streak Readout CCD",
@@ -255,30 +257,11 @@
255257
},
256258
}
257259

258-
# for testing with real HW
259-
#"Streak Camera": {
260-
# class: hamamatsurx.StreakCamera,
261-
# role: streak-cam,
262-
# init: {
263-
# host: "172.16.4.2", # Braunschweig System
264-
# port: 1001
265-
# },
266-
# children: {
267-
# readoutcam: "Streak Readout CCD",
268-
# delaybox: "Streak Delay Generator",
269-
# streakunit: "Streak Unit"
270-
# },
271-
# dependencies: {
272-
# spectrograph: "Spectrograph"
273-
# },
274-
#}
275-
276260
"Streak Readout CCD": {
277261
role: streak-ccd,
278262
init: {
279-
image: "sparc-ar-mirror-align.h5", # only for simulator! TODO replace with streak image
280-
# device: 0,
281263
transp: [-1, 2], # if mirrored on X axis
264+
can_photon_counting: true,
282265
},
283266
metadata: {
284267
CALIB: {"intensity_limit": 50000}, # counts/s, high max to not trigger easily the safety check
@@ -288,7 +271,15 @@
288271
"Streak Unit": {
289272
role: streak-unit,
290273
init: {
291-
# settings_ini: "C:\ProgramData\Hamamatsu\HPDTA\SingleSweep.ini" # path of the .ini file for HPDTA to run
274+
# Needed when using the synchroscan version
275+
# # Arbitrary value -> range
276+
# "time_ranges": {
277+
# 1: 78.e-12,
278+
# 2: 235.e-12,
279+
# 3: 720.e-12,
280+
# 4: 1600.e-12,
281+
# 5: 3600.e-12,
282+
# },
292283
},
293284
affects: ["Streak Readout CCD"],
294285
}

0 commit comments

Comments
 (0)