A powerful Q-SYS Designer plugin that automatically discovers and displays all Q-SYS devices on your network using the Q-SYS Discovery Protocol (QDP).
Developed for the Q-SYS community by Fresh AV Labs, makers of Q-SYS plugins and embedded hardware bridges for AV integrators.
The QSC Device Discovery Plugin passively listens for Q-SYS Discovery Protocol (QDP) announcements broadcast by Q-SYS Cores, I/O Frames, and other network devices. It provides a simple interface to discover, filter, and manage Q-SYS devices on your network without requiring manual IP configuration.
- Automatic Discovery - Passively listens for QDP announcements on multicast address 224.0.23.175
- Device Information - Displays hostname, IP address, and part number for each device
- Advanced Filtering - 10 configurable filter slots to exclude unwanted devices
- Real-Time Updates - Device list updates as announcements are received
- Debug Logging - Comprehensive debug output for troubleshooting
- Auto Timeout - 15-second scan with automatic socket cleanup
- Q-SYS Designer v9.0 or later
- Network with multicast support (IGMP)
- UDP port 2467 available
- Download the latest release from the Releases page
- Copy
QSC_Device_Discovery.qplugto your Q-SYS Plugins folder:- Windows:
%USERPROFILE%\Documents\QSC\Q-Sys Designer\Plugins - macOS:
~/Documents/QSC/Q-Sys Designer/Plugins
- Windows:
- Open Q-SYS Designer
- Add the plugin to your design:
- Search for "QSC Device Discovery" in the component search
- Drag it onto your schematic
- Double-click the component to open the control panel
- Click the Scan Network button
- Wait up to 15 seconds for discovery to complete
- View discovered devices in the device list
Each device entry shows:
1. device-hostname (Part-Number) - 192.168.1.100
Filters exclude devices from the results based on partial text matching against hostname, IP address, or part number.
Examples:
| Filter Text | Excludes |
|---|---|
192.168.1 |
All devices in the 192.168.1.x subnet |
burnin |
Any device with "burnin" in the hostname |
QIO |
All QIO series devices |
Core Nano |
All Core Nano devices |
.234 |
Devices ending in .234 |
To use filters:
- Enter text in any Filter 1-10 field
- Device list updates automatically
- Leave filter fields empty to show all devices
QDP is a method where Q-SYS devices broadcast periodic UDP packets to announce their presence:
- Protocol: UDP Multicast
- Multicast Address: 224.0.23.175
- Port: 2467
- Broadcast Interval: ~1 second
- Format: XML
<QDP>
<device>
<n>audio-core-main</n>
<type>lcqln</type>
<part_number>Core 110f</part_number>
<lan_a_ip>192.168.1.100</lan_a_ip>
<lan_a_mac>00:60:74:xx:xx:xx</lan_a_mac>
...
</device>
</QDP>The plugin passively listens for these announcements and parses the XML to extract device information.
- Same Network Segment: Plugin must be on the same subnet as target devices, or multicast must be routed
- Multicast Support: Network switches must support and forward multicast traffic (IGMP)
- Port Availability: UDP port 2467 must not be blocked or in use
- Firewall: Allow UDP port 2467 inbound
No special configuration required. The plugin works out of the box in Q-SYS Designer.
Problem: Scan completes but shows "Found 0 devices"
Solutions:
- Verify network connectivity (ping a known device)
- Check if multicast is supported on your switch (IGMP)
- Ensure port 2467 is not blocked by firewall
- Confirm devices are powered on and connected
- Check Debug Output in Q-SYS Designer for error messages
Problem: Some known devices don't appear
Solutions:
- Check if devices are filtered by active filters
- Wait a few seconds after device boot before scanning
- Verify devices are on the same network segment
- Some older device types may not broadcast QDP
Problem: Error message "Failed to open UDP port"
Solutions:
- Close Q-SYS Designer's built-in discovery window
- Check for other applications using port 2467
- Restart Q-SYS Designer
- Run Q-SYS Designer as administrator (Windows)
Enable debug output: View → Debug Output in Q-SYS Designer
Look for messages prefixed with [QSC Discovery] for detailed troubleshooting information.
Plugin (UDP Socket) → Listens on 0.0.0.0:2467
↓
Receives QDP Announcements
↓
Parse XML Data
↓
Apply Filters (if any)
↓
Update Device Registry
↓
Display in Device List
- Q-SYS Lua environment does not support
JoinMulticastGroup() - Plugin relies on OS-level multicast handling
- No reverse DNS lookup capability
- Single network interface binding
For detailed technical information, see Technical Documentation.
- User Manual - Comprehensive user guide
- Technical Documentation - Developer documentation
- LICENSE - MIT License text
Contributions are welcome! This is an open-source project under the MIT License.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow existing code style and conventions
- Add debug logging for new features
- Test changes thoroughly in Q-SYS Designer
- Update documentation for new features
- Be respectful and constructive
Found a bug or have a feature request? Please open an issue with:
- Q-SYS Designer version
- Plugin version
- Network configuration details
- Debug log output (if applicable)
- Steps to reproduce the issue
- Active query mode (send requests to trigger responses)
- Persistent device list (accumulate across scans)
- CSV/JSON export functionality
- Historical device tracking (up/down events)
- Regex support for filters
- Device details view (full XML data)
- Network ping integration
- Device reachability verification
- Multi-subnet discovery support
- Custom scan duration
- Save/load filter presets
- Added 10 configurable filters
- Implemented real-time filter updates
- Fixed continuous packet reception bug
- Improved XML parsing robustness
- Enhanced debug logging
- Updated UI with filter section
- Initial release
- Basic QDP listening
- XML parsing for hostname and IP
- 15-second scan timer
- Status indicators
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright (c) 2025 Brandon Cecil / Fresh AV Labs
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
Author: Brandon Cecil
Company: Fresh AV Labs
Project Link: https://github.com/bcecilpgh/QDP-Device-Discovery
If you find this plugin useful, please:
- Star this repository
- Report bugs via Issues
- Suggest features via Issues
- Contribute via Pull Requests
- Share with other Q-SYS users
This plugin is provided "as-is" without warranty. Use at your own risk. Always test in a non-production environment before deploying to live systems.
Q-SYS, Q-SYS Designer, and related trademarks are property of QSC, LLC. This plugin is an independent project and is not affiliated with or endorsed by QSC.
Built for the Q-SYS community by Fresh AV Labs. More Q-SYS plugins and hardware: freshavlabs.com