Skip to content
/ pyxm Public

A simple data acquisition manager for microscopists, enabling users to perform multiple imaging and spectroscopy tasks with ease and precision. Imaging or spectroscopy sets (task sets) can be queued up in a task set list and sequentially preformed. Provides an intuitive graphical user interface to ensure a smooth and responsive user experience.

License

Notifications You must be signed in to change notification settings

bhc1010/pyxm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pyxm

pyxm app

pyxm is a data acquisition manager for scanning tunneling, scanning probe, or atomic force microscopes written in Python 3.11 with the PySide6 GUI library. It aims to provide a simple and intuitive interface for users to queue up multiple sets of images and spectroscopy tasks to preform in a user-defined order. TCP/IP commands can be customized through a JSON file to fit the needs of any system. pyxm is designed to communicate with an already existing microscopy controller and cannot control a microscope directly.

⚠️ pyxm is currently in an experimental stage and only been tested on the RHK PanScan Freedom STM in the Hollen Lab, at the University of New Hampshire. ⚠️

Features

  • Connect to an STM device using TCP/IP sockets
  • Fine-tuned control of STM parameters with easy-to-use input fields.
  • Simultaneous execution and creation of tasks allowing for versatile experimentation and an efficient workflow.
  • Preview images from a task inside scan area.
  • Customize TCP/IP commands to accomodate syntax used by the users STM controller.
  • Save task sets for reuse or documentation.

Run from source

  1. Clone the repository:
git clone https://github.com/bhc1010/sam9000
  1. Install the required Python packages using pip:
cd pyxm
pip install -r requirements.txt
  1. Run pyxm:
python src/main.py

Custom STM commands

Commands required to interact with your STM controller can be specified in the 'stm_commands.json' file.

Example of stm_commands.json for the RHK PanScanFreedom via the R9

{
  "set_bias": "SetSWParameter, STM Bias, Value",
  "set_setpoint": "SetSWParameter, STM Set Point, Value",
  "set_scansize": "SetSWParameter, Scan Area Window, Scan Area Size",
  "set_xoffset":   "SetSWParameter, Scan Area Window, X Offset",
  "set_yoffset":   "SetSWParameter, Scan Area Window, Y Offset"
  "etc": "..."
}

Contributing

We welcome contributions to pyxm! If you find a bug, have an enhancement idea, or want to add new features, please follow these steps:

  1. Fork the repository to your GitHub account.
  2. Create a new branch with a descriptive name for your changes.
  3. Make your changes and test thoroughly.
  4. Commit your changes and push them to your forked repository.
  5. Create a pull request, explaining your changes in detail.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contact

For any questions or inquiries, please feel free to contact the project maintainers:

About

A simple data acquisition manager for microscopists, enabling users to perform multiple imaging and spectroscopy tasks with ease and precision. Imaging or spectroscopy sets (task sets) can be queued up in a task set list and sequentially preformed. Provides an intuitive graphical user interface to ensure a smooth and responsive user experience.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published