-
Notifications
You must be signed in to change notification settings - Fork 1
Installation
Important
This page is a task-oriented guide. The repository README is the canonical installation reference.
- Python 3.11 or newer
- A Uniden SDS100, SDS150, or SDS200 scanner
- A USB serial connection for any supported model, or a trusted local network for native SDS200 Ethernet features
- FFmpeg with
libmp3lamefor the Broadcastify adapter - A working PortAudio environment for optional local playback
Install the library and sdsctl command:
python -m pip install sds200Install the optional Textual full-screen interface:
python -m pip install "sds200[tui]"Install optional local audio playback:
python -m pip install "sds200[playback]"Install both optional feature groups:
python -m pip install "sds200[tui,playback]"Verify the installation:
sdsctl --version
sdsctl --helpA virtual environment keeps the package and optional dependencies isolated:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install "sds200[tui,playback]"Activate the environment again before using its sdsctl command:
source .venv/bin/activategit clone https://github.com/stevenboyd78/sds200-python.git
cd sds200-python
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"Run the project checks before contributing:
ruff check .
mypy src/sds200
pytest
python scripts/check_docs.py
git diff --checkSome Linux systems do not automatically grant the active user access to the
scanner serial port. The project includes an optional udev rule that uses
systemd-logind uaccess, retains a dialout fallback, and prevents
ModemManager from probing matching scanners.
Follow the canonical Linux udev guide rather than making scanner devices globally writable.
Inspect stable device paths with:
ls -l /dev/serial/by-id/Check that FFmpeg exposes the MP3 encoder required by the Broadcastify adapter:
ffmpeg -version | head -n 1
ffmpeg -hide_banner -encoders 2>/dev/null | grep -F libmp3lameThe encoder listing should contain libmp3lame.
Try automatic USB discovery:
sdsctl discover
sdsctl infoFor an SDS200 on Ethernet:
sdsctl discover --network 192.168.0.0/24 --network-only
sdsctl --host SCANNER_IP infoOnly scan networks you own or are authorized to probe.
- Launch the terminal monitor with
sdsctl monitor. - Launch the optional TUI with
sdsctl tui. - Read the canonical TUI guide.
- Read the canonical network audio guide.
- Open Troubleshooting when discovery or startup fails.