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.
- 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.
- Clone the repository:
git clone https://github.com/bhc1010/sam9000
- Install the required Python packages using pip:
cd pyxm
pip install -r requirements.txt
- Run pyxm:
python src/main.py
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": "..."
}
We welcome contributions to pyxm! If you find a bug, have an enhancement idea, or want to add new features, please follow these steps:
- Fork the repository to your GitHub account.
- Create a new branch with a descriptive name for your changes.
- Make your changes and test thoroughly.
- Commit your changes and push them to your forked repository.
- Create a pull request, explaining your changes in detail.
This project is licensed under the MIT License - see the LICENSE file for details.
For any questions or inquiries, please feel free to contact the project maintainers:
- Ben Campbell - ben.campbell@unh.edu