BACsharp BACnet Stack

An open source BACnet protocol stack written in C#

About this Project

This BACnet protocol stack framework provides a BACnet application layer and network layer communications services. It is an open source, royalty-free application framework for an Windows, Linux, or other operating system that can use C# code.

C Sharp (programming language) - C# is an object-oriented programming language developed by Microsoft as part of the .NET initiative and later approved as a standard by ECMA and ISO.

BACnet - A Data Communication Protocol for Building Automation and Control Networks - see BACnet is a standard data communication protocol for Building Automation and Control Networks. BACnet is an open protocol, which means anyone can contribute to the standard, and anyone may use it. The only caveat is that the BACnet standard document itself is copyrighted by ASHRAE, and they sell the document to help defray costs of developing and maintaining the standard (just like IEEE or ANSI or ISO).

For software developers, the BACnet protocol is a standard way to send and receive messages on the wire containing data that is understood by other BACnet compliant devices. The BACnet standard defines a standard way to communicate over a number of wires, known as Data Link/Physical Layers: Ethernet, EIA-485, EIA-232, ARCNET, and LonTalk. The BACnet standard also defines a standard way to communicate using UDP, IP and HTTP (Web Services).

There are other open source projects for BACnet:

There are also commercial BACnet protocol source code libraries for BACnet that are designed for embedded use:

What the code does

The BACsharp project is just starting, so look for some great stuff to come soon!

Getting Involved

If you want to help out on this project, join the developers mailing list, introduce yourself, and tell us what you would like to do. If you are trying to implement a BACnet application or service using this project, you are welcome to join the same developers mailing list as well.

More details about the project can be found on the BACsharp Source Forge Project Page

The BACsharp project Wiki contains our documentation.

You can get the latest BACnet protocol stack source code using the Subversion version control system. The main development branch is at: This has the absolute latest code and features. Anyone doing development on the BACsharp BACnet protocol stack should be using this branch. The stable releases are at: This matches the released version downloadable through SourceForge. Anyone doing project or application development using the BACnet protocol stack should be using the tags branch and an appropriate tag.

To check out the trunk, use "svn co", e.g.

svn co
or for the stable releases:
svn co

BACsharp Developer Resources

There are a number of resources that can help you develop a BACnet product, application, or project.

BACnet Developer Help

BACnet International Developer Resources

Products and Projects that use this BACnet Stack

Did you develop a product using this BACnet stack? Let us know, and you can get a little recognition for your hard work! Logo

ASHRAE® and BACnet® are registered trademarks of the American Society of Heating, Refrigerating and Air-Conditioning Engineers, Inc., 1791 Tullie Circle NE, Atlanta, GA 30329.

Website updated 1-Feb-2008 by Steve Karg