add enderscope stage device adapter#955
Open
mutterer wants to merge 5 commits into
Open
Conversation
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). |
Contributor
There was a problem hiding this comment.
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
EnderscopeXYStageandEnderscopeZStagedevice 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.amand 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.
| - 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(); |
Member
|
Also must have a license. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.