A professional tool for configuring and troubleshooting OSDP devices.
Physical access to spaces is typically granted using readers and badges. The readers are usually low-powered end point devices that depend on a control panel to determine if the card credential is authorized to gain access. The communication between the reader and control panel is done via the Open Supervised Device Protocol (OSDP). Current access control panels can lack good tools to manage their connected OSDP devices. The goal of this project is to fill this gap with the necessary tools needed for technicians who are working with OSDP.
Core functionality is under an open source license to help increase the adoption rate of OSDP. A fully functional OSDP Bench tool can be compiled under this license at no cost. We encourage OSDP hardware vendors to utilize this project to speed up the development of their own OSDP related tools.
- Device Discovery - Automatically discover OSDP devices on serial connections
- Real-time Monitoring - Monitor card reads, keypad entries, and device status
- Device Configuration - Configure LEDs, buzzers, and communication parameters
- Packet Tracing - View detailed OSDP communication packets
- Multi-language Support - Available in multiple languages
- Cross-platform - Built on .NET 8.0 for modern compatibility
OSDP Bench is available for purchase on multiple platforms:
- .NET 8.0 SDK or later
- Windows 10/11 (for WinUI version)
- Serial port access for device communication
-
Clone the repository:
git clone https://github.com/bytedreamer/OSDP-Bench.git cd OSDP-Bench
-
Build the solution:
dotnet build OSDP-Bench.sln
-
Run the application:
dotnet run --project src/UI/Windows
- Launch OSDP Bench
- Select your serial port from the dropdown
- Choose "Discover" to automatically find devices or "Manual" to connect directly
- Begin monitoring device activity or configure device settings
- Developer Guidelines - Development guidelines and build commands
- UI Style Guide - Comprehensive design system and styling guidelines
- Connection Plugin Architecture - Plan for implementing pluggable connection types (Serial, Bluetooth, Network)
- Localization Plan - Multi-language support implementation
- Language Switching - Language switching functionality
- Language Fixes - Language switching issue fixes
We welcome contributions! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
For documentation contributions:
- Place new documentation in the
docs/
directory - Use descriptive filenames with
.md
extension - Update this README to include the new file
- Follow the existing documentation style and structure
To create a new release:
- Ensure you're on the
develop
branch with all changes committed - Run the release script:
./ci/release.ps1
- The script will:
- Verify no uncommitted changes exist
- Check that develop is ahead of main
- Display changes to be released
- Merge develop into main (with confirmation)
- Push to trigger automated CI/CD pipeline
The CI pipeline will automatically handle version bumping and release creation.
This project is licensed under the Eclipse Public License 2.0 - see the LICENSE file for details.
Contact Z-bit Systems, LLC for inquiries regarding this project.
- OSDP.Net - The core OSDP communication library