Skip to content

add enderscope stage device adapter#955

Open
mutterer wants to merge 5 commits into
micro-manager:mainfrom
mutterer:main
Open

add enderscope stage device adapter#955
mutterer wants to merge 5 commits into
micro-manager:mainfrom
mutterer:main

Conversation

@mutterer

@mutterer mutterer commented Jun 2, 2026

Copy link
Copy Markdown

we would like to contribute a device adapter for the Enderscope stage. It should allow to drive any standard 3D printer XY and Z axes.
Jerome.

@nicost

nicost commented Jun 4, 2026

Copy link
Copy Markdown
Member

I added this device adapter to the Windows build, removed the CMake file, and did some Claude-assisted cleanup. Can you check that it all still works as intended? Once you let me know, I am ready to merge (also needs to check that it is included in the unix build).

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Micro-Manager device adapter to control Enderscope/Marlin-compatible motion controllers (3D-printer style) as Micro-Manager XY and Z stage devices over a serial G-code interface.

Changes:

  • Introduces EnderscopeXYStage and EnderscopeZStage device implementations using Marlin G-code commands (e.g., G0, M114, G28, M400, M410).
  • Adds Windows/Visual Studio project files for the adapter and registers the project in micromanager.sln.
  • Adds an adapter-local Makefile.am and documentation for the new device adapter.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
micromanager.sln Registers the new adapter project in the Visual Studio solution (and also adds a new SecretDeviceAdapters project entry).
DeviceAdapters/EnderscopeStage/README.md Documents the adapter behavior, command mapping, and setup notes.
DeviceAdapters/EnderscopeStage/Makefile.am Adds autotools build instructions for the adapter subdirectory (but top-level autotools integration is still missing).
DeviceAdapters/EnderscopeStage/EnderscopeStage.vcxproj Visual Studio project definition for building the adapter on Windows.
DeviceAdapters/EnderscopeStage/EnderscopeStage.vcxproj.filters Visual Studio filters for source/header organization.
DeviceAdapters/EnderscopeStage/EnderscopeStage.h Declares the adapter classes and shared serial/G-code helper methods.
DeviceAdapters/EnderscopeStage/EnderscopeStage.cpp Implements serial transport, G-code command/response handling, and XY/Z stage device behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread micromanager.sln Outdated
Comment thread micromanager.sln Outdated
- Adapter uses synchronous motion (`M400`) and returns `Busy() == false`.
- `Home()` homes only the axes owned by each device; it never falls back to a
full `G28` home-all, so the XY device never moves Z and vice versa.
- To compile in `mmCoreAndDevices`, place this folder under `DeviceAdapters/` and add it to that repository's build configuration (CMake or VS project lists, depending on platform/build system).
Comment on lines +4 to +8
deviceadapter_LTLIBRARIES = libmmgr_dal_EnderscopeStage.la

libmmgr_dal_EnderscopeStage_la_SOURCES = \
EnderscopeStage.cpp \
EnderscopeStage.h
const std::string num = line.substr(numberStart, numberEnd - numberStart);
char* endPtr = 0;
value = std::strtod(num.c_str(), &endPtr);
return endPtr != num.c_str();
@marktsuchida

Copy link
Copy Markdown
Member

Also must have a license.

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.

4 participants