fc43fbe4b0
- Merged four separate hardware control projects into unified platform - Created unified requirements.txt with all dependencies - Added comprehensive .gitignore - Added project overview README Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
58 lines
1.7 KiB
Markdown
58 lines
1.7 KiB
Markdown
# scanengine-3
|
|
|
|
A unified scanning and instrumentation control platform combining multiple hardware control modules.
|
|
|
|
## Overview
|
|
|
|
scanengine-3 merges four previously separate projects into a single, cohesive platform:
|
|
|
|
- **nuescan**: SRAS scan planning and control software with PyQt6 GUI
|
|
- **pymso**: Tektronix oscilloscope control and data acquisition
|
|
- **pybbd202**: Thorlabs BBD203/MLS203 motor controller driver
|
|
- **pypewpewhops**: Coherent HOPS laser control via I2C
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
scanengine-3/
|
|
├── nuescan/ # Main scan control application with GUI
|
|
├── pymso/ # Oscilloscope control module
|
|
├── pybbd202/ # Stage controller driver
|
|
├── pypewpewhops/ # Laser control module
|
|
├── requirements.txt # Unified dependencies
|
|
└── README.md # This file
|
|
```
|
|
|
|
## Installation
|
|
|
|
1. Create a virtual environment:
|
|
```bash
|
|
python -m venv venv
|
|
source venv/bin/activate # On Windows: venv\Scripts\activate
|
|
```
|
|
|
|
2. Install dependencies:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
## Dependencies
|
|
|
|
- **PyQt6**: GUI framework for nuescan
|
|
- **pyserial**: Serial communication for hardware interfaces
|
|
- **pyvisa/pyvisa-py**: VISA instrument control for oscilloscopes
|
|
- **pyftdi**: FTDI device support for laser and stage controllers
|
|
|
|
## Usage
|
|
|
|
Refer to the README files in each subdirectory for specific usage instructions:
|
|
|
|
- `nuescan/README.md` - Main application usage
|
|
- `pymso/` - Oscilloscope control examples
|
|
- `pybbd202/README.md` - Stage controller documentation
|
|
- `pypewpewhops/README.md` - Laser control documentation
|
|
|
|
## License
|
|
|
|
Each module retains its original license. See individual subdirectories for license information.
|