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:
Usage:
pip install amrl-transport
python -m amrl_transport.deepspm --transport simulator
# Agent connects to localhost:5556 as usual
I'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.
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:
scan,tipshaping,tipclean,getparam,approach,movearealocalhost:5556Why this might be useful:
The implementation is at:
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 alongsidelabview/, or however you'dprefer to integrate it.
The package is MIT-licensed, so there are no licensing conflicts with BSD-3.