ZT-100-C Tool - Linux Installation Guide ========================================= Requirements ------------ - Python 3.10 or later - pip (Python package manager) - USB-to-RS485 adapter (FTDI recommended) - ZT-100-C device connected via RS485 Installation ------------ 1. Download and extract ZT100C_Tool_1.0.0_linux.tar.gz: tar xzf ZT100C_Tool_1.0.0_linux.tar.gz 2. Create a virtual environment (recommended): python3 -m venv venv source venv/bin/activate 3. Install dependencies: pip install -r requirements.txt Serial Port Permissions ----------------------- Your user must have access to serial ports. Add yourself to the dialout group: sudo usermod -a -G dialout $USER Log out and back in for the change to take effect. Running the Application ----------------------- 1. Start the application: python3 run.py 2. Your default browser opens automatically to http://localhost:8200 3. To run without opening a browser: python3 run.py --no-browser 4. Stop the application with Ctrl+C in the terminal Connecting to a Device ---------------------- 1. Connect your USB-to-RS485 adapter to the PC 2. Connect the RS485 wires to the ZT-100-C device (A/B terminals) 3. In the browser, click the "Connect" tab in the left sidebar 4. Select "RS485 Terminal" mode (default) 5. Choose your serial port from the dropdown (typically /dev/ttyUSB0) 6. Click "Connect" 7. The device name and version appear in the top bar Streaming Measurements ---------------------- 1. Go to the "Monitor" tab 2. Click "Start Stream" to begin live measurement polling 3. Values update every second (water cut, temperature, capacitance, current) 4. Click "Start Logging" to save measurements to a CSV file 5. The log file path appears in the top connection bar Log File Location ----------------- CSV log files are saved to: ~/Documents/ZT100C_Logs/ Troubleshooting --------------- - If no serial ports appear, check that your USB adapter is connected: ls /dev/ttyUSB* - If you get "permission denied", ensure your user is in the dialout group - If port 8200 is already in use, another instance may be running - To use a different port, edit PORT in run.py