YABE (Yet Another BACnet Explorer) is a free, open-source BACnet client for Windows and Linux that lets you discover devices, browse objects, and read or write property values over BACnet/IP and BACnet MS/TP. Download it from SourceForge, select your network interface, click Add, and YABE broadcasts a WHO-IS to populate your device list within seconds.
What Is YABE and Why Use It
YABE is a lightweight graphical BACnet explorer written in C# that has become the most popular free BACnet diagnostic tool in the building automation industry. It supports BACnet/IP (IPv4 and IPv6), BACnet MS/TP, BACnet Ethernet, BACnet PTP, and BACnet Secure Connect. The tool provides read, write, read-multiple, write-multiple, WHO-IS, I-AM, SubscribeCOV, ReadFile, WriteFile, and other core BACnet services.
For technicians who work across multiple vendor platforms, YABE fills a critical gap. Commercial BACnet tools like Cimetrics BACnet Explorer or Contemporary Controls' tools can cost hundreds of dollars and may require license dongles. YABE costs nothing, runs from a single executable, and handles 90% of the field diagnostic tasks a technician encounters: verifying device communication, reading sensor values, checking binary output states, and confirming object configurations.
Beyond the explorer itself, YABE ships with a C# BACnet stack library and three demo server applications (a generic server, a wall-mounted room controller simulator, and a weather server). This makes it useful for both field diagnostics and lab testing during integration projects.
How to Download and Install YABE
YABE is hosted on SourceForge at sourceforge.net/projects/yetanotherbacnetexplorer. The latest installer as of this writing is SetupYabe_v1.2.1.exe.
- Navigate to the SourceForge project page and click Download to get the installer EXE, or browse the Files tab to select a specific version.
- Run
SetupYabe_v1.2.1.exe. The installer is small (under 5 MB) and requires .NET Framework 4.5 or later, which is included in Windows 8 and above by default. - Accept the default install location or choose your own directory. No license key, dongle, or account registration is needed.
- Launch YABE from the Start Menu or the install directory. The main window opens with three key panels: Devices (left tree), Address Space (center tree), and Properties (right panel).
Portable option: If you prefer not to run the installer, you can download the ZIP archive from the Files tab, extract it to any folder, and run Yabe.exe directly. This is useful for keeping YABE on a USB drive for field work.
Chocolatey: On machines with Chocolatey package manager, you can install via choco install yabe.
Linux: YABE runs on Linux via Mono. Install Mono (sudo apt install mono-complete on Debian/Ubuntu), then run mono Yabe.exe. Some UI elements may render differently, but core functionality is intact.
Configuring YABE for BACnet/IP Discovery
Before YABE can discover devices, you need to tell it which network interface to use and confirm the BACnet port.
- Open YABE and go to Functions > Add device, or click the green "+" button in the toolbar, or right-click in the Devices panel and select Add device.
- In the dialog that appears, look at the BACnet/IP over Udp section. Set the Port to
0xBAC0(47808 decimal)—this is the standard BACnet/IP port and should match your network's configuration. - In the Local endpoint dropdown, select the network adapter connected to your BACnet network. If your laptop has both Wi-Fi and Ethernet, choose the interface on the same subnet as your BACnet devices. Selecting the wrong interface is the most common reason devices don't appear.
- Leave the Exclusive Port checkbox unchecked unless you have a specific reason to bind exclusively (binding exclusively prevents other BACnet applications from sharing the port).
- Click Add. YABE creates a new transport node in the Devices tree and immediately sends a WHO-IS broadcast on that interface.
BBMD and foreign device registration: If your BACnet devices are on a different subnet and you rely on a BACnet Broadcast Management Device (BBMD), you may need to register YABE as a foreign device. Check your BBMD's foreign device table configuration and ensure YABE's IP is included, or configure YABE to send a Foreign Device Registration request if your network requires it.
Firewall note: Windows Firewall may block YABE's UDP traffic on port 47808. If no devices appear after clicking Add, check your firewall rules and create an exception for Yabe.exe or for UDP port 47808 inbound and outbound.
Discovering BACnet Devices with YABE
Once you add a BACnet/IP transport, YABE sends a global WHO-IS broadcast. Devices that respond with I-AM messages appear as child nodes under the transport node in the Devices tree. Each device shows its device instance number and IP address.
Browsing the Address Space
Click on a device in the Devices tree. YABE reads the device's object list and populates the Address Space panel in the center of the window. You will see BACnet objects organized by type:
- Analog Input (AI) — sensor readings such as zone temperature, duct static pressure, or discharge air temperature
- Analog Output (AO) — control outputs like valve position (0-100%) or VFD speed command
- Analog Value (AV) — configurable setpoints, calculated values, or PID parameters
- Binary Input (BI) — status signals such as fan status, filter switch, or occupancy sensor
- Binary Output (BO) — on/off commands like fan start/stop or damper open/close
- Binary Value (BV) — configurable boolean flags such as enable/disable or occupied/unoccupied mode
- Multi-State Input (MSI) — enumerated status values (e.g., operating mode: Off/Heat/Cool/Auto)
- Multi-State Output (MSO) — enumerated commands
- Multi-State Value (MSV) — configurable enumerated parameters
- Schedule, Calendar, Trend Log, Notification Class — time-based and alarm objects
Click any object in the Address Space to load its full property list in the Properties panel on the right. YABE reads all standard properties including Object_Name, Present_Value, Status_Flags, Units, Description, and (where applicable) Priority_Array and Relinquish_Default.
Refreshing and Re-scanning
To resend a WHO-IS and pick up new devices, right-click on the transport node in the Devices tree and select the WHO-IS option. You can also specify a device instance range if you only want to discover specific devices on a large network.
Reading and Writing BACnet Object Values
Reading Values
Select any object in the Address Space tree. The Properties panel displays every readable property for that object. The Present_Value property is typically the one technicians care about most—it shows the current sensor reading, setpoint, or output state. Status_Flags shows four flags (In_Alarm, Fault, Overridden, Out_of_Service) that indicate the object's operational condition.
Writing Values
To write a value, click on the property field in the Properties panel and type the new value. YABE sends a WriteProperty request to the device and then reads the value back to confirm the write succeeded. For commandable objects (AO, BO, MSO), the write goes to the Priority_Array at the default priority level.
Changing priority level: YABE supports keyboard shortcuts Ctrl+Alt+0 through Ctrl+Alt+9 to set the priority level for writes directly from the main form. Selecting no priority writes directly to Present_Value without using the priority array, while priorities 1 through 16 correspond to the BACnet priority array levels. In most BAS work, you will write at priority 8 (Manual Operator) for temporary overrides during commissioning.
Subscribing to COV (Change of Value)
Instead of manually refreshing to see value changes, you can subscribe to COV notifications. Drag an object from the Address Space and drop it onto the central subscription panel (or the graph area). YABE sends a SubscribeCOV request to the device. When the object's Present_Value or Status_Flags change, the device pushes an update to YABE automatically. If you drop the object onto the graph area, YABE plots the value over time—useful for watching a temperature sensor trend during commissioning.
Using YABE for MS/TP Devices
BACnet MS/TP runs over RS-485 serial, which means you cannot browse MS/TP devices directly from a laptop's Ethernet port. There are two approaches:
Option 1: Through a BACnet/IP to MS/TP Router
Most BAS installations include a controller that acts as a BACnet/IP to MS/TP router (sometimes called a BACnet router or supervisory controller). When this router is present, MS/TP devices behind it are accessible from the IP side. In YABE, these devices appear in the Devices tree just like IP devices, but with a different network number. You browse them identically—click the device, browse Address Space, read properties.
Option 2: Direct RS-485 Connection
If no IP router is available, connect an RS-485-to-USB adapter to your laptop and wire it to the MS/TP trunk. In YABE's Add Device dialog, look for the BACnet MS/TP over Serial section. Select the correct COM port, set the baud rate to match the trunk (typically 9600, 19200, 38400, or 76800 bps), and assign a unique MAC address (0-127) that does not conflict with existing devices on the trunk. Click Add.
Important: The MAC address you assign to YABE must not duplicate any existing device address on the trunk. Check the site's controller schedule or documentation for assigned addresses before connecting.
Version note: A bug in YABE version 2.0.0.0 prevented proper access to MS/TP Device objects. This was fixed in version 2.1.1.0. If you experience MS/TP issues, ensure you are running version 1.2.1 (stable) or 2.1.1.0 or later.
Common YABE Mistakes
- Wrong network interface selected. This is the number one reason devices don't appear. If your laptop has Wi-Fi, Ethernet, VPN adapters, and Docker virtual interfaces, YABE shows all of them in the Local endpoint dropdown. Select the physical adapter connected to the BACnet network. Check your adapter's IP address (via
ipconfig) and confirm it is on the same subnet as your target devices. - Firewall blocking UDP 47808. Windows Firewall and third-party antivirus products frequently block the BACnet port. If you add a transport and see zero devices, temporarily disable the firewall or add a rule for Yabe.exe before assuming the network is the problem.
- Devices on a different subnet without BBMD. BACnet/IP WHO-IS is a broadcast. Broadcasts do not cross subnet boundaries unless a BBMD is configured. If your devices are on 192.168.1.x and your laptop is on 10.0.0.x, no devices will appear regardless of YABE's settings. Either move to the correct subnet or configure BBMD/foreign device registration.
- MS/TP MAC address conflict. When connecting directly to an MS/TP trunk, assigning YABE the same MAC address as an existing device causes token-passing failures and can disrupt the entire trunk. Always verify available addresses before connecting.
- Writing at the wrong priority level. Writing a Present_Value to a commandable object (like an Analog Output controlling a valve) at a high priority can lock out the controller's normal programming. Always write at priority 8 or lower for testing, and relinquish (write a null value) when done to release the priority slot.
Platform and Version Compatibility
| Platform | Support | Notes |
|---|---|---|
| Windows 10/11 | Full | Native .NET Framework support; recommended platform |
| Windows 7/8 | Full | Requires .NET Framework 4.5+ |
| Linux (Mono) | Functional | Run via mono Yabe.exe; minor UI rendering differences |
| macOS | Limited | Possible via Mono but not officially tested; consider a Windows VM |
The stable release line (1.x) is recommended for production field work. Version 1.2.1 is the latest stable installer. Development builds (2.x) introduce BACnet Secure Connect and IPv6 support but have had intermittent bugs—test before relying on them for critical diagnostics.
An unofficial .NET 5 port exists on GitHub (maintained by community contributor nickdu088), which may be useful if you need cross-platform support without Mono, but it is not the official project.
Source Attribution
This tutorial draws from the following sources:
- YABE SourceForge Project Page — official downloads, release notes, and project documentation
- Actility: How to Use YABE BACnet Explorer — configuration walkthrough and UI guide
- Smart Buildings Academy: Yet Another BACnet Explorer Review — field practitioner review and library overview
- GitHub Mirror (dechamps/yabe) — unofficial source mirror and issue discussions
- Chocolatey Package: YABE — package manager installation reference
Was this article helpful?
Related Articles
Need to do this remotely? SiteConduit provides Layer 2 access that preserves BACnet broadcasts — no BBMD needed for remote sessions. Join the waitlist.
SiteConduit Technical Team
Idea Networks Inc.
SiteConduit builds managed remote access for building automation. Our knowledge base is maintained by BAS professionals with hands-on experience deploying and troubleshooting BACnet, Niagara, Modbus, and Facility Explorer systems.