-
Notifications
You must be signed in to change notification settings - Fork 10
Open
Description
Hi,
I've been working on a hardware abstraction layer for STM automation
(amrl-transport) and as part
of it I reverse-engineered the DeepSPM wire protocol from your source code
and implemented a pure Python asyncio server that speaks the same protocol.
What it does:
- Drop-in replacement for the LabVIEW instrument control server
- Implements all 6 commands:
scan,tipshaping,tipclean,getparam,approach,movearea - Same binary response format (big-endian float32 scan data)
- Existing DeepSPM agent code connects to it without changes — just point to
localhost:5556 - Works with a simulated STM backend for development without hardware
Why this might be useful:
- Removes the LabVIEW dependency (proprietary, Windows-only, ~$3500/yr)
- Cross-platform: runs on Linux/Mac/Windows
- Easier to extend with new commands or backends
- Enables CI testing of the agent code without a real microscope
The implementation is at:
- Server: amrl_transport/deepspm/server.py
- Protocol parser: amrl_transport/deepspm/protocol.py
- Compatible client: amrl_transport/deepspm/client.py
Usage:
pip install amrl-transport
python -m amrl_transport.deepspm --transport simulator
# Agent connects to localhost:5556 as usualI'd be happy to contribute this as a PR if you're interested — either as a
standalone pyserver/ directory alongside labview/, or however you'd
prefer to integrate it.
The package is MIT-licensed, so there are no licensing conflicts with BSD-3.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels