Skip to content

Add generic slmsuite SLM actuator (simulated, Meadowlark, Holoeye) - #2

Merged
seb5g merged 4 commits into
5.3.xfrom
feature/slmsuite-daq-move
Oct 25, 2026
Merged

seb5g merged 4 commits into
5.3.xfrom
feature/slmsuite-daq-move

Conversation

@seb5g

@seb5g seb5g commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Phase 1 of the slmsuite integration for BeamShaping: a PyMoDAQ plugin giving access to the SLMs supported by slmsuite.

  • Renames the plugin template to pymodaq_plugins_slmsuite and removes the unused template modules (viewers, extension, app).
  • DAQ_Move_SlmsuiteBase: common actuator. The target is a 2D array of the SLM shape (or one value spread over the SLM), displayed as a phase in radians (converted to grey levels by slmsuite: wrapping, LUT, wavefront correction) or as raw grey levels (Input as grey levels setting or as_grey_levels data attribute, as DataShaper of BeamShaping does). Same interface as pymodaq_plugins_holoeye and the BeamShaping mock Shaper.
  • Actuators: Slmsuite (generic: SLM type + constructor arguments as a Python literal dict, parsed with ast.literal_eval), SlmsuiteSimulated, SlmsuiteMeadowlark (win32 only), SlmsuiteHoloeye.
  • hardware/slm_controller.py: thin wrapper over the slmsuite classes (lazy vendor imports, easy to fake in tests).
  • Tests (25 pass) and check_plugin pass, both against the slmsuite SimulatedSLM and a fake controller.

Not validated

Nothing was tested on a real SLM. Meadowlark (then Holoeye) will be tested on hardware by the maintainer before merge.

Notes for review

  • Authors and maintainers are set to the ones of pymodaq_plugins_beam_shaping (cemes address): please confirm.
  • Default wavelength (515 nm, as in BeamShaping) is in resources/config_template.toml.
  • Phase 2 (separate PRs): slmsuite hologram algorithm wrapper and an entry-point mechanism so BeamShaping discovers algorithms from other packages.

Generated by Claude Code

…eye variants

Rename the plugin template to pymodaq_plugins_slmsuite and add a DAQ_Move
family driving any slmsuite SLM with the same phase / grey level interface as
the Holoeye plugin and the BeamShaping mock shaper. Tested against the slmsuite
simulated SLM only.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CAhZwmbyCSpSgfTyicUxuS
opencv-python sets QT_QPA_PLATFORM_PLUGIN_PATH to its own bundled Qt plugins when
imported; creating the QApplication afterwards aborted with PyQt5.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CAhZwmbyCSpSgfTyicUxuS
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CAhZwmbyCSpSgfTyicUxuS
@seb5g
seb5g marked this pull request as ready for review October 25, 2026 21:57
@seb5g
seb5g merged commit 19e7467 into 5.3.x Oct 25, 2026
8 checks passed
@seb5g
seb5g deleted the feature/slmsuite-daq-move branch October 25, 2026 21:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants