Skip to content

Python replacement for LabVIEW instrument control server #13

@formeo

Description

@formeo

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions