# Quick Start Guide ## Installation ```bash # Install dependencies pip install -r requirements.txt ``` ## Basic Usage ### 1. Run Your First Test ```bash python test_latency.py \ --serial-number "SN001234" \ --software-version "initial" \ --comment "First test run" ``` **What happens:** - Auto-detects your Scarlett audio interface - Plays chirp signal and measures latency (5 measurements by default) - Records input/output on both channels - Calculates average, min, max, and standard deviation of latency - Saves results to `test_results/YYYYMMDD_HHMMSS_latency/YYYYMMDD_HHMMSS_latency_results.yaml` ### 2. View Results ```bash # List all test results python view_results.py --list # View specific test (example) python view_results.py test_results/20260226_123456_results.yaml # View example result python view_results.py example_test_result.yaml ``` ### 3. Compare Different Units Run multiple tests with different metadata: ```bash # Test unit SN001234 python test_latency.py --serial-number "SN001234" --software-version "abc123" # Test unit SN001235 with more measurements python test_latency.py --serial-number "SN001235" --software-version "abc123" --measurements 10 # Compare by viewing both YAML files python view_results.py test_results/20260226_120000_latency/20260226_120000_latency_results.yaml python view_results.py test_results/20260226_130000_latency/20260226_130000_latency_results.yaml ``` ## Understanding the Output Each latency test produces: - **Average Latency (ms)**: Mean delay across all measurements - **Min/Max Latency (ms)**: Range of measured values - **Standard Deviation (ms)**: Consistency of measurements (lower is better) **Good values:** - Latency: Depends on your system (audio interface typically < 10ms) - Standard Deviation: < 1ms (consistent measurements) - Latency: < 5 ms for loopback ## Configuration Edit `config.yaml` to customize test parameters: ```yaml audio: sample_rate: 44100 channels: 2 device_name: "Scarlett" output: results_dir: "test_results" save_plots: true ``` ```bash python -c "import sounddevice as sd; print(sd.query_devices())" ``` Update `device_name` in `config.yaml` to match your device. ## Troubleshooting **Audio device not found:** ```bash python -c "import sounddevice as sd; print(sd.query_devices())" ``` Update `device_name` in `config.yaml` to match your device. **Permission errors:** Make scripts executable (Linux/Mac): ```bash chmod +x run_test.py view_results.py ``` ## Next Steps 1. Run baseline tests with known-good hardware 2. Test different PCB revisions 3. Track software version changes 4. Archive YAML files for long-term tracking 5. Build comparison scripts as needed