BACnet Developer Resources: Standards, Tools, Testing & Code

BACnet Developer Resources

Developing a BACnet product involves more than implementing individual messages. Developers need to understand the BACnet standard, objects and services, BIBBs, network technologies, interoperability requirements, testing procedures, and the behavior expected by other BACnet devices.

Fortunately, there are several authoritative and open-source resources available to BACnet developers. This page collects some of the most useful places to start.

1) BACnet Committee Developer Aids

The BACnet Committee maintains a dedicated Developer Aids page for companies and engineers implementing BACnet products.

It includes links to:

  • Commercial BACnet protocol stacks and development tools
  • Open-source BACnet implementations
  • BACnet testing and simulation tools
  • BACnet/SC development resources
  • Protocol analyzers such as Wireshark
  • Implementation guides and technical references

BACnet Committee Developer Aids

2) The BACnet Standard

The primary technical reference for a BACnet developer is ANSI/ASHRAE Standard 135. This is the specification that defines the BACnet protocol.

The current published edition is ANSI/ASHRAE Standard 135-2024. BACnet is also published internationally as ISO 16484-5.

Developers should also monitor published addenda, interpretations, and errata because BACnet is maintained under continuous maintenance.

The BACnet Committee provides information for accessing the standard, including a free read-only version of the current standard:

BACnet Standard - ANSI/ASHRAE 135

3) BACnet Testing Laboratories Resources

BACnet Testing Laboratories, or BTL, provides some of the most useful implementation resources available to BACnet product developers.

The BTL documentation includes:

  • BTL Implementer Guides
  • BTL Testing Policies
  • The current BTL Test Package
  • Functionality checklists
  • Manual and automated test procedures
  • Guidance for preparing a product for BACnet testing

These resources are useful even before a product is submitted for formal BTL testing because they identify many implementation problems that can otherwise appear later during interoperability testing.

BTL Testing Documentation

4) BACnet International and The BACnet Institute

BACnet International provides education, testing information, interoperability resources, and information about developments in the BACnet community.

The BACnet Institute, commonly called TBI, provides free BACnet education and a technical resource library. Its material covers subjects such as BACnet networking, interoperability, devices, cybersecurity, specification, and troubleshooting.

TBI also provides self-paced courses and a BACnet community forum where users can discuss technical questions.

The BACnet Institute

5) Open-Source BACnet Stack

The open-source BACnet Stack project is a C implementation of BACnet designed for embedded systems and operating systems including Linux, Windows, macOS, and BSD.

The project includes BACnet application, network, and data-link functionality along with example applications and implementations for technologies such as BACnet/IP, BACnet/IPv6, BACnet MS/TP, and BACnet/SC.

It can be particularly useful for developers who want to study a working BACnet implementation, prototype a device, or build their own BACnet product.

Open-Source BACnet Stack

6) BACpypes3 for Python Developers

BACpypes3 is a Python BACnet communications library. It provides BACnet application and network-layer functionality for applications, scripts, services, and development tools.

BACpypes3 is the modern Python 3 generation of BACpypes and uses Python's asynchronous programming model.

It is useful for developers building BACnet utilities, test applications, data collection software, or other Python-based BACnet applications.

BACpypes3

7) Wireshark for BACnet Protocol Analysis

Wireshark is one of the most useful tools for analyzing BACnet/IP communication.

Wireshark includes BACnet protocol decoding and can display the BACnet Virtual Link Control, Network Protocol Data Unit, Application Protocol Data Unit, services, object identifiers, property identifiers, and other BACnet information contained in captured packets.

Developers can use Wireshark to investigate:

  • Who-Is and I-Am discovery traffic
  • ReadProperty and WriteProperty requests
  • ReadPropertyMultiple communication
  • Change of Value notifications
  • BACnet errors, rejects, and aborts
  • BACnet/IP broadcasts and BBMD communication
  • Network-layer routing messages

Wireshark BACnet Documentation

8) BACnet/SC Development Resources

Developers building modern IP-based BACnet products should also become familiar with BACnet Secure Connect (BACnet/SC).

BACnet/SC provides authenticated and encrypted BACnet communication using technologies including TLS and WebSockets. The BACnet community provides reference implementations and test tools to help manufacturers develop and verify BACnet/SC products.

The BACnet Committee Developer Aids page is a good starting point for the current BACnet/SC reference implementation and related development tools.

BACnet/SC Developer Resources

9) Chipkin BACnet Development Tools

Chipkin develops BACnet software and tools for developers, OEMs, integrators, and field technicians.

Useful Chipkin resources include:

  • CAS BACnet Stack - A BACnet protocol stack for adding BACnet functionality to embedded products and software applications.
  • CAS BACnet Explorer - A tool for discovering, testing, monitoring, and troubleshooting BACnet devices and networks.
  • CAS BACnet Wireshark Report Tool - A utility for analyzing BACnet packet captures and producing reports from BACnet network traffic.

Where Should a BACnet Developer Start?

For a new BACnet implementation, a practical development path is:

  1. Read the applicable portions of ANSI/ASHRAE Standard 135.
  2. Define the BACnet device profile, objects, services, and BIBBs required by the product.
  3. Review the BTL Implementer Guides before writing or integrating the protocol implementation.
  4. Select or develop a BACnet protocol stack appropriate for the product.
  5. Test communication with independent BACnet tools and devices.
  6. Use protocol captures to investigate unexpected behavior.
  7. Run the applicable BTL pre-tests before submitting the product for certification.
  8. Test interoperability with equipment from multiple manufacturers.

Reviewing the BTL testing requirements early in development can save significant time compared with discovering implementation problems after the product is complete.

Contact Us

Contact us via phone (+1 866-383-1657) or leave a detailed message below for sales, support, or any other needs

*Required Field
*Required Field
I'd like to receive the newsletter. *Check email for confirmation.
*Required Field
8:00am - 12:00pm 12:00pm - 5:00pm
Message Sent Successfully