-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Holoeye #26
Comments
Do you mean there's also a function for Holoeye SLM's? I haven't seen it in the hardware folder. |
Hi @Shuyun1247 , This is an issue on our roadmap. Holoeye support is not currently added to the package, but we welcome contributions to add it! This amounts to using our template to wrap Holoeye functions. You can modify this on a personal branch and then pull request to add it to the main repo. Unfortunately, we don't physically have a Holoeye SLM, so it's difficult for us to add and bugtest a wrapper. It would be ideal if some other group with Holoeye hardware could add this. Alternatively, if you have working code for Holoeye, we can adapt this code to work in slmsuite. However, we would need a group to test this on hardware to make sure things are working before adding it to the main repo. Best, |
Hi ichristen, Will you consider adding a hamamatsu slm? Our lab is using this and I think they also have python SDK. If so, I can provide the working codes and sdk for you and we can the test the codes very soon. Best, |
Hi @Shuyun1247 , I'm unaware of a python SDK for Hamamatsu SLMs. I cannot find a reference to this on their website. Could you point me to this? We have a Hamamatsu SLM and use the
Best, |
Hi Ian,
Thank you for your email. I've compiled the Python SDK and sample codes
that might be of help to you. You can access them via the following Google
Drive link:
https://drive.google.com/file/d/1S2_j8NeYcq8GJ7r-w8VJZnRN4fvB1kfP/view?usp=drive_link.
I'll also explore using the ScreenMirrored SLM interface with our SLM.
Best,
Shuyun
Ian Christen ***@***.***> 于2024年3月8日周五 03:27写道:
… Hi @Shuyun1247 <https://github.com/Shuyun1247> ,
I'm unaware of a python SDK for Hamamatsu SLMs. I cannot find a reference
to this on their website. Could you point me to this?
We have a Hamamatsu SLM and use the ScreenMirrrored
<https://slmsuite.readthedocs.io/en/latest/_autosummary/slmsuite.hardware.slms.screenmirrored.ScreenMirrored.html#slmsuite.hardware.slms.screenmirrored.ScreenMirrored>
SLM interface to project data onto it's virtual screen. You should be able
to use this (although there might still be a versioning issue (#7
<#7> ). We also use this
interface for Thorlabs SLMs.
- I think in the next release we should explicitly state in the docs
which SLMs are supported under ScreenMirrored (Hamamatsu, Thorlabs,
...)
Best,
Ian
—
Reply to this email directly, view it on GitHub
<#26 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BBLQ4K25RWETHTPR6YYPZ5TYXC5TPAVCNFSM6AAAAAAUMYFNH2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBUGI3DSNBYGI>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Hi Shuyun, Thank you for sharing this code. Was the .dll provided by Hamamatsu or was it written by a colleague? To me, it looks like the .dll (and python interface) serves to only display an image on the virtual display and does not provide other functionality (apart from a bit of analytic pattern generation). This operation is similar to In contrast, the
If Hamamatsu provides similar functionality beyond displaying, then it is worthwhile to make a new interface beyond Best, |
Hi Ian,
Thank you for your insights. Following your observations and considering
the advice from Hamamatsu's engineer, it appears that for the specific
wavelength we are utilizing, the Look-Up Table (LUT)'s value remains
constant. This realization led me to consider setting the necessary
parameters directly via `wav_um` and `wav_design` for simplicity.
Additionally, to address wavefront correction, I propose integrating a
`load_vendor_correction()` function into `ScreenMirrored`, which is the
approach used with Santec's interface.
Today, as I attempted to integrate our Hamamatsu SLM with slmsuite, I
encountered an issue. Upon initialization of our SLM, an error message
appeared related to Piglet: "Cannot change it after setting thread mode".
Despite other things seem to go successfully for initilization, the SLM
shows on response on our main screen's window. I ensured that Piglet was
downgraded to version 1.5.27 as recommended in (#7). This issue leaves me
uncertain about its impact, especially concerning the ability to put images
onto the SLM. That’s because after adding the
`load_vendor_phase_correction()` function to `screenmirrored.py` and
putting the phase correction image, the process completes successfully.
However, the SLM still does not display any response or project any images,
which is different to my previous experience with Santec’s SLM.
Could you offer any insights into these issues and whether they might be
affecting the SLM's functionality? Your expertise would be invaluable in
resolving these technical challenges.
Best regards,
Shuyun
Ian Christen ***@***.***> 于2024年3月9日周六 00:02写道:
… Hi Shuyun,
Thank you for sharing this code. Was the .dll provided by Hamamatsu or was
it written by a colleague?
To me, it looks like the .dll (and python interface) serves to only
display an image on the virtual display and does not provide other
functionality. This operation is similar to ScreenMirrored.
In contrast, the Santec or Meadowlark interfaces use SDKs provided by the
respective companies with more functionality than displaying. Specifically:
- Setting 'wavelength tables' or 'LUT' which customize the voltage
outputs corresponding to each discrete integer setpoint.
- Diagnostics such as temperatures or voltages of various components.
- Information about the SLM .info().
If Hamamatsu provides similar functionality beyond displaying, then it is
worthwhile to make a new interface beyond ScreenMirrored. However, I
don't think their hardware is compatible with this. Whatever the case, next
release we should make it more clear that Thorlabs and Hamamatsu SLMs
should use ScreenMirrored.
Best,
Ian
—
Reply to this email directly, view it on GitHub
<#26 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BBLQ4K7QRRPNFB6CWEJ2RQLYXHOJNAVCNFSM6AAAAAAUMYFNH2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBVHE2TMOJQGI>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Hi @Shuyun1247 ,
|
Oh, and setting |
Hi @ichristen , Thank you for your detailed instructions. I've followed your troubleshooting steps and believe I've narrowed down the problem to the scenario where the pyglet window is visible but nothing is displayed on the SLM, suggesting a potential hardware issue. I've attached a screenshot showing the pyglet window with the message "SLM(未响应)," which translates to "SLM (no response)"(which is shown in 1.png). After using your method to inspect the SLM's screen output, it appears blank(2.png). Additionally, I encountered an error soon stating that "python could not be stored. (3.png)" Our system operates on Windows 10, and we're using Python version 3.9.13. Regarding the .dll code for our hardware, my experience is primarily with Santec’s SLM, where the process involved dragging the .dll file into the program's folder. However, we are currently using a Hamamatsu SLM, and I just ran the codes for screenmirrored (which is the same in your provided image). Could you offer any further guidance on addressing this issue, particularly with regards to the .dll code for Hamamatsu SLMs? Any additional assistance would be greatly appreciated. Best, |
Hi @ichristen, |
Hi @Shuyun1247 Awesome! Great to hear that you got it working. I'm also adding a note about this issue in #7 . At some point, we'll update the interface to pyglet 2, but this has been lower priority. One more thing: it looks like you're loading .0125 into Best, |
Yes, I thought i made a mistake before. It's 12.5um!
Ian Christen ***@***.***>于2024年3月14日 周四00:49写道:
… Hi @Shuyun1247 <https://github.com/Shuyun1247>
Awesome! Great to hear that you got it working. I'm also adding a note
about this issue in #7 <#7> .
At some point, we'll update the interface to pyglet 2, but this has been
lower priority.
One more thing: it looks like you're loading .0125 into dx_um and dy_um.
Do you perhaps mean 12.5? These numbers are in microns and 12.5 nm is very
small.
Best,
Ian
—
Reply to this email directly, view it on GitHub
<#26 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BBLQ4K2P7II2YECRB4HDIGDYYB7P7AVCNFSM6AAAAAAUMYFNH2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJUHE2TSMRYGY>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Skeleton for the Holoeye SDK implemented in 8df517a. |
Add a Holoeye interface for their SDK. Interestingly, this appears to have GPU functionality; it might be interesting to try to connect this with CUDA/cupy.
The text was updated successfully, but these errors were encountered: