Files
scanengine-3/HELIOS_TEST_README.md
T
Thomas Ales [M S E] a0e0151b5d pre uc480 integration
2026-05-22 09:38:39 -05:00

146 lines
4.6 KiB
Markdown

# Helios Laser Test Application
A simple PyQt6 GUI application for testing and controlling the Helios pulsed laser system.
## Features
- **Connection Management**: Connect/disconnect to the laser via RS-232 serial port
- **Frequency Control**: Set and query laser pulse frequency (16,700 - 125,000 Hz)
- **Current Control**: Set and query pump diode current (0 - 7,000 mA)
- **Pulse Mode**: Select from three pulse modes:
- Single Pulse
- Continuous Gating
- Continuous Pulsing
- **Laser Enable/Disable**: Control laser emission with dedicated buttons
- **System Information**: Query and display controller and head serial numbers
- **Power Monitoring**: Query and display output power in mW
- **Message Log**: Real-time log of operations and responses
## Usage
### Starting the Application
```bash
/opt/scanengine-3/run_helios_test.sh
```
Or directly:
```bash
source /opt/srasenv/bin/activate
cd /opt/scanengine-3
python3 helios_test_app.py
```
### Connection
1. **Select Serial Port**: Choose the appropriate serial port from the dropdown (e.g., `/dev/ttyUSB0`)
2. **Refresh Ports**: Click "Refresh Ports" to update the list of available ports
3. **Connect**: Click "Connect" to establish connection with the laser
4. Once connected, the status will show "Connected to [port]" in green
### Control Tab
#### Frequency Control
- Enter desired frequency (16,700 - 125,000 Hz)
- Click **Set Frequency** to apply the setting
- Click **Query** to read the current frequency from the laser
#### Current Control
- Enter desired pump diode current (0 - 7,000 mA)
- Click **Set Current** to apply the setting
- Click **Query** to read the current from the laser
#### Pulse Mode Control
- Select desired pulse mode from dropdown
- Click **Set Mode** to apply the setting
#### Laser Control
- **Enable Laser**: Starts laser emission
- **Disable Laser**: Stops laser emission
- **Query Status**: Checks if laser is currently enabled/disabled
### Monitor Tab
#### System Information
- **Query All**: Queries all available parameters from the laser
- **Controller SN**: Displays controller serial number
- **Head SN**: Displays laser head serial number
#### Power Monitoring
- **Query Power**: Reads output power in mW
#### Messages
- Real-time log of all operations and responses
- Useful for debugging and verifying commands
## RS-232 Communication Settings
The driver uses the following settings (automatic, no configuration needed):
- **Baud Rate**: 9600
- **Data Bits**: 8
- **Parity**: None
- **Stop Bits**: 1
- **Flow Control**: None
- **Timeout**: 1 second
## Command Reference
The application uses the following Helios commands:
| Command | Function | Range |
|---------|----------|-------|
| `FP=value` | Set frequency period (ns) | 8,000 - 60,000 |
| `FP?` | Query frequency period | - |
| `PC=value` | Set pump current (mA) | 0 - 7,000 |
| `PC?` | Query pump current | - |
| `PM=value` | Set pulse mode (0-2) | 0=Single, 1=Gate, 2=Continuous |
| `LE=value` | Set laser enable (0/1) | 0=Off, 1=On |
| `LE?` | Query laser enable status | - |
| `PO?` | Query output power (mW) | - |
| `SN?` | Query controller serial | - |
| `HSN?` | Query head serial | - |
## Safety Notes
⚠️ **IMPORTANT**: Please follow these safety precautions when using the laser:
1. **Door Switch**: Ensure the laser enclosure door switch is closed during operation
2. **Laser Disable Pin**: The laser disable pin (pin 3) must be properly connected
3. **Residual Emission**: The laser may emit when the door switch is open - always treat it as potentially dangerous
4. **Start Low**: When setting current, start at lower values and increase gradually
5. **Monitor Power**: Use the "Query Power" function to verify safe output levels
## Troubleshooting
### Cannot Connect
- Verify the correct serial port is selected
- Check that the USB-to-RS-232 adapter is properly connected
- Ensure no other application is using the same port
- Try clicking "Refresh Ports" to update the list
### Commands Not Working
- Verify the laser is connected (status shows green)
- Check that the laser is not in error state
- Review the message log for error details
### Serial Numbers Not Showing
- The laser may not respond if not properly powered
- Check the serial connection
- Try the "Query All" button to get diagnostic information
## Files
- `helios_test_app.py` - Main application
- `run_helios_test.sh` - Launcher script
- `hardware/helios_laser.py` - Helios driver
- `docs/protocols/helios_comms_protocol.pdf` - Official Helios documentation
## Requirements
- Python 3.8+
- PyQt6
- pyserial
- Helios laser with RS-232 interface
- USB-to-RS-232 adapter (if using modern computer)