4.6 KiB
4.6 KiB
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
/opt/scanengine-3/run_helios_test.sh
Or directly:
source /opt/srasenv/bin/activate
cd /opt/scanengine-3
python3 helios_test_app.py
Connection
- Select Serial Port: Choose the appropriate serial port from the dropdown (e.g.,
/dev/ttyUSB0) - Refresh Ports: Click "Refresh Ports" to update the list of available ports
- Connect: Click "Connect" to establish connection with the laser
- 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:
- Door Switch: Ensure the laser enclosure door switch is closed during operation
- Laser Disable Pin: The laser disable pin (pin 3) must be properly connected
- Residual Emission: The laser may emit when the door switch is open - always treat it as potentially dangerous
- Start Low: When setting current, start at lower values and increase gradually
- 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 applicationrun_helios_test.sh- Launcher scripthardware/helios_laser.py- Helios driverdocs/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)